威斯康星乳腺癌良性预测

一、获取数据

wget https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data

 原始数据以逗号分隔:

 各个列的属性:

  1.Sample Code Number    id number

  2.Clump Thickness        1 - 10    肿块厚度

  3.Uniformity Of Cell Size    1 - 10    细胞大小均一性

  4.Uniformity Of Cell Shape   1 - 10    细胞形状的均一性

  5.Marginal Adhesion      1 - 10      边缘附着性

  6.Single  Epithelial Cell Size   1 - 10    单上皮细胞大小

  7.Bare Nuclei           1 - 10    裸核

  8.Bland Chromatin       1 - 10    布兰染色质

  9.Normal Nucleoli        1 - 10    正常核仁

  10.Mitoses            1 - 10    有丝分裂

  11.Class                    2是良性,4是恶性

二、使用LR和SGD

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler

from sklearn.linear_model import LogisticRegression
from sklearn.linear_model import SGDClassifier
from sklearn import metrics

#数据没有标题,因此加上参数header
data = pd.read_csv(‘https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data‘, header=None)

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‘]

data.columns = column_names
#发现数据中存在?符号
data = data.replace(to_replace=‘?‘,value = np.nan)
data = data.dropna(how=‘any‘)

#一般1代表恶性,0代表良性(本数据集4恶性,所以将4变成1,将2变成0)
#data[‘Class‘][data[‘Class‘] == 4] = 1
#data[‘Class‘][data[‘Class‘] == 2] = 0
data.loc[data[‘Class‘] == 4, ‘Class‘] = 1
data.loc[data[‘Class‘] == 2, ‘Class‘] = 0

#Sample code number特征对分类没有作用,将数据集75%作为训练集,25%作为测试集
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 = 33)

ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)

lr = LogisticRegression()
lr.fit(X_train, y_train)
lr_y_predict = lr.predict(X_test)
print( ‘The LR Predict Result‘, metrics.accuracy_score(lr_y_predict, y_test) )
#LR也自带了score
print( "The LR Predict Result Show By lr.score", lr.score(X_test, y_test) )

sgdc = SGDClassifier(max_iter = 1000)
sgdc.fit(X_train, y_train)
sgdc_y_predict = sgdc.predict(X_test)
print( "The SGDC Predict Result", metrics.accuracy_score(sgdc_y_predict, y_test) )
#SGDC也自带了score
print( "The SGDC Predict Result Show By SGDC.score", sgdc.score(X_test, y_test) )
print("\n")
print("性能分析:\n")
#性能分析
from sklearn.metrics import classification_report
#使用classification_report模块获得LR三个指标的结果(召回率,精确率,调和平均数)
print( classification_report( y_test,lr_y_predict,target_names=[‘Benign‘,‘Malignant‘] ) )

##使用classification_report模块获得SGDC三个指标的结果
print( classification_report( y_test,sgdc_y_predict,target_names=[‘Benign‘,‘Malignant‘] ) )

‘‘‘
特点分析:
LR对参数的计算采用精确解析的方法,计算时间长但是模型性能高
SGDC采用随机梯度上升算法估计模型参数,计算时间短但产出的模型性能略低,
一般而言,对于训练数据规模在10万量级以上的数据,考虑到时间的耗用,推荐使用SGDC
‘‘‘

 

原文地址:https://www.cnblogs.com/always-fight/p/9888353.html

时间: 2024-08-30 03:08:51

威斯康星乳腺癌良性预测的相关文章

机器学习之良/恶性乳腺癌肿瘤预测

知识点: 逻辑斯蒂回归分类器 训练数据集:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data 数据预处理 打开ipython网页解释器 #导入模块 import pandas as pd import numpy as np #创建特征列表表头 column_names = ['Sample code number','Clum

机器学习与R语言:kNN

#---------------------------------------- # 功能描述:演示kNN建模过程 # 数据集:威斯康星乳腺癌诊断 # #---------------------------------------- #第一步:收集数据 # import the CSV file wbcd <- read.csv("/Users/chenyangang/R语言/data/wisc_bc_data.csv", stringsAsFactors = FALSE)

