欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

【机器学习】逻辑回归—良/恶性乳腺癌肿瘤预测

发布时间:2024/7/5 50 豆豆
生活随笔 收集整理的这篇文章主要介绍了 【机器学习】逻辑回归—良/恶性乳腺癌肿瘤预测 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

逻辑回归—良/恶性乳腺癌肿瘤预测

  • 逻辑回归的损失函数、优化
    与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解
    sklearn逻辑回归API
sklearn.linear_model.LogisticRegression
  • LogisticRegression
sklearn.linear_model.LogisticRegression(penalty=‘l2’, C = 1.0) Logistic回归分类器 coef_:回归系数
  • 只能解决二分类问题:

    广告点击率

    判断用户的性别

    预测用户是否会购买给定的商品类

    判断一条评论是正面的还是负面的


LogisticRegression回归案例-良/恶性乳腺癌肿瘤预测

良/恶性乳腺癌肿数据
原始数据的下载地址:
https://archive.ics.uci.edu/ml/machine-learning-databases/

7.#属性域
------------------------------------------
1.样品编号ID编号
2.团块厚度1-10
3.像元大小的均匀性1-10
4.细胞形状的均匀性1-10
5.边缘附着力1-10
6.单上皮细胞大小1-10
7.裸核1-10
8.淡色染色质1-10
9.正常核仁1-10
10.线粒体1-10
11.等级:(2代表良性,4代表恶性)

8.缺少属性值:16

第1到第6组中的16个实例包含一个缺失项 (即不可用)属性值,现在用“?”表示。

9.班级分布:

良性:458(65.5%) 恶性:241(34.5%)

此处恶性为正例,良性为反例。
哪一个类别少,判定概率值是这个类别!


  • 数据描述
    (1)699条样本,共11列数据,第一列用语检索的id,后9列分别是与肿瘤
    相关的医学特征,最后一列表示肿瘤类型的数值。
    (2)包含16个缺失值,用”?”标出。

  • pandas使用

pd.read_csv(’’,names=column_names) column_names:指定类别名字,['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'] return:数据replace(to_replace=’’,value=):返回数据 dropna():返回数据
  • 良/恶性乳腺癌肿分类流程
    1、网上获取数据(工具pandas)
    2、数据缺失值处理、标准化
    3、LogisticRegression估计器流程
from sklearn.linear_model import LinearRegression, SGDRegressor, Ridge, LogisticRegression from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.metrics import mean_squared_error, classification_report import pandas as pd import numpy as np def logistic():"""逻辑回归做二分类进行癌症预测(根据细胞的属性特征):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)#1-10列是特征值,最后一列10代表11列目标值# 进行标准化处理std = StandardScaler()x_train = std.fit_transform(x_train)x_test = std.transform(x_test)# 逻辑回归预测lg = LogisticRegression(C=1.0)lg.fit(x_train, y_train)print(lg.coef_)y_predict = lg.predict(x_test)print("准确率:", lg.score(x_test, y_test))print("召回率:", classification_report(y_test, y_predict, labels=[2, 4], target_names=["良性", "恶性"]))return Noneif __name__ == "__main__":logistic() [699 rows x 11 columns] [[1.35467578 0.18001121 0.74721681 0.89447017 0.38691172 1.264152650.95382046 0.53218847 0.51240579]] 准确率: 0.9707602339181286 召回率: precision recall f1-score support良性 0.97 0.98 0.98 112恶性 0.97 0.95 0.96 59accuracy 0.97 171macro avg 0.97 0.97 0.97 171 weighted avg 0.97 0.97 0.97 171

总结

以上是生活随笔为你收集整理的【机器学习】逻辑回归—良/恶性乳腺癌肿瘤预测的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。