我正在尝试从txt生成csv文件,然后使用RandomForestClassifier。我最终使用了genfromttxt两次;一次阅读功能,然后获得正确的格式。此尝试的代码如下:导入csv将numpy导入为np
data = np.genfromtxt('plants.csv',dtype=float, delimiter=',', names=True)
feature_names = np.array(data.dtype.names)
feature_names = feature_names[[ 0,1,2,3,4]]
data = np.genfromtxt('plants.csv',dtype=float, delimiter=',', skip_header=1)
plants_X = data[:, [0,1,2,3,4]]
_y = np.ravel(data[:,[5]]) #Return a flattened array required by scikit-learn fit for 2nd argument
from sklearn.ensemble import RandomForestClassifier
clf = RandomForestClassifier( n_estimators = 10, random_state = 33)
clf = clf.fit(plants_X, plants_y)
print feature_names, 'n', clf.feature_importances_
print feature_names, 'n', clf.feature_importances_
当我使用带有"names=True选项"的genfromttxt时,读取的数据不是我期望的格式!
"([(31.194181,0.0,0.0,0.0,1.0,1.0),(12.0、0.0、0.0、1.0、0.0和1.0),(18.0、1.0、0.01.0、0.00.0),(31.194181,0.0,0.0,1.0,0.0)],。。。dtype=[('A','
我想在不读两遍的情况下从文件中获取功能名称!
感谢您的帮助!
对"赛博格"来说,我已经走了这么远!
我建议使用panda。您可以使用pandas.read_csv
来获取具有列名的pandas数据帧。不过,您需要将数据转换为numpy数组,然后将其传递给scikit-learn。