根据历史女性乳腺癌患者数据集(医学指标)构建逻辑回归分类模型进行良/恶性乳腺癌肿瘤预测
详细数据见社区下载https://www.kesci.com/home/project/5eef43e2caa99b002d6e7a16
也可以在UCI机器学习网站下载
#-*- coding: utf-8 -*-
"""created on 2020/6/21
@author: wangshisuifeng
"""
from sklearn.linear_model import LogisticRegression
import pandas as pd
import numpy as np
from sklearn.metrics import mean_squared_error,classification_report
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
def log():
#加载数据集
data = pd.read_csv('E:\\Desktop\\breast-cancer-wisconsin1.csv')
#进行数据处理
data = data.replace(to_replace='?',value=np.nan)
data = data.dropna()
x_train = data[['number','height','size','avg','li','once_size','he','ransezhi','heren','yousifenlie']]
y_train = data['class']
#分隔训练集和测试集
x_train,x_test,y_train,y_test = train_test_split(x_train,y_train,train_size=0.25)
#标准化数据
std_y = StandardScaler()
x_train = std_y.fit_transform(x_train)
x_test = std_y.transform(x_test)
#利用逻辑回归预测
logi = LogisticRegression(C=1.0)
logi.fit(x_train,y_train)
print('逻辑回归系数:',np.ravel(logi.coef_))
y_logi_pre = logi.predict(x_test)
print(y_logi_pre)
#准确率
print('精确率',logi.score(x_test,y_test))
#召回率
print('召回率',classification_report(y_test,y_logi_pre,labels=[2,4],target_names=['良性','恶性']))
return None
if __name__=='__main__':
log()