《Python机器学习》笔记(六)

模型评估与参数调优实战 基于流水线的工作流 一个方便使用的工具:scikit-learn中的Pipline类.它使得我们可以拟合出包含任意多个处理步骤的模型,并将模型用于新数据的预测. 加载威斯康星乳腺癌数据集 1.使用pandas从UCI网站直接读取数据集 import pandas as pd df=pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/wd

3星|丹尼尔&#183;卡尼曼《高情商领导力》:职场中情商比智商重要两倍

高情商领导力 全书是丹尼尔·卡尼曼几年前在<哈佛商业评论>等媒体上发表的文章.主要内容是:情商比智商更重要:领导类型有6种各有利弊:专注力非常重要. 由于是文章合集,每一篇都不够深入,合起来还是相对零散,读后有点失望,作为一本书深度不太够,本来可以详细展开说的. 译者应该是台湾人,翻译总体还不错,但是读起来总是感觉有点怪异,直到看到了“执行长”这个台湾词汇,大陆一般直接叫CEO.另外P146“顺流”一词现在一般是翻译为“心流”. 总体评价3星,有参考价值. 以下是书中一些内容的摘抄,[]中是我

浅谈关于特征选择算法与Relief的实现

一. 背景 1) 问题 在机器学习的实际应用中,特征数量可能较多,其中可能存在不相关的特征,特征之间也可能存在相关性,容易导致如下的后果: 1.     特征个数越多,分析特征.训练模型所需的时间就越长,模型也会越复杂. 2.     特征个数越多,容易引起“维度灾难”,其推广能力会下降. 3.     特征个数越多,容易导致机器学习中经常出现的特征稀疏的问题,导致模型效果下降. 4.     对于模型来说,可能会导致不适定的情况,即是解出的参数会因为样本的微小变化而出现大的波动. 特征选择,能

朴素贝叶斯项目实战

--判断一个患者的肿瘤是好是坏? 1.对数据集(威斯康星乳腺肿瘤数据集)分析 ############################# 朴素贝叶斯实战--判断肿瘤是良性的还是恶性的 ####################################### #导入数据集拆分工具 from sklearn.model_selection import train_test_split #导入威斯康星乳腺肿瘤数据集 from sklearn.datasets import load_breas

怎样找到一份深度学习的工作(附学习材料,资源与建议)

原文地址:How to get a job in deep learning 原文翻译与校对:@戴丹 && @胡杨 && 寒小阳 时间:2016年10月. 出处:http://blog.csdn.net/han_xiaoyang/article/details/52777661 声明:版权所有,转载请联系作者并注明出 如果你是一个软件工程师(或者你现在正在学习这一方面),你肯定有机会听说过深度学习(有时候深度学习缩写为"DL").它现在是一个热门.且快速

机器学习问题

监督学习--supervised learning 假如说你想预测房价. 你收集了一些房价的数据,把这些数据画出来,看起来是这个样子:横轴表示房子的面积,单位是平方英尺,纵轴表示房价,单位是千美元.那基于这组数据,假如你有一个朋友,他有一套 750 平方英尺房子,现在他希望把房子卖掉,他想知道这房子能卖多少钱. 那么关于这个问题,机器学习算法将会怎么帮助你呢? 我们应用学习算法,可以在这组数据中画一条直线,或者换句话说,拟合一条直线,根据这条线我们可以推测出,这套房子可能卖150, 000美元,

100篇大数据文章[转]

摘要:PayPal高级工程总监Anil Madan写了篇大数据的文章,一共有100篇大数据的论文,涵盖大数据技术栈,全部读懂你将会是大数据的顶级高手. 开源(Open Source)用之于大数据技术,其作用有二:一方面,在大数据技术变革之路上,开源在众人之力和众人之智推动下,摧枯拉朽,吐故纳新,扮演着非常重要的推动作用.另一方面,开源也给大数据技术构建了一个异常复杂的生态系统.每一天,都有一大堆"新"框架."新"类库或"新"工具,犹如雨后春笋般涌