RandomForestフィット関数の使用に問題がある
これは私のトレーニングセットです
P1 Tp1 IrrPOA Gz Drz2
0 0.0 7.7 0.0 -1.4 -0.3
1 0.0 7.7 0.0 -1.4 -0.3
2 ... ... ... ... ...
3 49.4 7.5 0.0 -1.4 -0.3
4 47.4 7.5 0.0 -1.4 -0.3
... (10k rows)
Sklearn.ensemble RandomForestを使用して、他のすべての変数のおかげでP1を予測したい
colsRes = ['P1']
X_train = train.drop(colsRes, axis = 1)
Y_train = pd.DataFrame(train[colsRes])
rf = RandomForestClassifier(n_estimators=100)
rf.fit(X_train, Y_train)
ここに私が得るエラーがあります:
ValueError: Unknown label type: array([[ 0. ],
[ 0. ],
[ 0. ],
...,
[ 49.4],
[ 47.4],
このラベルエラーについては何も見つかりませんでした。Python 3.5を使用します。どんなアドバイスでも大いに役立つでしょう!
ラベル(y)データをrf.fit(X,y)
に渡す場合、yが1Dリストであると想定されます。 Pandaフレームをスライスすると、常に2Dリストが作成されます。したがって、ユースケースで対立が発生します。 pandas DataFrameによって提供される2Dリストを、fit関数で期待される1Dリストに変換する必要があります。
最初に1Dリストを使用してみてください。
Y_train = list(train.P1.values)
これで問題が解決しない場合は、 MultinomialNB error: "Unknown Label Type" :に記載されている解決策を試すことができます。
Y_train = np.asarray(train['P1'], dtype="|S6")
あなたのコードは
colsRes = ['P1']
X_train = train.drop(colsRes, axis = 1)
Y_train = np.asarray(train['P1'], dtype="|S6")
rf = RandomForestClassifier(n_estimators=100)
rf.fit(X_train, Y_train)
this SO post 、分類子には整数または文字列ラベルが必要です。
次のように、代わりに回帰モデルへの切り替えを検討することもできます(各データムがフロートに見えるため、mightデータにより適しています)。
X_train = train.drop('P1', axis=1)
Y_train = train['P1']
rf = RandomForestRegressor(n_estimators=100)
rf.fit(X_train.as_matrix(), Y_train.as_matrix())
パーティーには少し遅れているかもしれませんが、このエラーが発生し、y変数がtype(int)であることを確認して解決しました
y = df['y_variable'].astype(int)
電車のテストを分割する前に、他の人が言ったように、問題はRFよりもRFRegの方が適しているようです