亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 sklearn 中訓練多個類

在 sklearn 中訓練多個類

aluckdog 2021-11-09 18:31:09
我正在尋找一種訓練這個數據集的方法,所以我用這個代碼用 sklearn 進行了嘗試train_x, test_x, train_y, test_y = train_test_split(df[['city','text']], df[['1','2','3','4']], test_size = 0.40, random_state = 21)count_vect = CountVectorizer(analyzer='word', ngram_range=(2,3), max_features=20000)count_vect.fit(df['text'])x_train =  count_vect.transform(train_x)x_test =  count_vect.transform(test_x)classifier = DecisionTreeClassifier()classifier.fit(x_train, train_y)但我有這樣的錯誤ValueError: Number of labels=2348 does not match number of samples=1實際上我不知道是否可以直接用它的 4 個標簽來訓練我的數據
查看完整描述

2 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

錯誤是由于以下行:

x_train =  count_vect.transform(train_x)

你看,你的train_xtest_x有兩列(來自df[['city','text']]),但CountVectorizer只適用于單列。它只需要一個可迭代的字符串,而不是更多。所以你這樣做是對的:

count_vect.fit(df['text'])

因為您只提供一列。但是當您提供train_xin 時count_vect.transform(train_x),它們只count_vect使用列名而不是實際數據。

也許你想要:

x_train = count_vect.transform(train_x['text'])


查看完整回答
反對 回復 2021-11-09
?
慕勒3428872

TA貢獻1848條經驗 獲得超6個贊

錯誤是因為輸入的形狀X應該是[n_samples, n_features]. 如果檢查 的形狀X,應該是 (2348, )。最好的轉型X方式

X = X[:, np.newaxis]


查看完整回答
反對 回復 2021-11-09
  • 2 回答
  • 0 關注
  • 243 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號