逻辑回归的代码实现-癌症预测案例
本章会介绍如何使用逻辑回归处理二分类问题
加载相应的库
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

浙公网安备 33010602011771号