本站原创文章,转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com
逻辑回归一般用来作二分类问题,
本文展示一个使用sklearn的实现逻辑回归的Demo例子
本节描述本例子需要解决的问题
问 题
已采集150组 乳腺癌数据:包含四个特征和乳腺癌类别。
现在需要我们可以通过数据,
训练一个逻辑回归,用于预测乳腺癌是良性还是恶性
数 据
具体数据如下:
特征:平均平滑度、平均紧凑度、平均凹面、平均凹点,类别:0-恶性、1-良性
即以sk-learn中的breast_cancer的数据,breast_cancer原数据中有30个特征,为方便讲解,我们这里只选4个
本节展示调用sklearn训练一个逻辑回归的DEMO代码
代码简介
1. 数据归一化(用sklearn的逻辑回归一般要作数据归一化)
2. 用归一化数据训练逻辑回归模型
3. 用训练好的逻辑回归模型预测
sklearn训练逻辑回归的Demo代码
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] #这里我们只选择4个变量进行建模
y = data.target
#----数据归一化------
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