決策樹decision tree+SVM+knn+隨機森林+高斯貝葉斯
阿新 • • 發佈:2019-02-01
很多分類器的用法都相似的,下面針對一個訓練集(特徵向量+類別)
介紹幾種常用的分類器方法:
資料集的介紹:
kaggle 中 泰坦尼克號的資料集,通過某些特徵提取的方法構造成清洗後的資料集,同時按相同的處理方法處理測試集。
七個特徵屬性+一個決策屬性
不同分類器方法的用法:
XTrain與YTrain是訓練集的特徵和類別。
TestDataset是測試集
#1.決策樹的用法,下面訓練決策樹
from sklearn import tree
clf=tree.DecisionTreeClassifier(criterion='entropy')
#資訊熵劃分屬性,預設是gini指數
print clf
#根據當前資料,擬合決策樹,也就是訓練決策樹
clf.fit(XTrain,YTrain)
#所有測試樣本的預測label
predictLabels=clf.predict(TestDataset)
#2.用隨機森林預測類別
from sklearn.ensemble import RandomForestClassifier #匯入隨機森林方法
random_forest = RandomForestClassifier(n_estimators=100)
random_forest.fit(XTrain, YTrain)
Y_pred = random_forest.predict(TestDataset)
for x in Y_pred:
print x
#3.支援向量機 SVM
from sklearn.svm import SVC
#Support Vector Machines
svc = SVC()
svc.fit(XTrain, YTrain)
Y_pred = svc.predict(TestDataset)
#svm是排4025名
SVM的多分類用法:
#SVM預測
def useSVM(Xtrain,Ytrain,Xtest,Ytest):
lin_clf = svm.LinearSVC()
lin_clf.fit(Xtrain, Ytrain)
Y_pred = lin_clf.predict(Xtest)
return Y_pred
#4.Gaussian Naive Bayes 高斯樸素貝葉斯分類器
from sklearn.naive_bayes import GaussianNB
gaussian = GaussianNB()
gaussian.fit(XTrain, YTrain)
Y_pred = gaussian.predict(TestDataset)
print gaussian.score(XTrain, YTrain)
for x in Y_pred:
print x
#高斯樸素貝葉斯是4000多名 0.76077
#4.下面是用knn來看看
from sklearn.neighbors import KNeighborsClassifier
knn=KNeighborsClassifier(n_neighbors=15)
knn.fit(XTrain, YTrain)
Y_pred = knn.predict(TestDataset)
#4.Gaussian Naive Bayes 高斯樸素貝葉斯分類器