机器学习-专题详述

【例子】python实现逻辑回归的简单例子

作者 : 老饼 发表日期 : 2022-06-26 10:09:23 更新日期 : 2024-04-16 09:27:15
本站原创文章,转载请说明来自《老饼讲解-机器学习》www.bbbdata.com



逻辑回归一般用来作二分类问题,用python实现逻辑回归一般通过sklearn包来完成

本文展示一个python使用sklearn的实现逻辑回归的例子及代码




   01. python逻辑回归例子-问题与数据说明   




本节描述需要解决的问题,下节再通过python的sklearn来实现一个逻辑回归模型




    问 题与数据    


问题
已采集150组 乳腺癌数据:包含四个特征和乳腺癌类别
现在需要我们可以通过数据, 训练一个逻辑回归,用于预测乳腺癌是良性还是恶性
数据
 乳腺癌问题的具体数据如下:
 
特征:平均平滑度、平均紧凑度、平均凹面、平均凹点,类别:0-恶性、1-良性
 即以sk-learn中的breast_cancer的数据,breast_cancer原数据中有30个特征,为方便讲解,我们这里只选4个






   02. sklearn-逻辑回归Demo代码   




本节展示在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 





联系老饼