前面兩個招式基本上就很好用了(我是說真的,但是有沒有覺得好像沒有很數學的感覺。而且如果前兩招都還不準怎麼辦
其實,支援向量機 SVM 就是一個不錯的解決方案。他可以在特徵並不完美可以識別的情況下作精準的運算
支援向量機的原理其實很簡單,就是先將資料做成散布圖,然後利用一條線將答案分成線的兩邊。這條線的準確率就會依照不同可以更換的 Kernel 進行調整
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC
sc = StandardScaler()
sc.fit(X_train)
X_train_std = sc.transform(X_train)
X_test_std = sc.transform(X_test)
#
svm = SVC(kernel='linear', probability=True)
svm.fit(X_train_std, y_train)