人工智能——逻辑回归,预测癌症案例

​何为逻辑回归?

普通线性回归是用来预测连续的变量,例如房价预测,逻辑回归是用来预测离散的变量,例如病理预测,广告点击率。逻辑回归是分类方法,用于二分类。

逻辑回归是解决二分法的利器

sigmoid 函数:将输出的值映射到0与1之间,也可以看成概率值。

人工智能——逻辑回归,预测癌症案例_第1张图片

Sigmoid函数的值域范围限制在(0,1)之间,我们知道[0,1]与概率值的范围是相对应的,这样sigmoid函数就能与一个概率分布联系起来了。

逻辑回归API:

#导入逻辑回归API
from sklearn.linear_model import LogisticRegression

逻辑回归预测是否患癌症案例,代码实现:

代码流程:

1,构造列名标签,也就是特征值

2,读取数据,通过网址得到案例的数据集

3,缺失值处理,通过浏览网址,我们会发现数据会有那种带有?号的数据          , 所以我们需要进行缺失值处理

4,分割数据集,将数据集划分为训练集和测试集

5,算法实现,通过逻辑回归API进行预测

运行结果:

人工智能——逻辑回归,预测癌症案例_第2张图片

#导入读取数据模块
import pandas as pd
import numpy as np
#导入分割数据集API
from sklearn.model_selection import train_test_split
#导入标准化API
from sklearn.preprocessing import StandardScaler
#导入逻辑回归API
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
def ljhg():
    """
    逻辑回归预测乳腺癌  二分类
    :return: None
    """
    #构造列名标签
    column = ['Sample code number','Clump Thickness','Uniformity of Cell Size','Uniformity of Cell Shape','Marginal Adhesion','Single Epithelial Cell Size','Bare Nuclei','Bland Chromatin','Normal Nucleoli','Mitoses','Class']

    #读取数据
    data = pd.read_csv("https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data",names=column)
    print(data)
    #对缺失值进行处理
    data = data.replace(to_replace='?',value=np.nan)
    data = data.dropna()
    #分割数据集,将数据集分割为训练集和测试集
    x_train,x_test,y_train,y_test = train_test_split(data[column[1:10]],data[column[10]],test_size=0.25)
    #对数据进行标准化处理
    bzh = StandardScaler()
    x_train = bzh.fit_transform(x_train)
    x_test = bzh.transform(x_test)
    #算法实现  逻辑回归预测
    lg = LogisticRegression(C=1.0)
    lg.fit(x_train,y_train)
    #通过训练集的训练模型,来预测测试集
    y_predict = lg.predict(x_test)
    print(lg.coef_)
    print("准确率:",lg.score(x_test,y_test))
    #通过将预测值和真实值进行比较,从而得出召回率99
    print("召回率:",classification_report(y_test,y_predict,labels=[2,4],target_names=["良性","恶性"]))

    return None
if __name__ == "__main__":

ljhg()

作者微信公众号:

人工智能——逻辑回归,预测癌症案例_第3张图片

你可能感兴趣的:(神经网络,机器学习,深度学习,tensorflow,自然语言处理)