Advertisement

逻辑回归——乳腺癌分类

阅读量:

逻辑回归的数学原理

逻辑回归是一种二分类的有监督学习算法。

对数几率回归。

在这里插入图片描述
在这里插入图片描述

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

在这里插入图片描述

使用梯度下降算法找最优参数。

对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)

还没有任何评论哟~