首页 > 其他 > 详细

1_肿瘤

时间:2021-09-21 18:18:04      阅读:14      评论:0      收藏:0      [点我收藏+]

导包

import numpy as np
import pandas as pd

处理数据

创建特征列表

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 = 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)
 print(data.shape) 
# (683,11) 筛选后还有683条数据,维度是11

分割数据

# 分割模块 一个训练一个测试
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression

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)

train_test_split函数第一个参数是样本特征集,第二个参数是所要划分的样本结果,第三个是样本占比,如果是整数的话就是样本的数量,第四个参数是随机种子数,保证得到一组一样的随机数,填0则

每次都不一样。

训练数据

逻辑斯特回归

在训练数据之前我们还需要把data变成正态分布,减小方差

from sklearn.preprocessing import StandardScaler
# 从sklearn.linear_model里导入LogisticRegression与SGDClassifier。
from sklearn.linear_model import LogisticRegression
from sklearn.linear_model import SGDClassifier

ss = StandardScaler()
X_train = ss.fit_transform(X_train)
X_test = ss.transform(X_test)
#  把data变成正态分布,减小方差

我们先用逻辑斯特回归里面的函数来训练样本

lr = LogisticRegression()
# 调用LogisticRegression中的fit函数/模块用来训练模型参数。
lr.fit(X_train, y_train)
# 使用训练好的模型lr对X_test进行预测,结果储存在变量lr_y_predict中。
lr_y_predict = lr.predict(X_test)

print(lr_y_predict)

逻辑斯特回归预测结果:

技术分享图片

导入评分系统

# 从sklearn.metrics里导入classification_report模块。 对预测结果进行评分
from sklearn.metrics import classification_report

用评分函数测试准确性;用classification_report函数获取其他性能指标

print(lr.score(X_test, y_test))
print(classification_report(y_test, lr_y_predict, target_names=[Benign, Malignant]))

技术分享图片

 

随机梯度下降分类器

我们用随机梯度下降分类器算法来训练样本

sgdc = SGDClassifier()
# 调用SGDClassifier中的fit函数/模块用来训练模型参数。
sgdc.fit(X_train, y_train)
# 使用训练好的模型sgdc对X_test进行预测,结果储存在变量sgdc_y_predict中。
sgdc_y_predict = sgdc.predict(X_test)
print(sgdc_y_predict)

sgdc模型预测结果:

 技术分享图片

 用评分函数测试准确性;用classification_report函数获取其他性能指标

print(sgdc.score(X_test, y_test))
print(classification_report(y_test, sgdc_y_predict, target_names=[Benign, Malignant]))

技术分享图片

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1_肿瘤

原文:https://www.cnblogs.com/ld66/p/15308215.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!