传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例

文章目录

  • 传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例
    • 1导入基本库
    • 2读取数据并且变换类型
    • 3输出数据
    • 4可视化数据
    • 5划分数据集并训练模型
    • 6进行模型预测和模型评估

1导入基本库

##coding utf-8
# 导入基本数据计算库
import numpy as np
import pandas as pd
# 导入基本绘图库
import matplotlib.pyplot as plt
import seaborn as sns

2读取数据并且变换类型

## 我们利用 sklearn 中自带的breast_cancer数据作为数据载入,并利用Pandas转化为DataFrame格式
from sklearn.datasets import load_breast_cancer
data = load_breast_cancer() #得到数据特征
breast_target = data.target #得到数据对应的标签
breast_features = pd.DataFrame(data=data.data, columns=data.feature_names) #利用Pandas转化为DataFrame格式
print(breast_features)

3输出数据

## 进行简单的数据查看,我们可以利用 .head() 头部.tail()尾部
breast_features.head()
mean radius mean texture mean perimeter mean area mean smoothness mean compactness mean concavity mean concave points mean symmetry mean fractal dimension worst radius worst texture worst perimeter worst area worst smoothness worst compactness worst concavity worst concave points worst symmetry worst fractal dimension
0 17.99 10.38 122.80 1001.0 0.11840 0.27760 0.3001 0.14710 0.2419 0.07871 25.38 17.33 184.60 2019.0 0.1622 0.6656 0.7119 0.2654 0.4601 0.11890
1 20.57 17.77 132.90 1326.0 0.08474 0.07864 0.0869 0.07017 0.1812 0.05667 24.99 23.41 158.80 1956.0 0.1238 0.1866 0.2416 0.1860 0.2750 0.08902
2 19.69 21.25 130.00 1203.0 0.10960 0.15990 0.1974 0.12790 0.2069 0.05999 23.57 25.53 152.50 1709.0 0.1444 0.4245 0.4504 0.2430 0.3613 0.08758
3 11.42 20.38 77.58 386.1 0.14250 0.28390 0.2414 0.10520 0.2597 0.09744 14.91 26.50 98.87 567.7 0.2098 0.8663 0.6869 0.2575 0.6638 0.17300
4 20.29 14.34 135.10 1297.0 0.10030 0.13280 0.1980 0.10430 0.1809 0.05883 22.54 16.67 152.20 1575.0 0.1374 0.2050 0.4000 0.1625 0.2364 0.07678

5 rows × 30 columns

breast_features.tail()
mean radius mean texture mean perimeter mean area mean smoothness mean compactness mean concavity mean concave points mean symmetry mean fractal dimension worst radius worst texture worst perimeter worst area worst smoothness worst compactness worst concavity worst concave points worst symmetry worst fractal dimension
564 21.56 22.39 142.00 1479.0 0.11100 0.11590 0.24390 0.13890 0.1726 0.05623 25.450 26.40 166.10 2027.0 0.14100 0.21130 0.4107 0.2216 0.2060 0.07115
565 20.13 28.25 131.20 1261.0 0.09780 0.10340 0.14400 0.09791 0.1752 0.05533 23.690 38.25 155.00 1731.0 0.11660 0.19220 0.3215 0.1628 0.2572 0.06637
566 16.60 28.08 108.30 858.1 0.08455 0.10230 0.09251 0.05302 0.1590 0.05648 18.980 34.12 126.70 1124.0 0.11390 0.30940 0.3403 0.1418 0.2218 0.07820
567 20.60 29.33 140.10 1265.0 0.11780 0.27700 0.35140 0.15200 0.2397 0.07016 25.740 39.42 184.60 1821.0 0.16500 0.86810 0.9387 0.2650 0.4087 0.12400
568 7.76 24.54 47.92 181.0 0.05263 0.04362 0.00000 0.00000 0.1587 0.05884 9.456 30.37 59.16 268.6 0.08996 0.06444 0.0000 0.0000 0.2871 0.07039

5 rows × 30 columns

breast_target
array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 0, 1, 0, 0,1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 0, 0,1, 1, 1, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1,1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0,0, 1, 0, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1,1, 1, 0, 1, 1, 1, 1, 0, 0, 1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1,1, 0, 1, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0,0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 1, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0,1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 1, 1,1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 0, 0, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 0, 1, 1, 1, 1, 0, 0,0, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0,0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 1, 0, 0,1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 0, 0, 1, 1,1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 0,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1,1, 0, 1, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0,1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1,1, 1, 1, 0, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, 0, 1, 1,1, 1, 1, 0, 1, 1, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1])

4可视化数据

