机器学习-day3 逻辑回归

2023-08-12  本文已影响0人  后青春期的诗大喵

一、应用场景

1.逻辑回归主要用来解决二分类问题。
2.二分类问题在具体业务应用中十分常见。

3.二分类问题, 都会转换成 概率问题 , 可以根据概率的高低进行排序, 此时模型的应用就会更加的灵活

二、原理

1.逻辑回归的输入就是一个线性方程。


image.png

2.结果输入到sigmoid函数当中。


image.png

3.输出结果解释(重要):

4.逻辑回归概念

5.逻辑回归求解的套路 跟线性回归类似的, 也使用梯度下降

6.对数似然损失


image.png
image.png

三、评估

1. 混淆矩阵

真实值是 正例 的样本中,被分类为 正例 的样本数量有多少,这部分样本叫做真正例(TP,True Positive)
真实值是 正例 的样本中,被分类为 假例 的样本数量有多少,这部分样本叫做伪反例(FN,False Negative)
真实值是 假例 的样本中,被分类为 正例 的样本数量有多少,这部分样本叫做伪正例(FP,False Positive)
真实值是 假例 的样本中,被分类为 假例 的样本数量有多少,这部分样本叫做真反例(TN,True Negative)

T F 代表预测对了还是预测错了

2.ROC曲线和AUC指标

ROC曲线的绘制
TPR = TP/TP+FN 召回率 ROC曲线的Y坐标
FPR= FP/ FP+TN ROC曲线的X坐标

每一个样本 都会计算出一个概率值, 利用这个概率值作为阈值, 可以将所有样本打上0,1标签

通过ROC 主要要计算出 AUC (area under curve)
AUC 取值范围 0.5 ~1

四、案例

癌症分类预测

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

ames = ['Sample code number', 'Clump Thickness', 'Uniformity of Cell Size', 'Uniformity of Cell Shape','Marginal Adhesion', 'Single Epithelial Cell Size', 'Bare Nuclei', 'Bland Chromatin', 'Normal Nucleoli', 'Mitoses', 'Class']
data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data',names=names,na_values='?')

data['Bare Nuclei'].unique()
data.head()
data.shape
data.info()
data1 = data.dropna()
data1.info()

x = data1.iloc[:,1:10]
y = data1['Class']
x_train,x_test,y_train,y_test = train_test_split(x,y,random_state=22)
transformer = StandardScaler()
x_train = transformer.fit_transform(x_train)
x_test = transformer.transform(x_test)
lr = LogisticRegression()
lr.fit(x_train,y_train)
lr.score(x_test,y_test)

from  sklearn.metrics import classification_report
y_pred = lr.predict(x_test)
print(classification_report(y_pred,y_test,labels=[2,4],target_names=['早期','晚期']))

from sklearn.metrics import roc_auc_score
roc_auc_score(y_pred,y_test)

lr.predict(x_test)
y.value_counts()
上一篇下一篇

猜你喜欢

热点阅读