2つのnumpy配列、X_trainとY_trainがあります。最初の次元(700,1000)に値0,1,2,3,4,10が設定されています。 Rotten TomatoesのAPIで作業しているので、値の2分の1(700、)に値 'fresh'または 'rotten'が設定されています。私は実行し、いくつかの理由について:MultinomialNBエラー:「不明なラベルタイプ」
nb = MultinomialNB()
nb.fit(X_train, Y_train)
私が取得:
ValueError: Unknown label type
私は配列の小さいペアを構築しようとした:
print xs, '\n', ys
は
[[0 0 0 0 1]
[1 0 0 2 5]
[3 2 5 5 0]
[3 2 0 0 1]
[1 5 1 0 0]]
['rotten' 'fresh' 'fresh' 'rotten' 'fresh']
を与え、多項式NBフィットは不明なラベルエラーを与えません。なぜこれが起こっているのかについてのアイデアはありますか?
また、X_train、Y_trainの値がnumpy.uniqueであることを確認しましたが、奇妙で誤ったラベルがあるようではありません。すべて「新鮮」または「腐った」です。
X_trainとY_trainを生成するための私のコード:
「批評家は、CSVファイル( https://www.dropbox.com/s/0lu5oujfm483wtr/critics.csv)から輸入パンダのデータフレームであり、欠落データのクリーンdef make_xy(critics, vectorizer=None):
stext = critics['quote'].tolist() # need to have a list
if vectorizer == None:
vectorizer = CountVectorizer(min_df=0)
vectorizer.fit(stext)
X = vectorizer.transform(stext).toarray() # this is X
Y = np.asarray(critics['fresh'])
return X[0:1000,0:1000], Y[0:1000] # this is X_train, Y_train
:
critics = pd.read_csv('critics.csv')
critics = critics[~critics.quote.isnull()]
critics = critics[critics.fresh != 'none']
critics = critics[critics.quote.str.len() > 0]
ああ、今すぐ完璧です!あなたの良い助けをありがとう。 – covariance