逻辑回归的代码实现-癌症预测案例

本章会介绍如何使用逻辑回归处理二分类问题

加载相应的库

import  numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score

一、加载数据

data = pd.read_csv('breast-cancer-wisconsin.csv')
print(data.info())

二、数据预处理

2.1 把?替换成np.nan

# 参1:需要替换的值;参2:用来替换的值;参3:是否替换原数据,默认为False
data.replace('?', np.nan, inplace=True)
print(data.info())

2.2 缺失值处理-->删除

data.dropna(axis=0,inplace=True)

2.3 打印处理后的数据

print(data.info())

三、特征工程(提取,预处理)

3.1 特征提取之提取特征和标签

x = data.iloc[:,1:-1] # 按照行好,索引获取数据,:表示所有行,1:-1表示从第一列到最后一列,包左不包右
y = data.iloc[:,-1]

3.2 查看下特征和标签

print(x.head())
print('/n')
print(y.head())
print(x.shape,y.shape)

3.3 切割训练集和测试集

x_train, x_test, y_train, y_test = train_test_split(x,y,test_size=0.2,random_state=23)

3.4 特征工程:标准化

# 3.4.1 创建标准化对象
transfer = StandardScaler()
# 3.4.2 对训练集进行标准化
x_train = transfer.fit_transform(x_train)
# 3.4.2 对测试集进行标准化
x_test = transfer.transform(x_test)

四、模型训练

4.1 创造模型对象 --> 逻辑回归模型

estimator = LogisticRegression()

4.2 模型训练

estimator.fit(x_train,y_train)

五、模型预测

y_pred = estimator.predict(x_test)
print(f'预测值为:{y_pred}')

六、模型评估

# 正确率(准确率),公式为:预测对的/样本总数
print(f'预测前评估,正确率为:{estimator.score(x_test,y_test)}') # 测试集的特征,标签
print(f'预测后评估,正确率:{accuracy_score(y_test,y_pred)}') # 测试集的标签,预测值

思考:逻辑回归模型能用准确率来评测吗?

答案:可以,但是结果不准确,因为逻辑回归主要用于二分类,即:A类还是B类,不能说97%A类,3%的B类
所以要通过混淆矩阵来测评,即:精确率,召回率,F1,ROC,AUC

posted @ 2026-06-25 16:57  王新文  阅读(4)  评论(0)    收藏  举报