1. 程式人生 > >決策樹decision tree+SVM+knn+隨機森林+高斯貝葉斯

決策樹decision tree+SVM+knn+隨機森林+高斯貝葉斯

很多分類器的用法都相似的,下面針對一個訓練集(特徵向量+類別) 介紹幾種常用的分類器方法: 資料集的介紹: 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)