幕布斯7119047
2023-07-27 14:11:10
我想使用邏輯回歸預(yù)測情感分析模型的準(zhǔn)確性,但出現(xiàn)錯誤:錯誤的輸入形狀(使用輸入進行編輯)數(shù)據(jù)框:dfsentence | polarity_labelnew release! | positivebuy | neutralleast good-looking | negative代碼:from sklearn.preprocessing import OneHotEncoder from sklearn.feature_extraction.text import CountVectorizer, TfidfVectorizer, ENGLISH_STOP_WORDS# Define the set of stop wordsmy_stop_words = ENGLISH_STOP_WORDSvect = CountVectorizer(max_features=5000,stop_words=my_stop_words)vect.fit(df.sentence)X = vect.transform(df.sentence)y = df.polarity_labelencoder = OneHotEncoder()encoder.fit_transform(y)from sklearn.linear_model import LogisticRegressionfrom sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X,y, test_size=0.2, random_state=123)LogisticRegression(penalty='l2',C=1.0)log_reg = LogisticRegression().fit(X_train, y_train)錯誤信息ValueError: Expected 2D array, got 1D array instead:array=['Neutral' 'Positive' 'Positive' ... 'Neutral' 'Neutral' 'Neutral'].Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.```How can I fix this?
2 回答

子衿沉夜
TA貢獻1828條經(jīng)驗 獲得超3個贊
我認為你需要將 y 標(biāo)簽轉(zhuǎn)換為 One hot 編碼,現(xiàn)在你的標(biāo)簽向量可能是這樣的 [0,1,0,0,1,0],但是對于邏輯回歸,你需要將它們轉(zhuǎn)換為這種形式 [ [0,1],[1,0],[0,1],[0,1]],因為在邏輯回歸中我們傾向于計算所有類別的概率/似然。
您可以使用 sklearn?onehotencoder來做到這一點,
from?sklearn.preprocessing?import?OneHotEncoder??????????????????????????????????????????????????? encoder?=?OneHotEncoder() encoder.fit_transform(y)

大話西游666
TA貢獻1817條經(jīng)驗 獲得超14個贊
調(diào)整您的代碼,例如:
y = df.polarity_label
當(dāng)前,您正在嘗試使用 CountVectorizer 將 y 轉(zhuǎn)換為向量,該向量是根據(jù)句子數(shù)據(jù)進行訓(xùn)練的。
所以 CountVectorizer 有這個詞匯表(你可以使用 獲得它vect.get_feature_names()
):
['購買'、'好'、'看起來'、'新'、'發(fā)布']
并將包含這些單詞的一些文本轉(zhuǎn)換為向量。
但是,當(dāng)您在只有單詞 的 y 上使用它時positive, neutral, negative
,它找不到任何“已知”單詞,因此您的 y 為空。
如果您在轉(zhuǎn)換后檢查 y,您還可以看到它是空的:
<3x5 sparse matrix of type '<class 'numpy.int64'>' with 0 stored elements in Compressed Sparse Row format>
添加回答
舉報
0/150
提交
取消