本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com
逻辑回归一般用来作二分类问题,用python实现逻辑回归一般通过sklearn包来完成
本文展示一个python使用sklearn的实现逻辑回归的例子及代码
本节描述需要解决的问题,下节再通过python的sklearn来实现一个逻辑回归模型
问 题与数据
问题
已采集150组 乳腺癌数据:包含四个特征和乳腺癌类别
现在需要我们可以通过数据, 训练一个逻辑回归,用于预测乳腺癌是良性还是恶性
数据
乳腺癌问题的具体数据如下:
特征:平均平滑度、平均紧凑度、平均凹面、平均凹点,类别:0-恶性、1-良性
即以sk-learn中的breast_cancer的数据,breast_cancer原数据中有30个特征,为方便讲解,我们这里只选4个
本节展示在python中调用sklearn训练一个逻辑回归的DEMO代码
sklearn训练逻辑回归的Demo代码
python实现逻辑回归一般通过sklearn包来完成,一个简单的流程如下
1. 数据归一化(用sklearn的逻辑回归一般要作数据归一化)
2. 用归一化数据训练逻辑回归模型
3. 用训练好的逻辑回归模型预测
具体的代码实现如下:
'''
本代码展示在python中如何用sklearn来训练一个逻辑回归模型
本代码来自《老饼讲解-机器学习》www.bbbdata.com
'''
from sklearn.datasets import load_breast_cancer
from sklearn.linear_model import LogisticRegression
import numpy as np
#----数据加载------
data = load_breast_cancer()
X = data.data[:,4:8] # 作为学习,这里我们只选择breast_cancer数据中的4个变量进行建模
y = data.target # breast_cancer的y
#----数据归一化------
xmin = X.min(axis=0) # 输入变量的最小值
xmax = X.max(axis=0) # 输入变量的最大值
X_norm=(X-xmin)/(xmax-xmin) # 对输入变量进行归一化
#-----训练模型--------------------
clf = LogisticRegression(random_state=0) # 初始化逻辑回归模型
clf.fit(X_norm,y) # 用数据训练逻辑回归模型
#------模型预测-------------------------------
pred_y = clf.predict(X_norm) # 预测类别
pred_prob_y = clf.predict_proba(X_norm)[:,1] # 预测属于1类的概率
print( "模型系数(对应归一化数据):",clf.coef_[0]) # 打印逻辑回归模型系数
print( "模型阈值(对应归一化数据):",clf.intercept_) # 打印逻辑回归模型阈值
print( "模型准确率:",(pred_y== y).sum()/len(y)) # 打印模型的准确率
运行结果
运行结果如下:
模型系数(对应归一化数据): [ 0.18783816 -1.11495824 -3.6342363 -7.06872446]
模型阈值(对应归一化数据): [3.27959399]
模型准确率: 0.8980667838312829
✍️注意:这里的模型系数是归一化后数据对应的模型系数
以上就是用sklearn实现逻辑回归的一个最简例子
End