当前位置:   article > 正文

Python利用逻辑回归分类器对乳腺肿瘤进行良性/恶性预测实战(超详细 附源码)_肿瘤恶性良性预测python

肿瘤恶性良性预测python

需要源码请点赞关注收藏后评论区留言并且私信~~~

在本案例中,利用逻辑回归分类器对乳腺肿瘤进行良性/恶行预测,并对预测模型进行指标测算与评价。

一、数据集准备与处理

本案例数据集采用乳腺癌数据集,原始数据集的下载地址为数据集下载地址

数据特征包括细胞厚度、细胞大小、形状等九个属性,将每个属性的特征量化为1-10的数值进行表示,首先导入数据 并显示前五条数据

可以浏览数据的基本信息如下

 

调用describe函数查看数据的基本的统计信息如下

 统计数据属性中的空缺值

如果数据中存在空缺数据需要丢弃或填充。该数据集中包含了16个缺失值用“?”标出。因此要删除有缺失值的数据 

.将数据划分为训练集和测试集

 

标准化数据,每个维度的特征数据方差为1,均值为0,使得预测结果不会被某些维度过大的特征值主导

 二、模型训练与性能评估

分别用LogisticRegression与SGDClassifier构建分类器

LR分类器性能分析 如下图所示 精度可以达到百分之九十八点八左右

 SGD分类器性能分析 如下图所示 精度可以达到百分之九十六左右               

 LogisticRegression较SGDClassifier在测试集上有更高的准确率,这时因为scikit-learn中采用解析的方法精确计算LogisticRegression的参数,而使用梯度法估计SGDClassifier中的参数

三、代码

部分代码如下 需要全部代码请点赞关注收藏后评论区留言并且私信

  1. import pandas as pd
  2. import numpy as np
  3. column_names=['number','Cl_Thickness','Unif_cell_size','Unif_cell_shape','Marg_Adhesion','Sing_epith_cell_size','Bare_nuclei','Bland_chromation','Norm_nuclei','Mitoses','Class']
  4. data=pd.read_csv('breast-cancer-wisconsin.data',names=column_names)
  5. display(data.head())
  6. data=data.replachow='any')
  7. print(data.shape)
  8. from sklearn.model_selection import train_test_split
  9. # 划分训练集与测试集
  10. 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)
  11. printlearn.preprocessing import StandardScaler
  12. ss=StandardScaler()
  13. X_train=ss.fit_transform(X_train)
  14. X_test=ss.transform(X_test)
  15. print(X_train.mean())
  16. from sklearn.linear_model import LogisticRegression
  17. from sklearn.linear_model import SGDClassifier
  18. lr=Logitrain,y_train)
  19. lr_y_predict=lr.predict(X_test)
  20. sgdc.fit(X_train,y_train)
  21. sgdc_y_predict=sgdc.predict(X_test)
  22. from sklearn.metrics import classification_report
  23. print('Accuracy of LR Classifier:',lr.score(X_test,y_test))
  24. print(classification_report(y_test,lr_y_predict,target_names=['Benign','Malignant']))
  25. print('Accuracy of SGD Classifier:',sgdc.score(X_test,y_test))
  26. print(classification_report(y_test,sgdc_y_predict,target_names=['Benign','Malignant']))

创作不易 觉得有帮助请点赞关注收藏~~~

本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/916059
推荐阅读
相关标签
  

闽ICP备14008679号