分类模型的评测指标

科技   2024-10-06 18:30   广东  

 今天是生信星球陪你的第1001天


   

公众号里的文章大多数需要编程基础,如果因为代码看不懂,而跟不上正文的节奏,可以来找我学习,相当于给自己一个新手保护期。我的课程都是循环开课,点进去咨询微信↓

生信分析直播课程(每月初开一期,春节休一个月)

生信新手保护学习小组(每月两期)

单细胞陪伴学习小组(每月两期)


娃感冒了,把我传染了,他好了,我还没好O(∩_∩)O,请了两天直播课的假,带娃也被妈妈和老公全权承包,当了两天幸福的废物。今天开始复工复产咯,小朋友们珍惜你们的假期,明天还剩最后一天咯。

1.逻辑回归

逻辑回归用于分类问题,输出结果是概率

如果概率p>0.5,则模型预测数据标签为1

如果概率p<0.5,则模型预测数据标签为0

(代码接上一篇)

from sklearn.linear_model import LogisticRegression
logreg = LogisticRegression()
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3,random_state=42)
logreg.fit(X_train, y_train)
y_pred = logreg.predict(X_test)
y_pred_probs = logreg.predict_proba(X_test)[:, 1]
print(y_pred_probs[0])
0.20665323740381789

概率的阈值时0.5 , 不特定于逻辑回归,KNN也有阈值。如果改变阈值会发生什么?

2.ROC曲线

随着阈值的变化,混淆矩阵的每个数值都在发生变化,那么TPR和FPR也在变化,所以可以画出一条曲线。

#ROC曲线
from sklearn.metrics import roc_curve
import matplotlib.pyplot as plt
fpr, tpr, thresholds = roc_curve(y_test, y_pred_probs)
plt.plot([01], [01], 'k--')
plt.plot(fpr, tpr)
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Logistic Regression ROC Curve')
plt.show()
from sklearn.metrics import roc_auc_score
print(roc_auc_score(y_test, y_pred_probs))
0.668060272519064

生信星球
一个零基础学生信的平台-- 原创结构化图文/教程,精选阶段性资料,带你少走弯路早入门,收获成就感,早成生信小能手~
 最新文章