人工智能-逻辑回归、分类评估方法、ROC曲线、类别不平衡
1,邏輯回歸介紹
邏輯回歸:分類模型
應用場景:廣告點擊率、是否垃圾郵件
邏輯回歸主要用于解決二分類問題
輸入:
邏輯回歸的輸入:線性回歸的結果
激活函數:sigmoid函數
回歸的結果輸入到sigmoid函數中
輸出結果:[0,1]區間中的一個概率值,默認為0.5為閾值
輸出結果解釋:假設AB兩類,A是正類,則輸出結果是屬于A類的概率值,如果大于0.5,則說明屬于A類,否則屬于B類。也可以自己設定閾值(不是0.5,選0.6,0.4都可)
衡量預測概率----對數似然損失
損失函數
分開寫:
完整寫:
優化:使用梯度下降法進行優化
2,邏輯回歸api介紹
sklearn.linear_model.LogisticRegression(solve=‘liblinear’,penalty=‘l2’,C=1.0)
solve可選(‘liblinear’,‘sag’,‘saga’,‘newton-cg’,‘lbfgs’)
小數據集—‘liblinear’;小數據集—‘sag’,‘saga’
penalty ----正則化的種類
C---- 正則化力度
3,案例:癌癥分類預測-良/惡性乳腺癌腫瘤預測
import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import standardScaler from sklearn.linear_model import LogisticRegression #1.獲取數據 data = pd.read_csv("data") data.head()#2.數據處理 #2.1缺失值處理 data = data.replace(to_replace="?",value=np.nan) data = data.dropna() #2.2確定特征值,目標值 data.head() x = data.iloc[:,1:-1] x.head() y = data['Class'] y.head() #2.3分割數據 x_train,x_test,y_train,y_test = train_test_split(x,y,random_state=22,test_size=0.2) #3,特征工程 transfer = StandardScaler() x_train = transfer.fit_transform(x_train) x_test = transfer.fit_transform(x_test) #4,邏輯回歸 estimator = LogisticRegression() estimator.fit(x_train,y_train) #5,模型評估 #5.1準確率 ret = estimator.score(x_test,y_test) print('準確率:\n',ret) #5.2預測值 y_pre = estimator.predict(x_test) print('預測值:\n',y_pre)4,分類評估方法
混淆矩陣:
準確率:(TP+TN)/(TP+FP+FP+TN)
精確率:TP/(TP+FP) —針對預測為真的數據中
召回率:TP/(TP+FN)—針對真實結果中
F1 =2TP/(2TP+FN+FP)
4.1分類評估報告API
sklearn.metrics.classification_report(y_true,y_pred,labels=[],target_names=None)
precision–精確率
recall —召回率
f1-score —f1值
TPR= TP/(TP+FN)–所有真實類別為1的樣本中,預測類別為1的比例
FPR = FP/(FP+TN)–所有真實類別為0的樣本中,預測類別為1的比例
auc只能用于計算二分類問題
5,ROC曲線的繪制
ROC曲線中:FPR橫坐標,TPR縱坐標
AUC指標即ROC曲線下的面積。AUC曲線越接近1,模型越優
6、分類中解決類別不平衡問題
l類別不平衡問題:即有的類別中數據量大,有的類別中數據量小
處理方法:
1,欠采樣方法–減少數量較多的那一類樣本的數量,使得正負樣本比例均衡
2,過采樣方法–增加數量較小的那一類樣本的數量,使得正負樣本比例均衡
過采樣:
隨機過采樣:通過復制粘貼增加樣本量較小的類RandomOverSampler–可能會造成過擬合
Smoth過采樣:找兩點連線,找中間的點
欠采樣:
隨機欠采樣:RandomUnderSampler
可能會造成信息的缺失
總結
以上是生活随笔為你收集整理的人工智能-逻辑回归、分类评估方法、ROC曲线、类别不平衡的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: maple-example简单操作示例
- 下一篇: 第2讲:用例图(Use Case)