## 合并标签和特征信息
breast_all = breast_features.copy() ##进行浅拷贝,防止对于原始数据的修改
breast_all['target'] = breast_target
for col in breast_features.columns:sns.boxplot(x='target', y=col, saturation=0.5,palette='pastel', data=breast_all)plt.title(col)plt.show()
# 选取其前三个特征绘制三维散点图
from mpl_toolkits.mplot3d import Axes3Dfig = plt.figure(figsize=(10,8))
ax = fig.add_subplot(111, projection='3d')breast_all_class0 = breast_all[breast_all['target']==0].values
breast_all_class1 = breast_all[breast_all['target']==1].values#
ax.scatter(breast_all_class0[:,0], breast_all_class0[:,1], breast_all_class0[:,2],label='malignancy')
ax.scatter(breast_all_class1[:,0], breast_all_class1[:,1], breast_all_class1[:,2],label='benign')plt.legend()# 设置图例plt.show()

5划分数据集并训练模型

## 为了正确评估模型性能,将数据划分为训练集和测试集,并在训练集上训练模型,在测试集上验证模型性能。
from sklearn.model_selection import train_test_split## 选择其类别为0和1的样本
breast_features_part = breast_features.iloc[:400]
breast_target_part = breast_target[:400]## 测试集大小为20%, 80%/20%分
x_train, x_test, y_train, y_test = train_test_split(breast_features_part, breast_target_part, test_size = 0.2, random_state = 2020)
## 从sklearn中导入逻辑回归模型
from sklearn.linear_model import LogisticRegression
## 查看其对应的w
print('the weight of Logistic Regression:',clf.coef_)## 查看其对应的w0
print('the intercept(w0) of Logistic Regression:',clf.intercept_)
the weight of Logistic Regression: [[ 1.58968483  0.00505748  0.38837107 -0.02644605 -0.06394019 -0.28711873-0.37853229 -0.16487063 -0.08104816 -0.02073884  0.03589982  0.740895550.319864   -0.11417749 -0.00675931 -0.05530251 -0.07017069 -0.01922167-0.03401847 -0.00483318  1.43728027 -0.293294   -0.44437706 -0.00940775-0.1151745  -0.90699784 -1.02800043 -0.31155816 -0.31756381 -0.0902991 ]]
the intercept(w0) of Logistic Regression: [0.27969267]

6进行模型预测和模型评估

## 在训练集和测试集上分布利用训练好的模型进行预测
train_predict = clf.predict(x_train)
test_predict = clf.predict(x_test)
from sklearn import metrics## 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_test,test_predict))## 查看混淆矩阵 (预测值和真实值的各类情况统计矩阵)
confusion_matrix_result = metrics.confusion_matrix(test_predict,y_test)
print('The confusion matrix result:\n',confusion_matrix_result)# 利用热力图对于结果进行可视化
plt.figure(figsize=(8, 6))
sns.heatmap(confusion_matrix_result, annot=True, cmap='Blues')
plt.xlabel('Predicted labels')
plt.ylabel('True labels')
plt.show()

