逻辑回归分析实训----乳腺癌肿瘤预测
1.邏輯回歸
邏輯回歸也稱作logistic回歸分析,是一種廣義的線性回歸分析模型,需要一個應變量 y和一個或一個以上的自變量,屬于機器學習中的監督學習。邏輯回歸是用來進行分類的。例如,我們給出一個人的 [身高,體重] 這兩個指標,然后判斷這個人是屬于”胖“還是”瘦“這一類。
2.線性回歸vs邏輯回歸
區別:
- 它們的應變量不同,線性回歸直接將ax+b作為應變量,即y=ax+b,而logistic回歸則通過函數sigmoid將ax+b對應到到(0,1),從而完成概率的估測。
- 結果(y):對于線性回歸,結果是一個標量值(可以是任意一個符合實際的數值),例如 50000,23.98 等;對于邏輯回歸,結果是表示不同類的整數,是離散的。
- 特征(x):對于線性回歸,特征都表示為一個列向量;對于涉及二維圖像的邏輯回歸,特征是一個二維矩陣,矩陣的每個元素表示圖像的像素值,每個像素值是屬于 0 到 255 之間的整數,其中 0 表示黑色,255 表示白色,其他值表示具有某些灰度陰影。
- 成本函數(成本):對于線性回歸,成本函數是表示每個預測值與其預期結果之間的聚合差異的某些函數;對于邏輯回歸,是計算每次預測的正確率或錯誤率的某些函數。
相似性:
- 邏輯回歸與線性回歸模型的形式基本上相同,都具有ax+b,其中,a,b都是待求參數。
- 訓練:線性回歸和邏輯回歸的訓練目標都是去學習權重(W)和偏置(b)值。
- 結果:線性回歸與邏輯回歸的目標都是利用學習到的權重和偏置值去預測/分類結果.
3.乳腺癌中腫瘤預測(實訓)------邏輯回歸分析
3.1? 導入需要的各種包,例如:pandas,numpy,sklearn
?3.2?定義列,給列起名字
?3.3? 導入數據,增加數據的參數值(導入時數據的路徑一定是安裝的路徑)
?3.4? 輸出列表返回的元組,獲取數據中的信息值
?3.5? 查看數據的基本情況
?3.6? ?對數據目標值進行說明
?3.7? 替換數據中的缺失值,并且刪除缺失值的樣本,再確定特征值和目標值
?3.8? 確定目標值后,對數據進行分割,建立特征工程,邏輯回歸建立模型,最后訓練模型
?3.9? 對模型進行評估,得到模型預測值
?4.代碼如下:
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
import ssl
ssl._create_default_https_contex=ssl._create_unverified_context
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=pd.read_csv(r"C:\Users\HP\Desktop\breast-cancer-wisconsin.data",names=names) ?#導入數據,給data增加一個names參數
data
data.shape ? ?#輸出列表返回的元組
data.info ? ? #獲取數據中的信息
data.describe() ?#查看數據基本情況
data.Class ? ?#目標值說明
data=data.replace(to_replace="?",value=np.NaN) ? #替換缺失值
data=data.dropna() ? #刪除缺失值的樣本
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) ?#分割數據
transform=StandardScaler() ?#特征工程(標準化)
x_train=transfrom.fit_transfrom(x_train)
x_test=transfrom.fit_transfrom(x_test)
estimate= LogisticRegression() ?#機器學習(邏輯回歸) ?建立模型
estimate.fit(x_train,y_train) ? #訓練模型
y_predict=estimate.predict(x_test) ?#模型評估
y_predict
estimate.score(x_test,y_test) ?
學號:202113430110
姓名:羅媛
總結
以上是生活随笔為你收集整理的逻辑回归分析实训----乳腺癌肿瘤预测的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Docker_数据卷容器
- 下一篇: 【无标题】2021年施工员-装饰方向-岗