Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-scikit错误了解随机林值格式_Python_Arrays_Floating Point_Random Forest - Fatal编程技术网

Python-scikit错误了解随机林值格式

Python-scikit错误了解随机林值格式,python,arrays,floating-point,random-forest,Python,Arrays,Floating Point,Random Forest,当我执行命令时: clf.fit(train_data, train_label) 我得到以下错误 ValueError:输入包含NaN、无穷大或对数据类型('float32')太大的值 问题在于大小为(18000,20)的数组train_data。我已尝试使用此命令: clf.fit(np.float32(train_data), train_label) 或 在以下链接的train文件(python)中查找数据集train_数据和train_标签: 但是,我无法确保数组“train_d

当我执行命令时:

clf.fit(train_data, train_label)
我得到以下错误

ValueError:输入包含NaN、无穷大或对数据类型('float32')太大的值

问题在于大小为(18000,20)的数组
train_data
。我已尝试使用此命令:

clf.fit(np.float32(train_data), train_label)

在以下链接的train文件(python)中查找数据集train_数据和train_标签:


但是,我无法确保数组“train_data”中的所有值对
clf.fit
函数有效。有什么帮助吗?

刚刚找到了克服此错误的解决方案。您需要缩放数据:

代码:


这应该是因为在矩阵的某个条目中有一个错误的值(NaN或无穷大)。。。也就是说,您的矩阵是单数的,或者您从一开始就在
train\u data
上出错。如果您使用其他不存在的列_数据,则应该可以。您的
train\u数据的外观如何?您可以上传train\u数据和train\u标签吗?也许你在列车数据中有任何字符串或NaN?请,@sera在添加的链接中查找数据集。Thanks@Ruser抱歉,我如何打开此文件?@sera use:with open('train','rb')作为f:train\u数据,train\u label=pickle.load(f)谢谢@sera,它成功了。然而,由于我正在分割数据集进行交叉验证,一个特定的数据集不起作用。你能检查一下吗?再次感谢。(链接已选中)@Ruser是的,我会检查它!你用什么简历?漏掉一个?K折叠?在文件中找到整个@sera脚本,在“数据”中找到新的数据集@Ruser如何打开脚本?请检查(我没有添加.py扩展名)
train_data = np.array([s[0].astype('float32') for s in train_data])
from sklearn.ensemble import RandomForestClassifier
import pickle
import numpy as np
from sklearn.preprocessing import scale

with open('train', 'rb') as f: 
    train_data, train_label = pickle.load(f)

#some diagnostic to see if there are NaNs. No NaN were found !
print(np.isnan(train_data))
print(np.where(np.isnan(train_data)))
print(np.nan_to_num(train_data))
print(np.isnan(train_label))
print(np.where(np.isnan(train_label)))

#so need to scale
train_data = scale(train_data)

clf = RandomForestClassifier()
clf.fit(train_data, train_label)