逻辑回归(Logistic Regression)

  • 数据与算法实现

3.1数据来源

南斯拉夫卢布尔雅那大学医疗中心肿瘤研究所的威斯康辛乳腺癌数据集(由M.Zwitter 与M. Soklic 二者提供,该数据集在UCI数据库中找到)卢布尔雅那大学(Univerza v Ljubljani)成立于1919年,是斯洛文尼亚历史最悠久、规模最大的高等学府。位于首都卢布尔雅那市中心,教育设施先进,学生可以攻读从本科到博士的各种课程,学历为世界各国承认。其中经济学院(The faculty of economics)注重国际化的教育,是中欧商校联盟成员,并于2016年8月获得全球商学院最重要的“三皇冠”认证(AMBA、EQUIS、AACSB),跻身世界顶尖商学院的行列。

3.2 威斯康辛乳腺癌数据集描述

(1)699条样本,共11列数据,第一列用语检索的id,后9列分别是与肿瘤相关的医学特征,最后一列表示肿瘤类型的数值。

(2)包含16个缺失值。

数据下载地址:Index of /ml/machine-learning-databases/breast-cancer-wisconsin (uci.edu)

3.3逻辑回归(Logistic Regression)算法实现

3.3.1逻辑回归(Logistic Regression)数据获取

pandas在线下载数据

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

data=pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data')

data.head()

3.3.2数据集特征值处理

为威斯康辛乳腺癌数据集的九列赋予相应的特征名,具体的特征名如下:

Sample code number 样本编号

Clump Thickness 肿瘤特征1

Uniformity of Cell Size 肿瘤特征2

Uniformity of Cell Shape 肿瘤特征3

Marginal Adhesion 肿瘤特征4

Single Epithelial Cell Size 肿瘤特征5

Bare Nuclei 肿瘤特征6

Bland Chromatin 肿瘤特征7

Normal Nucleoli 肿瘤特征8

Mitoses 肿瘤特征9

Class 肿瘤的种类

代码实现;

#给列名字

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增加一个names参数

data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data',names = names)

data.head()

逻辑回归(Logistic Regression)_第1张图片

3.3.3逻辑回归(Logistic Regression)预测

说明:在通过对特征值处理后对输出的预测值我们用2表示良性,4表示恶性

data.Class

3.3.4数据集缺失值处理

威斯康辛乳腺癌数据集中使用’?’替换缺失值,删除缺失值的样本时,只需要删除用?标记的地方。具体实现的代码如下:

data = data.replace(to_replace='?',value=np.nan)

data = data.dropna() #删除有np.nan的行

#特征值

x = data.iloc[:,1:10]

x.head()

#目标值

y = data['Class']

y.head()

x_train,x_test,y_train,y_test= train_test_split(x,y,test_size=0.2)

3.3.5特征工程、标准化

transform = StandardScaler()#实例化转换器 #标准化

x_train = transform.fit_transform(x_train)

x_test = transform.fit_transform(x_test)

3.4逻辑回归(Logistic Regression)机器学习建模

模型建立:estimate = LogisticRegression()#用默认的就行

训练模型:estimate.fit(x_train,y_train)#得到了模型

3.5 逻辑回归 (Logistic Regression)模型评估

estimate.score(x_train,y_train)

estimate.score(x_test,y_test)

你可能感兴趣的:(python,人工智能)