sklearn逻辑回归案例分析 《良/恶性乳腺癌肿瘤预测》
由于对逻辑回归等算法做到深刻理解有点难,目前还在学习中,尽管有现成的模型库,我们还是需要对模型的底层实现有一个了解。这里先记录一下如何利用sklearn的LogisticRegression来做一个简单的实现。后续深入了解了,再做分享(现在只懂皮毛)。
逻辑回归是分类模型哦:逻辑回归实际上是利用sigmoid函数将线性回归进行了归一化,把输出值压缩到了0-1之间,这个值代表的是事件发生的概率
下面通过一个案例来进行分析:《良/恶性乳腺癌肿瘤预测》
这是一个已经提供了的数据集,地址:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/
数据预处理:
import pandas as pd
import numpy as npcolumn_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']
data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin//breast-cancer-wisconsin.data',names=column_names)data = data.replace(to_replace='?',value=np.nan) #非法字符的替代
data = data.dropna(how='any') #去掉空值,any:出现空值行则删除
print(data.shape)
print(data.head())
预处理后的数据集如上图683行,11列,特征包括细胞厚度、细胞大小、形状等九个维度
准备预测数据集:
from sklearn.cross_validation import train_test_split
X_train,X_test,y_train,y_test = train_test_split(data[column_names[1:10]],data[column_names[10]],test_size=0.25,random_state=5)
使用train_test_split方法分割数据集为训练集和测试集。但如果为男女类这样的数据集,最好先分类再对分类结果做一个分割数据集,确保数据分割均匀。
使用逻辑回归来预测 良/恶性肿瘤:
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegressionss = StandardScaler() #标准化数据,保证每个维度的特征数据方差为1,均值为0.使得预测结果不会被某些维度过大的特征值主导
X_train = ss.fit_transform(X_train) #先拟合,在转换
X_test = ss.transform(X_test) #上面拟合过,这里直接转换lr = LogisticRegression(C=1.0,penalty='l1',tol=0.1) #调用逻辑回归模型,里面的参数可以自己设置,通过交叉验证来判断最优参数,我前面文章有介绍
lr.fit(X_train,y_train) #使用上面标准化后的数据来训练
lr_predict = lr.predict(X_test) #得到预测结果
这里使用l2penalization也可以
结果分析:
from sklearn.metrics import accuracy_score
print("预测结果为:{}".format(lr.score(X_test,y_test)))
print("预测结果为:{}".format(accuracy_score(y_test,lr_predict)))
这里可以使用自带的score计算分数,也可以使用accuracy_score来计算
以上为使用sklearn中的逻辑回归模型来做预测的简单例子,并未涉及太多的底层数学知识,有兴趣的朋友可以查一下相关逻辑回归原理的资料。
参考博客:这里讲很不错,也很细
sklearn逻辑回归案例分析 《良/恶性乳腺癌肿瘤预测》相关推荐
- 【机器学习】:sklearn逻辑回归案例分析 《良/恶性乳腺癌肿瘤预测》
由于对逻辑回归等算法做到深刻理解有点难,目前还在学习中,尽管有现成的模型库,我们还是需要对模型的底层实现有一个了解.这里先记录一下如何利用sklearn的LogisticRegression来做一个简 ...
- 一个经典机器学习案例——良/恶性乳腺癌肿瘤预测
良/恶性乳腺癌肿瘤预测 良/恶性乳腺癌肿瘤预测问题是一个十分经典的机器学习问题,简单来说我们需要利用肿块厚度和细胞尺寸这两个特征来判断肿瘤的类型(良性或者是恶性).数据的下载网站如下:http://n ...
- 《Python machine learning and practice》—— 良\恶性乳腺癌肿瘤预测
数据集 良\恶性乳腺癌肿瘤预测数据集 代码分析 第三方库文件 from sklearn.linear_model import LogisticRegression #导入sklearn中的逻辑斯蒂回 ...
- 《python机器学习及实战》学习笔记ch1之良/恶性乳腺癌肿瘤预测
1.文章说明 本系列文章都是自己学习<python机器学习及实战>这本书时所做的一些笔记而已,仅为学习作参考. 2.数据集地址: 数据地址是书中给出的数据下载地址: https://pan ...
- 《Python机器学习及实践:从零开始通往Kaggle竞赛之路》第1章 简介篇 学习笔记(三)“良/恶性乳腺癌肿瘤预测”总结
目录 "良/恶性乳腺癌肿瘤预测" 1.机器学习的三个关键术语 (1)任务 (2)经验 (3)性能 2.机器学习的学习过程 (1)观察测试集数据分布 (2)初始化二类分类器 (3)训 ...
- 良/恶性乳腺癌肿瘤预测
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 每朵云都 ...
- 基于逻辑回归的癌症分类预测-良/恶性乳腺癌肿瘤预测
简介:逻辑回归是属于机器学习里面的监督学习,它是以回归的思想来解决分类问题的一种非常经典的二分类分类器. 流程分析: 获取数据 数据处理模块(处理缺失值) 数据集划分 特征工程(标准化) 逻辑回归预估 ...
- 机器学习实例(一)良/恶性乳腺癌肿瘤预测
数据描述 Number of Instances: 699(as of 15 July 1922) Number of Attributes: 10 plus the class attribute ...
最新文章
- Web开发的那点事--数据持久层常用功能
- 软件工程随堂小作业——随机四则运算Ⅱ(C++)
- coreldraw 双层边框
- centons7编译安装zabbix3.4【转https://www.cnblogs.com/kowloon/p/7771495.html】
- 关于提高代码复用性的几个知识点的回顾
- mysql从库故障恢复步骤(删除数据重新同步)
- geek_愚蠢的怪胎技巧:在Windows 7中启用秘密的“ How-To Geek”模式
- mac osx 10.10 pip 安装问题
- [vue] 用vue怎么实现一个换肤的功能?
- 后置增强this advice advises no methods_增强消防意识 提高消防能力 重庆天一新城小学积极参加消防技能比赛活动...
- SharePoint2010升级到SharePoint2013操作手册
- 关于64位CentOS上ptrace报linux/user.h no such file 错误的解决方法
- JVM监控及诊断工具命令行篇之jstat
- 64位系统安装SQL2000SP4详细教程[已测试WIN72008R2]
- PCIe/PCI插槽不够用怎么办
- 东南大学计算机系分数,2017最新东南大学专业排名及分数线
- ZBrush如何布尔运算
- 配置win10系统服务器失败怎么解决,windows10系统重置失败如何解决
- 如何使用Win10搭建我的世界Minecraft服务器
- 获取上一个月的同一天
热门文章
- [SDM660 Android9.0]音频模块:xs2002的使能与调试
- 为什么停用CentOS?
- Linux vi文本编辑器大总结
- 刘强东给京东高管降薪:2千多位总监兄弟工资打8折!并拿出100亿保障”兄弟“基础住房...
- 超能英雄 ( Heroes)
- java应届生简历个人技能该怎么写?
- 【Linux命令】rm删除文件
- JavaScript - 用对象的方式创建数组
- 【转载】学不可以已——我一年Java之路的回顾,反思以及展望(下)
- 4月6日——4月10日五年级课程表