У меня есть матрица функций с недостающими значениями NaNs, поэтому мне нужно сначала инициализировать эти недостающие значения. Однако последняя строка жалуется и выдает следующую строку ошибки: Expected sequence or array-like, got Imputer(axis=0, copy=True, missing_values='NaN', strategy='mean', verbose=0)
. Я проверил, кажется, причина в том, что train_fea_imputed не в формате np.array, а в форме sklearn.preprocessing.imput.Imputer. Как мне это исправить?
Кстати, если я использую train_fea_imputed = imp.fit_transform (train_fea), код работает отлично, но train_fea_imputed возвращает массив с 1 размером менее train_feasklearn Imputer() возвратил функции не вписывается в функцию fit
import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.preprocessing import Imputer
imp = Imputer(missing_values='NaN', strategy='mean', axis=0)
train_fea_imputed = imp.fit(train_fea)
# train_fea_imputed = imp.fit_transform(train_fea)
rf = RandomForestClassifier(n_estimators=5000,n_jobs=1, min_samples_leaf = 3)
rf.fit(train_fea_imputed, train_label)
обновление: я изменил
imp = Imputer(missing_values='NaN', strategy='mean', axis=1)
и теперь проблема измерения не возникла. Я думаю, что есть некоторые неотъемлемые проблемы в функции imputing. Я вернусь, когда закончу проект.
Можете ли вы создать образец «train_fea» и «train_label» с фиктивными значениями, чтобы я мог запускать его на своем компьютере? например как это http://stackoverflow.com/a/30319249/238639 – bakkal
@bakkal Я думаю, вы можете использовать numpy для генерации случайной матрицы и маскировать их NaN, чтобы попробовать. – Jin