逻辑回归——乳腺癌分类
发布时间
阅读量:
阅读量
逻辑回归的数学原理
逻辑回归是一种二分类的有监督学习算法。
对数几率回归。


损失函数采用最大似然函数的负对数。

使用梯度下降算法找最优参数。
对conda 自带数据集分类
导包
读数据
划分训练集和测试集
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
cancer=load_breast_cancer()
data=pd.DataFrame(data=cancer.data,columns=cancer.feature_names)
xtrain,xtest,ytrain,ytest=train_test_split(data,cancer.target,test_size=0.3,random_state=250)
导入逻辑回归
训练分类器
from sklearn.linear_model import LogisticRegression
lr=LogisticRegression().fit(xtrain,ytrain)
查看训练的各项参数值
lr.coef_
可以看到很多标签的权重特别小,因为逻辑回归默认使用的L2正则化项

另外一种选择是使用L1正则化项进行测试;需要注意的是,在不指定solver='liblinear'的情况下执行此操作可能会导致错误。
lr1=LogisticRegression(penalty='l1',solver='liblinear').fit(xtrain_,ytrain)
可以看到,使用L1正则化项,那些极小的参数都变成了0。

查看一下模型准确率
lr.score(xtest,ytest)

对模型进行优化
由于逻辑回归属于一种基于概率的分类方法,在应用时为了避免量纲差异对模型产生影响,通常会对数据进行标准化预处理。
from sklearn.preprocessing import StandardScaler
s=StandardScaler()
xtrain_=s.fit_transform(xtrain)
xtest_=s.fit_transform(xtest)
使用新的训练集做逻辑回归
lr2=LogisticRegression().fit(xtrain_,ytrain)
查看准确率
lr2.score(xtest_,ytest)
可以看到,准确率略有提升

最后
最后的最后,检查一下模型的查全率和查准率
from sklearn.metrics import classification_report
print(classification_report(ytest,lr1.predict(xtest_)))

全部评论 (0)
还没有任何评论哟~
