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