其他分享
首页 > 其他分享> > 1_肿瘤

1_肿瘤

作者:互联网

导包

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']))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:predict,train,lr,test,肿瘤,data,sgdc
来源: https://www.cnblogs.com/ld66/p/15308215.html