邏輯回歸預測癌癥分類
下面是用邏輯回歸對癌癥分類預測程序:
#1獲取資料 讀取的時候加上names #2資料處理 處理缺失值 #3資料集劃分 #4特征工程 標準化 #5邏輯回歸預估器 #6模型評估
import pandas as pd
import numpy as np
#1讀取資料
column_name=['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("breast-cancer-wisconsin.data",names=column_name)
data.head()
#class是標簽 2代表良性 4代表惡性

#2處理缺失值
#將里面的問號替換成nan
data=data.replace(to_replace="?",value=np.nan)
#將里面的缺失樣本洗掉
data.dropna(inplace=True)
data.isnull().any()#查看是否還有缺失值

#3劃分資料集
from sklearn.model_selection import train_test_split
#先篩選特征值和目標值
x=data.iloc[:,1:-1]#data里面所有的行,第一列到倒數第二列
y=data["Class"]#data里面class那一列
x_train,x_test,y_train,y_test=train_test_split(x,y)#這樣就劃分好了資料集
#4資料集標準化
from sklearn.preprocessing import StandardScaler
transfer=StandardScaler()
x_train=transfer.fit_transform(x_train)
x_test=transfer.transform(x_test)
#5模型訓練
from sklearn.linear_model import LogisticRegression
estimator=LogisticRegression()
estimator.fit(x_train,y_train)
#邏輯回歸的模型引數:回歸系數和偏置
print("模型的回歸系數:{}".format(estimator.coef_))
print("模型的回歸偏置:{}".format(estimator.intercept_))

#查看精確率、召回率、F1-score
from sklearn.metrics import classification_report
print(classification_report(y_test,estimator.predict(x_test),labels=[2,4],target_names=["良性","惡心"]))

#計算AUC指標
from sklearn.metrics import roc_auc_score
y_true=np.where(y_test>3,1,0)
print("AUC的值:{}".format(roc_auc_score(y_true,estimator.predict(x_test))))
AUC的值:0.9956140350877193
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/139221.html
標籤:其他
