1. 程式人生 > >使用線性分類模型從事良/惡性腫瘤預測任務

使用線性分類模型從事良/惡性腫瘤預測任務

#-*- coding: utf-8 -*-

# 匯入pandas 與 numpy工具包
import pandas as pd
import numpy as np





# 建立特徵列表
column_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'] # 使用pandas.read.csv函式從網際網路讀取指定資料 data = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data', names = column_names) # 將?替換為標準缺失值表示 data = data.replace(to_replace='?', value=np.nan) # 丟棄帶有缺失值的資料(只有一個維度有缺失)
data = data.dropna(how='any') # 輸出data的資料量和維度 print(data.shape) # 使用sklearn.cross_valitation裡的train_test_split模組用於分割資料 # 已經廢棄from sklearn.cross_validation import train_test_split from sklearn.model_selection import train_test_split # 隨機取樣25%的資料用於測試,剩下的75%用於構建訓練集合 X_train, X_test, y_train, y_test = train_test_split(data[column_names[1
:10]], data[column_names[10]], test_size=0.25, random_state=33) # 查驗訓練樣本的數量和類別分佈 print(y_train.value_counts()) # 查驗測試樣本的數量和類別分佈 print(y_test.value_counts()) # 從sklearn.prepprocessing裡匯入StandardScaler from sklearn.preprocessing import StandardScaler # 從sklearn.linear_model裡匯入LogisticRegression與SGDClassifier from sklearn.linear_model import LogisticRegression from sklearn.linear_model import SGDClassifier # 標準化資料,保證每個維度的特徵數方差為1,均值為0,使得預測結果不會被某些維度過大的特徵值而主導 ss = StandardScaler() X_train = ss.fit_transform(X_train) X_test = ss.transform(X_test) # 初始化LogisticRegression與SGDClasssfier lr = LogisticRegression() sgdc = SGDClassifier() # 呼叫LogisticRegression中的fit函式/模組用來訓練模型引數 lr.fit(X_train, y_train) # 使用訓練好的模型lr對X_test進行預測,結果儲存在變數lr_y_predict lr_y_predict = lr.predict(X_test) # 呼叫SGDClassifier中的fit函式/模組用來訓練模型引數 sgdc.fit(X_train, y_train) # 使用訓練好的模型sgdc對X_test進行預測,結果儲存在變數sgdc_y_predict中 sgdc_y_predict = sgdc.predict(X_test) # 從sklearn.metrics裡匯入classifivation_report模組 from sklearn.metrics import classification_report # 使用邏輯斯蒂迴歸模型自帶的評分函式score獲得模型在測試集上的準確性結果 print'Accuracy of LR Classifier:', lr.score(X_test, y_test) # 利用classification_report模組獲得LogisticRegression其他三個指標的結果。 print classification_report(y_test, lr_y_predict, target_names=['Benign', 'Malignant']) # 使用隨機梯度下降模型自帶的評分函式score獲得模型在測試集上的準確性結果。 print 'Accuarcy of SGD Classifier:', sgdc.score(X_test, y_test) # 利用classification_report模組獲得SGDClassifier其他三個指標的結果。 print classification_report(y_test, sgdc_y_predict, target_names=['Benign', 'Malignant'])

輸出結果:

相關推薦

使用線性分類模型從事/惡性腫瘤預測任務

#-*- coding: utf-8 -*- # 匯入pandas 與 numpy工具包 import pandas as pd import numpy as np # 建立特徵列表 column_names = ['Sample code num

使用Tensorflow自定義一個線性分類器對‘/惡性乳腺癌腫瘤’進行預測

1 Tensorflow作為一個開源框架,在深度學習與機器學習方面有著很大的應用。   對於Tensorflw就不作介紹,僅僅對其應用簡單的實現一下利用tensorflow自定義一個線性分類器對‘良/惡性乳腺癌腫瘤’進行預測2 程式碼實現及結果截圖#coding:utf-8#

線性分類模型(二):logistic迴歸模型分析

前言 上一篇文章介紹了線性判別模型,本文介紹線性生成模型——logistic迴歸模型。本文介紹logstic迴歸模型相關的知識,為了更好理解模型的決策邊界函式,本文同時分析了多元變數的協方差對概率分佈的影響。   目錄 1、logistic迴歸模型的含義 2、l

python\惡性腫瘤預測-LogisticRegression以及SGDClassifier

# -*- coding: utf-8 -*- """ Created on Fri Oct 12 16:56:56 2018 @author: fengjuan """ import pandas as pd import numpy as np #匯入matplotl

使用tensorflow 手動搭建線性分類器 對/惡性乳腺癌腫瘤進行分類

使用tensorflow  手動搭建線性分類器 對良/惡性乳腺癌腫瘤進行分類 # -*- coding:utf-8 -*- import tensorflow as tf import numpy as np import pandas as pd if __name__ == '_

