【机器学习】逻辑回归—良/恶性乳腺癌肿瘤预测
逻辑回归—良/恶性乳腺癌肿瘤预测
- 逻辑回归的损失函数、优化
与线性回归原理相同,但由于是分类问题,损失函数不一样,只能通过梯度下降求解
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
【机器学习】逻辑回归—良/恶性乳腺癌肿瘤预测相关推荐
- 九、逻辑回归介绍-恶性乳腺癌肿瘤预测
python编程快速上手(持续更新中-) 文章目录 python编程快速上手(持续更新中-) 3.1 逻辑回归介绍 概述 1 逻辑回归的应用场景 2 逻辑回归的原理 2.1 输入 2.2 激活函数-s ...
- 【机器学习】:sklearn逻辑回归案例分析 《良/恶性乳腺癌肿瘤预测》
由于对逻辑回归等算法做到深刻理解有点难,目前还在学习中,尽管有现成的模型库,我们还是需要对模型的底层实现有一个了解.这里先记录一下如何利用sklearn的LogisticRegression来做一个简 ...
- sklearn逻辑回归案例分析 《良/恶性乳腺癌肿瘤预测》
由于对逻辑回归等算法做到深刻理解有点难,目前还在学习中,尽管有现成的模型库,我们还是需要对模型的底层实现有一个了解.这里先记录一下如何利用sklearn的LogisticRegression来做一个简 ...
- 《python机器学习及实战》学习笔记ch1之良/恶性乳腺癌肿瘤预测
1.文章说明 本系列文章都是自己学习<python机器学习及实战>这本书时所做的一些笔记而已,仅为学习作参考. 2.数据集地址: 数据地址是书中给出的数据下载地址: https://pan ...
- 一个经典机器学习案例——良/恶性乳腺癌肿瘤预测
良/恶性乳腺癌肿瘤预测 良/恶性乳腺癌肿瘤预测问题是一个十分经典的机器学习问题,简单来说我们需要利用肿块厚度和细胞尺寸这两个特征来判断肿瘤的类型(良性或者是恶性).数据的下载网站如下:http://n ...
- 《Python机器学习及实践:从零开始通往Kaggle竞赛之路》第1章 简介篇 学习笔记(三)“良/恶性乳腺癌肿瘤预测”总结
目录 "良/恶性乳腺癌肿瘤预测" 1.机器学习的三个关键术语 (1)任务 (2)经验 (3)性能 2.机器学习的学习过程 (1)观察测试集数据分布 (2)初始化二类分类器 (3)训 ...
- 《Python machine learning and practice》—— 良\恶性乳腺癌肿瘤预测
数据集 良\恶性乳腺癌肿瘤预测数据集 代码分析 第三方库文件 from sklearn.linear_model import LogisticRegression #导入sklearn中的逻辑斯蒂回 ...
- 机器学习实战之良/恶性乳腺癌肿瘤数据分析
良/恶性乳腺癌肿瘤数据预处理 #导入numpy和pandas包 import pandas as pd import numpy as np#创建特征列表 column_names = ['Sampl ...
- 良/恶性乳腺癌肿瘤预测
1. Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数: itertools.count():会创建一个无限的迭代器,只能按Ctrl+C退出 itertools.cycl ...
- One_良恶性乳腺癌肿瘤预测
Author:龙箬 Data Science and Big Data Technology Change the world with data! CSDN@weixin_43975035 每朵云都 ...
最新文章
- java Mina sftp_java – 使用Apache Mina作为模拟/内存SFTP服务器进行单元测试
- c语言小饭店等位就餐程序,C语言程序设计 C语言程序设计 3.C语言程序设计教案全部.doc...
- openshift_在OpenShift上扩展Java EE微服务
- CANOpen定时器
- C语言 strlcpy函数实现
- bat循环导oracle,Oracle备份恢复与批处理文件实操
- 7-103 牛几 (10 分)
- 初识 ::after
- MongoDB Cursor Methods
- 自学python后自己接单-分享一下我的Python自学历程,分享下我自己学习方法
- LDR_DATA_TABLE_ENTRY结构得不到完整路径?
- 超小型射频接头SMP/SSMP
- 利用postman测试post请求
- Scrapy框架之传智项目整理
- date_sub函数
- Pimple研究及PHP框架搭建
- html布局直接填充,css实现自动填充布局
- 这家公司用AI生成颠覆内容创作!
- 解决Edge浏览器下载文件乱码
- ABAP bgRFC 实例
热门文章
- mysql命令导出数据库_MYSQL 数据库导入导出命令
- bootstrap-daterangepicker插件运用
- Leetcode分类
- 大数据基础篇(一):联机分析处理(OLAP) 与 联机事务处理(OLTP)
- Windows phone 应用开发[14]-调用WebBrowser
- UDT源码剖析(四):UDT的GC线程相关过程代码注释
- Python3——函数
- AfxGetMainWnd( )函数
- Transformer模型拆解分析
- python语言中strike_Python学习笔记