## 在训练集和测试集上分布利用训练好的模型进行预测
train_predict = clf.predict(x_train)
test_predict = clf.predict(x_test)## 由于逻辑回归模型是概率预测模型(p = p(y=1|x,\theta)),所有我们可以利用 predict_proba 函数预测其概率
train_predict_proba = clf.predict_proba(x_train)
test_predict_proba = clf.predict_proba(x_test)print('The test predict Probability of each class:\n',test_predict_proba)
## 其中第一列代表预测为0类的概率,第二列代表预测为1类的概率## 利用accuracy(准确度)【预测正确的样本数目占总预测样本数目的比例】评估模型效果
print('The accuracy of the Logistic Regression is:',metrics.accuracy_score(y_train,train_predict))
The test predict Probability of each class:[[1.00000000e+00 1.74550212e-20][1.39048275e-01 8.60951725e-01][5.93137883e-03 9.94068621e-01][9.99928649e-01 7.13512878e-05][1.10598806e-02 9.88940119e-01][1.51763229e-02 9.84823677e-01][9.99999976e-01 2.40399407e-08][6.62445901e-01 3.37554099e-01][9.99998635e-01 1.36531478e-06][9.99999937e-01 6.26178303e-08][6.90866554e-03 9.93091334e-01][5.05999535e-01 4.94000465e-01][9.99286913e-01 7.13086781e-04][1.76610793e-03 9.98233892e-01][2.80400461e-02 9.71959954e-01][1.24867157e-02 9.87513284e-01][2.83215334e-02 9.71678467e-01][1.15554505e-01 8.84445495e-01][1.00000000e+00 2.80618965e-19][9.53877184e-01 4.61228156e-02][9.99981034e-01 1.89663222e-05][9.99999998e-01 1.77364899e-09][9.99784834e-01 2.15165875e-04][9.49142700e-04 9.99050857e-01][1.64447085e-02 9.83555291e-01][2.33740738e-01 7.66259262e-01][6.99567302e-01 3.00432698e-01][3.04170042e-01 6.95829958e-01][1.44626331e-01 8.55373669e-01][1.00000000e+00 5.02507240e-26][9.97623824e-01 2.37617614e-03][2.58153192e-01 7.41846808e-01][3.06528727e-02 9.69347127e-01][2.36651118e-03 9.97633489e-01][9.99999630e-01 3.70006531e-07][1.38031809e-02 9.86196819e-01][8.14914321e-01 1.85085679e-01][9.99964597e-01 3.54026953e-05][2.63450870e-03 9.97365491e-01][1.00392014e-03 9.98996080e-01][8.71662147e-01 1.28337853e-01][4.38761196e-03 9.95612388e-01][8.36873412e-03 9.91631266e-01][1.06161420e-02 9.89383858e-01][9.99999997e-01 3.31516428e-09][9.94734026e-01 5.26597408e-03][5.13494043e-03 9.94865060e-01][9.99999939e-01 6.09370477e-08][9.99999998e-01 2.05445256e-09][2.46967502e-02 9.75303250e-01][1.00000000e+00 9.38730719e-11][1.77617121e-02 9.82238288e-01][1.60523832e-02 9.83947617e-01][9.99987835e-01 1.21654996e-05][9.82051340e-01 1.79486596e-02][4.18451580e-03 9.95815484e-01][1.00000000e+00 1.09319254e-11][6.97450777e-05 9.99930255e-01][1.37259706e-01 8.62740294e-01][1.00000000e+00 2.49456197e-12][7.97894321e-02 9.20210568e-01][5.37893016e-03 9.94621070e-01][1.96820584e-02 9.80317942e-01][1.17207761e-01 8.82792239e-01][7.35320492e-02 9.26467951e-01][9.99673213e-01 3.26787395e-04][2.57482071e-02 9.74251793e-01][1.71958276e-03 9.98280417e-01][9.97528713e-01 2.47128671e-03][9.80976661e-01 1.90233388e-02][6.21099876e-03 9.93789001e-01][8.15132942e-03 9.91848671e-01][9.23436304e-01 7.65636959e-02][4.19986782e-03 9.95800132e-01][1.27804652e-03 9.98721953e-01][1.87243107e-03 9.98127569e-01][1.85282178e-01 8.14717822e-01][6.44246823e-02 9.35575318e-01][9.99998455e-01 1.54502928e-06][6.62652442e-03 9.93373476e-01][8.57651190e-01 1.42348810e-01][7.16548957e-01 2.83451043e-01][3.06459764e-03 9.96935402e-01][9.96314395e-01 3.68560463e-03][1.47485316e-01 8.52514684e-01][9.99999787e-01 2.12826060e-07][1.18626317e-02 9.88137368e-01][1.57873994e-01 8.42126006e-01][3.78928093e-03 9.96210719e-01][1.29844105e-02 9.87015589e-01][9.99793895e-01 2.06105131e-04][9.99066816e-01 9.33183505e-04][9.29672666e-01 7.03273335e-02][3.54993590e-02 9.64500641e-01][9.99998018e-01 1.98162222e-06][1.40153070e-02 9.85984693e-01][1.13682784e-02 9.88631722e-01][9.99999974e-01 2.62916142e-08][1.00000000e+00 9.16315813e-13][5.19135133e-03 9.94808649e-01][1.85001642e-02 9.81499836e-01][2.35600902e-02 9.76439910e-01][5.37148641e-02 9.46285136e-01][6.41665354e-02 9.35833465e-01][7.27446091e-04 9.99272554e-01][7.95455974e-04 9.99204544e-01][2.91957313e-03 9.97080427e-01][8.42552515e-04 9.99157447e-01][9.28348894e-02 9.07165111e-01][9.98976712e-01 1.02328806e-03][9.99710759e-01 2.89240705e-04][1.00000000e+00 4.26245383e-16][9.98616497e-01 1.38350344e-03][9.65916735e-04 9.99034083e-01]]
The accuracy of the Logistic Regression is: 0.9516483516483516
```![在这里插入图片描述](https://img-blog.csdnimg.cn/f33fccd63ca0432d96566ec9fb1cc58a.bmp#pic_center)
![在这里插入图片描述](https://img-blog.csdnimg.cn/1d152db1661f4e57a47cd24a97e22f48.bmp#pic_center)

传统机器学习之逻辑回归的分类预测,以威斯康辛州乳腺癌数据集为例相关推荐

  1. 机器学习笔记-基于逻辑回归的分类预测

    天池学习笔记:AI训练营机器学习-阿里云天池 基于逻辑回归的分类预测 1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有&quo ...

  2. ML机器学习算法(一): 基于逻辑回归的分类预测

    机器学习算法(一): 基于逻辑回归的分类预测 1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个 ...

  3. 【数据分析与挖掘】基于LightGBM,XGBoost,逻辑回归的分类预测实战:英雄联盟数据(有数据集和代码)

    机器学习-LightGBM 一.LightGBM的介绍与应用 1.1 LightGBM的介绍 1.2 LightGBM的应用 二.数据集来源 三.基于英雄联盟数据集的LightGBM分类实战 Step ...

  4. 机器学习算法(一): 基于逻辑回归的分类预测-Task01

    基于逻辑回归LR的分类预测 1.逻辑回归的介绍 Logistic Regression 虽然被称为回归,但其实际上是分类模型,并常用于二分类.Logistic Regression 因其简单.可并行化 ...

  5. 吴恩达机器学习之逻辑回归(二分类)

    吴恩达机器学习之逻辑回归 逻辑回归 二分类逻辑回归 二分类逻辑回归案例 python代码实现(含详细代码注释): 案例中几个问题的解析 不同于线性回归,逻辑回归的hθ(x)还需要用sigmoid函数处 ...

  6. 机器学习笔记I: 基于逻辑回归的分类预测

    逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个字,但逻辑回归其实是一个分类模型,并且广泛应用于各个领域之中.虽然现在深度学习相 ...

  7. python逻辑回归训练预测_[Python] 机器学习笔记 基于逻辑回归的分类预测

    导学问题 什么是逻辑回归(一),逻辑回归的推导(二 3),损失函数的推导(二 4) 逻辑回归与SVM的异同 逻辑回归和SVM都用来做分类,都是基于回归的概念 SVM的处理方法是只考虑 support ...

  8. 机器学习算法(一): 基于逻辑回归的分类预测③

    算法实践-- 基于鸢尾花(iris)数据集的逻辑回归分类实践 导入函数库 ## 基础函数库 import numpy as np import pandas as pd## 绘图函数库 import ...

  9. 阿里云 龙珠机器学习训练营Task1:机器学习算法(一): 基于逻辑回归的分类预测

    补充一些代码的注释,方便理解: #Step1:库函数导入 #基本函数库 import numpy as np #导入画图库 import matplotlib.pyplot as plt import ...

最新文章

  1. Opengl-深度测试模板测试
  2. zabbix监控实践解析(历史记录附近乱码、图表显示乱码)
  3. Flink1.12 standalone-HA配置(转载+自己验证)
  4. 解决orcale报ORA-28001: the password has expired
  5. Android之build.gradle配置签名
  6. 【剑指offer】_10二叉树和为某一路径值
  7. Clob类型转换为String
  8. jQuery的操作css的几种方法和位置,尺寸以及scrolltop方法
  9. jupyter notebook如何打开其他文件夹下的iqynb文件
  10. 创立三年,广受好评:如何评价 ApacheCN ?
  11. 从零开始学习音视频编程技术(二) 音频格式讲解
  12. apache ftpserver java开发_apache FTPserver安装
  13. H3C数通 H3CNE H3CSE 资料下载 肖哥视频下载
  14. u盘被隐藏的文件怎么恢复
  15. Idea打包Jar文件
  16. npm-deprecate
  17. 《共享经济:市场设计及其应用》——…
  18. 【传感器大赏】3轴磁场传感器
  19. 脉冲响应不变法C语言程序,脉冲响应不变法-数字信号处理总结.ppt
  20. 英飞凌SP370方案胎压监测器-入门级视频课程-朱有鹏-专题视频课程

热门文章

  1. 高效记忆/形象记忆(08)英语单词记忆-字母熟词拆分
  2. Typecho 博客主题 Terse
  3. 工地wifi认证登录哪里有
  4. 文华指标源码修改密码破解
  5. linux中的哲学思想
  6. 北大才女一等奖作文《卖米》看哭无数人,原来有些人只是生活,就已花光所有力气
  7. 分享一个Auto.js写的自动挂机聊天源码(保护生态)
  8. 使用 SSHFS 挂载远程的 Linux 文件系统及目录
  9. Hive 结构[笔记2]
  10. 我的《翁恺Java面向对象程序设计》同步笔记