線性分類模型(四)——貝葉斯觀點下的Logistic迴歸

拉普拉斯近似 目標:因為待近似的分佈p(z)p(\pmb{z})p(zzz)不是高斯分佈,故尋找一個高斯近似q(z)q(\pmb{z})q(zzz),它的中心位於p(z)p(\pmb{z})p(zzz)的眾數的位置。 思路:將待近似的分佈p(z)p(\pmb{

利用線性迴歸模型進行kaggle房價預測

最近剛學線性迴歸的一些基礎知識,就想利用kaggle中的一個入門級比賽 House Prices: Advanced Regression Techniques進行一下鞏固,發現建模之前的資料清洗與特徵選擇非常重要。 1. 資料清洗 1.1 匯入資料    將tra

聽課筆記(第十一講): 線性分類模型 (臺大機器學習)

在上一講中,我們瞭解到線性迴歸和邏輯斯蒂迴歸一定程度上都可以用於線性二值分類,因為它們對應的錯誤衡量(square error, cross-entropy) 都是“0/1 error” 的上界。1, 三個模型的比較1.1 分析Error Function本質上講,線性分類

使用感知機進行二類分類線性分類模型測試(minst資料集)

遂手動實現跑了一遍,再次記錄過程中遇到的一些問題。 首先在anaconda環境下配置所需要的資料分析及圖片處理包: pandas(python的資料分析模組 Powerful python data analysis toolkit) num

python實現感知機線性分類模型

前言 感知器是分類的線性分類模型,其中輸入為例項的特徵向量,輸出為例項的類別,取+1或-1的值作為正類或負類。感知器對應於輸入空

使用tensorflow自定義線性分類預測 /惡性腫瘤

import tensorflow as tf import numpy as np import pandas as pd train = pd.read_csv('../Datasets/Breast-Cancer/breast-cancer-train.csv')

教程 | Kaggle網站流量預測任務第一名解決方案:從模型到代碼詳解時序預測

abs rdf reg lock 集成 deep 月份 current 均值 https://mp.weixin.qq.com/s/JwRXBNmXBaQM2GK6BDRqMw 選自GitHub 作者:Artur Suilin 機器之心編譯 參與:蔣思源、路雪、黃小天

線性分類器實現預測鳶尾花的種類(python)

rom dir Coding and func shape 交叉驗證 pri state 這是個人學習時跑的代碼,結果就不貼了,有需要的可以自己運行,僅供參考,有不知道的可以私下交流,有問題也可以聯系我。當然了我也只能提供一點建議,畢竟我也只是初學者 第一個頁面 # -*-

skleran 學習路徑一 線性迴歸模型預測

使用sklearn 裡面的datasets 內建資料集波士頓的房價 來測試這個模型 首先匯入 from sklearn import datasets loaded_data = datasets.load_boston()#波士頓房價預測 data_x =

線性迴歸模型預測房價

本文使用sklearn 中自帶的波士頓房價資料集來訓練模型,然後利用模型來預測房價。這份收據中共收集了13個特徵。 1.輸入特徵 import matplotlib.pyplot as plt import numpy as np from sklearn.da

(二)邏輯迴歸的擴充套件——多線性分類Softmax Regression演算法模型(附程式碼)

前言 在上一篇邏輯迴歸(https://blog.csdn.net/u014571489/article/details/83387681)中已經講到了為什麼有sigmoid啟用函式、極大似然估計法和梯度下降法等。 當邏輯迴歸問題被擴充套件到多線性分類問題時,第一步要解決的還是計算概率的問題

使用LogisticRegression和SGDClassifier對/惡性腫瘤進行分類,並計算出準確率召回率和F1的值

# -*- coding: utf-8 -*- """ Created on Tue Oct 24 10:08:40 2017 @author: liuyajun """ import pandas as pd import numpy as np from sklearn

機器學習之線性分類器(Linear Classifiers)——腫瘤預測例項

線性分類器:一種假設特徵與分類結果存線上性關係的模型。該模型通過累加計算每個維度的特徵與各自權重的乘積來幫助決策。 # 匯入pandas與numpy工具包。 import pandas as pd import numpy as np # 建立特徵列表。 column_n

【Kaggle筆記】/惡性乳腺腫瘤資料(線性分類

系統環境 資料集 程式碼 # -*- coding: utf-8 -*- """ 良/惡性乳腺腫瘤資料線性分類 模型對比: LogisticRegression (計算時間長,模型效能略高) SGDClassifier

機器學習(六)分類模型--線性判別法、距離判別法、貝葉斯分類

機器學習(六)分類模型--線性判別法、距離判別法、貝葉斯分類器   首先我們瞭解常見的分類模型和演算法有哪些   線性判別法 簡單來說就是用一些規定來尋找某一條直線,用直線劃分學習集,然後根據待測點在直線的哪一邊決定它的分類 如圖,假如紅色這條線是找