分類模型構建


分類模型構建

  分類是指構造一個分類模型,輸入樣本的特征值,輸出對應的類別,將每個樣本映射到預先定義好的類別中。分類模型若建立在已有類標記的數據集上,則屬於有監督學習。在實際應用場景中,分類算法被用於行為分析,物品識別,圖像檢測等。

模塊 函數 算法名稱
linear_model LogisticRegression 邏輯斯蒂回歸
svm SVC 支持向量機
neighbors KNeighborsClassifier K最近鄰分類
naive_bayes GaussianNB 高斯朴素貝葉斯
tree DecisionTreeClassifier 分類決策樹
ensemble RandomForestClassifier 隨機森林分類
ensemble GradientBoostingClassifier 梯度提升分類樹
from sklearn.datasets import load_breast_cancer  # 乳腺癌
from sklearn.model_selection import train_test_split
# 數據導出
data = load_breast_cancer()
X = data['data']
y = data['target']
names = data['feature_names']
# 划分數據集
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.2,random_state=1234)
# 標准化
from sklearn.preprocessing import StandardScaler
Standard = StandardScaler().fit(X_train)  # 訓練產生標准化的規則
Xtrain = Standard.transform(X_train)  # 將規則應用於訓練集
Xtest = Standard.transform(X_test)  # 將規則應用於測試集
# 模型構建
from sklearn.neighbors import KNeighborsClassifier
knn = KNeighborsClassifier().fit(Xtrain,y_train)
y_pred = knn.predict(Xtest)

 

分類算法評價函數

方法名稱 最佳值 sklearn函數
Precision(精確率) 1.0 metrics.precision_score
Recall(召回率) 1.0 metrics.recall_score
F1值 1.0 metrics.f1_score
Cohen’s Kappa系數 1.0 metrics.cohen_kappa_score
ROC曲線 最靠近y軸 metrics. roc_curve
from sklearn import metrics
precision_score(y_test, y_pred)

0.9066666666666666

recall_score(y_test,y_pred)

0.9855072463768116

f1_score(y_test,y_pred)

0.9444444444444444

cohen_kappa_score(y_test,y_pred)

0.8496538081107814

roc_curve(y_test,y_pred)

(array([0. , 0.15555556, 1. ]),
array([0. , 0.98550725, 1. ]),
array([2, 1, 0]))

  當然,我們還可以偶爾開一下掛,一應俱全啊,美滋滋。

from sklearn.metrics import classification_report
print(classification_report(y_test, y_pred))
             	precision    recall  f1-score   support

          0       	0.97      0.84      0.90        45
          1      	0.91      0.99      0.94        69

avg / total          0.93      0.93      0.93       114

 
  最后,再送你們一段畫”ROC曲線“的代碼,可直接copy的呦~~~

from sklearn.metrics import roc_curve
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = 'SimHei'  ## 改字體
## 求出ROC曲線的x軸和Y軸
fpr, tpr, thresholds = roc_curve(y_test,y_pred)
plt.figure(figsize=(10,6))
plt.xlim(0,1) ##設定x軸的范圍
plt.ylim(0.0,1.1) ## 設定y軸的范圍
plt.xlabel('假正率')
plt.ylabel('真正率')
plt.plot(fpr,tpr,linewidth=2, linestyle="-",color='red')
plt.show()

  下課。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM