Python SKLearn拟合值错误输入
我试图拟合和转换一些数据,以便稍后在模型中使用到分类器,但它总是给我一个错误,我不明白为什么。 拜托,有人能帮我吗Python SKLearn拟合值错误输入,python,machine-learning,scikit-learn,jupyter-notebook,valueerror,Python,Machine Learning,Scikit Learn,Jupyter Notebook,Valueerror,我试图拟合和转换一些数据,以便稍后在模型中使用到分类器,但它总是给我一个错误,我不明白为什么。 拜托,有人能帮我吗 ##stores the function Pipeline with parameters decided above inputPipe = getPreProcPipe(normIn=normIn, pca=pca, pcaN=pcaN, whiten=whiten) print inputPipe print #print devData[classTrainFe
##stores the function Pipeline with parameters decided above
inputPipe = getPreProcPipe(normIn=normIn, pca=pca, pcaN=pcaN, whiten=whiten)
print inputPipe
print
#print devData[classTrainFeatures].values.astype('float32')
print devData[classTrainFeatures].shape
print type(devData[classTrainFeatures].values)
##fit pipeline to inputs features and types
inputPipe.fit(devData[classTrainFeatures].values.astype('float32'))
##transform inputs X
X_class = inputPipe.transform(devData[classTrainFeatures].values.astype(double))
## Output Y, i.e, 0 or 1 as it is the target
Y_class = devData['gen_target'].values.astype('int')
#print Y_class
输出:
Pipeline(memory=None,
steps=[('pca', PCA(copy=True, iterated_power='auto', n_components=None, random_state=None,
svd_solver='auto', tol=0.0, whiten=False)), ('normPCA', StandardScaler(copy=True, with_mean=True, with_std=True))])
(32583, 2)
<type 'numpy.ndarray'>
我认为这类错误有三种可能:
df.index[np.isnan(df.any(1)]
检查它。在这种情况下,可以用doingdf.fillna(df.mean()).dropna(axis=1,how='all')
列的平均值替换NAN如果数据包含NaN(不是数字值),则必须检查所使用的数据(不是代码),在numpy中有函数
.isnan()
()
还可以使用.isinf()
在这个kaggle内核中,有一个示例代码,用于在数据集中填充NAN和INF,然后用于分类器,另请参见interpolate()
删除包含NAN和INF的行由
indx = devData[classTrainFeatures].index[devData[classTrainFeatures].apply(np.isnan)]
devData=devData.drop(devData.index[indx]).copy()
devData=devData.reset_index(drop=True)
(获取NaN的索引,使用索引删除包含NaN的所有行,重置dataframe的索引)请以明文形式添加代码和错误,以便于帮助您。另请参阅:您能提供一个包含错误的最小可执行示例吗?我添加了thoseI的输出bellow,我添加了thoseI的输出bellow
indx = devData[classTrainFeatures].index[devData[classTrainFeatures].apply(np.isnan)]
devData=devData.drop(devData.index[indx]).copy()
devData=devData.reset_index(drop=True)