2014-01-08 22 views
0

我想genfromtxt在csv文件中讀取,然後使用RandomForestClassifier。我結束了使用genfromtxt兩次;一次讀取功能,然後得到正確的格式。 這種嘗試的代碼如下: 導入CSV 進口numpy的爲NP使用genfromtxt輸入scikit-learn fit函數的問題

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_ 

當我使用genfromtxt與「名稱= true選項‘數據’讀不格式我預計

! ((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.0,1.0,0.0,0.0), (31.194181 ,0.0,0.0,0.0,1.0,0.0)], ... dtype = [('A','

我想要ge從文件中讀取功能名稱而不讀兩遍!

感謝您的協助!

Ps:Thnaks to「Cyborg」我得到了這麼多!

回答

2

我推薦使用這個熊貓。 您可以使用pandas.read_csv來獲取帶有列名的熊貓數據框。不過,您需要將數據轉換爲numpy數組,然後將其傳遞給scikit-learn。

+0

我想看看是否有辦法使用單個genfromtxt方法,如果可能的話,它的輸出可能被強制轉換爲適當的格式。 Andreas,其他人的想法? –

+0

您可以從文件中讀取一行文字,然後解壓縮,然後在我猜測的其餘描述符上調用genfromtext。爲什麼你不想使用完全符合你的目的的功能? –

+0

嗨安德烈亞斯,因爲我不知道如何使用它...我可以在代碼中強加一個例子嗎? thnaks,Chris –