1. 程式人生 > >基於機器學習的NLP情感分析(二)---- 分類問題

基於機器學習的NLP情感分析(二)---- 分類問題

基於機器學習的NLP情感分析(二)—- 分類問題

前文提到了如何把一個文字轉換為相應的詞向量,本文討論的是如何進行分類。

feature相關性

首先,需要看看我之前選出來的feature,是否能夠滿足需求。

Stary 2017-07-18 at 8.44.44 P

這裡其實有很多引數沒有顯示出來。從該圖來看,大部分的引數相關性是非常低的,這是一件非常好的事情,因為這說明選出來的引數具有更大表現力。但也發現有一些引數是重複的,這個比較尷尬。當然可以採用PCA過濾掉就好。

Stary 2017-07-18 at 8.45.58 P

從此圖來看,每一個引數都對sentiment有一定的影響,大部分都有比較強的相關性,這說明選出來的引數並不是隨便亂選的。

模型選擇

這裡我選擇了一些比較常見的演算法模型來進行訓練,並試圖去獲得相對較好的model。
這裡採用Kfold函式來迴圈測試模型,並且用f1 Score來選擇最合適的model。

SVC: 0.697422 (+/- 0.044767)
AdaBoostClassifier: 0.701619 (+/- 0.055826)
RandomForestClassifier: 0.728934 (+/- 0.043483)
RandomForestClassifier: 0.728934 (+/- 0.043483)
LinearSVC: 0.755798 (+/- 0.043480)
KNeighborsClassifier: 0.666486 (+/- 0.066893)
GaussianNB: 0.729580 (+/- 0.049237)
Perceptron: 0.728920 (+/- 0.034399)
SGDClassifier
: 0.735260 (+/- 0.052218) DecisionTreeClassifier: 0.693174 (+/- 0.053145) LogisticRegression: 0.759676 (+/- 0.044828)

這裡我覺得LinearSVC相對比較好。

至此就沒有別的了。