2.1.1.1線性分類器

2.1監(jiān)督學(xué)習(xí)經(jīng)典模型
監(jiān)督學(xué)習(xí):


2.1.1分類學(xué)習(xí)
二分類:從兩個類別中選擇一個作為預(yù)測結(jié)果悲幅。
多類分類:多于兩個類別中選擇一個套鹅。
多標(biāo)簽分類:一個樣本是否同時屬于多個不同類別站蝠。

2.1.1.1線性分類器(linear classifier)
模型介紹:是一種假設(shè)特征與分類結(jié)果存在線性關(guān)系的模型。這個模型通過累加計算每個維度的特征與各自權(quán)重的乘積來幫助類別決策卓鹿。
我們所要處理的最簡單的二分類問題數(shù)據(jù)f屬于{0,1}菱魔;因此需要一個函數(shù)把原先的f屬于R映射到{0,1}。于是我們想到了邏輯斯蒂函數(shù)吟孙。



我們可以觀察到該模型如何處理一個待分類的特征向量:如果z=0澜倦,那么g=0.5;若z<0則g<0.5杰妓,這個特征向量被判別為一類藻治;反之,若z>0稚失,則g>0.5栋艳,其被歸為另外一類。

數(shù)據(jù)描述

Sample code number:樣本編號
Clump Thickness:細(xì)胞厚度
Uniformity of Cell Size:細(xì)胞大小的均勻度
Uniformity of Cell Shape:細(xì)胞形狀的均勻度
Marginal Adhesion:細(xì)胞邊緣的黏著度
Single Epithelial Cell Size:單一的上皮細(xì)胞的大小
Bare Nuclei:裸露細(xì)胞核
Bland Chromatin:染色質(zhì)
Normal Nucleoli:正常細(xì)胞核
Mitoses:有絲分裂
Class:類型句各。2-良性吸占,4-惡性

數(shù)據(jù):共699條,良性腫瘤458條(65.5%)凿宾,惡性腫瘤241條(34.5%)矾屯,16條缺失值(?標(biāo)出)初厚。

數(shù)據(jù)預(yù)處理
import pandas as pd
import numpy as np
#創(chuàng)建特征列表
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函數(shù)從互聯(lián)網(wǎng)讀取指定函數(shù)
data=pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/breast-cancer-wisconsin.data',names=column_names)
#將件蚕?替換為標(biāo)準(zhǔn)缺失值表示
data=data.replace(to_replace='?',value=np.nan)
#丟棄帶有缺失值的數(shù)據(jù)(只要有一個維度有缺失)
data=data.dropna(how='any')
#輸出data的數(shù)據(jù)量和維度
data.shape

(683, 11)


訓(xùn)練、測試數(shù)據(jù)
#使用sklearn.cross_valiation里的train_test_split模塊用于分割數(shù)據(jù)
from sklearn.cross_validation import train_test_split
#隨機(jī)采樣25%的數(shù)據(jù)用于測試产禾,剩下的75%用于構(gòu)建訓(xùn)練集合,設(shè)置 random_state 可以讓每次劃分訓(xùn)練集和驗(yàn)證集的時候都是完全一樣的
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)
#查驗(yàn)訓(xùn)練樣本的數(shù)量和類別分布
y_train.value_counts()

2 344
4 168
Name: Class, dtype: int64

#查驗(yàn)測試樣本的數(shù)量和類別分布排作,683*0.25=171
y_test.value_counts()

2 100
4 71
Name: Class, dtype: int64

預(yù)測任務(wù)
from sklearn.preprocessing import StandardScaler
#標(biāo)準(zhǔn)化數(shù)據(jù),保證每個維度的特征數(shù)據(jù)方差為1亚情,均值為0.使得預(yù)測結(jié)果不會被某些維度過大的特征值而主導(dǎo)
ss=StandardScaler()
X_train=ss.fit_transform(X_train)
X_test=ss.transform(X_test)

LogisticRegression預(yù)測任務(wù)

from sklearn.linear_model import LogisticRegression
#初始化LogisticRregression
lr=LogisticRegression()
#調(diào)用LogisticRegression中的fit函數(shù)/模塊用來訓(xùn)練模型參數(shù)
lr.fit(X_train,y_train)
#使用訓(xùn)練好的模型lr對X_test進(jìn)行預(yù)測妄痪,結(jié)果儲存在變量lr_y_predict中。
lr_y_predict=lr.predict(X_test)

SGDClassifier預(yù)測任務(wù)

from sklearn.linear_model import SGDClassifier
#初始化SGDClassifier
sgdc=SGDClassifier()
#調(diào)用SGDClassifier中的fit函數(shù)/模塊用來訓(xùn)練模型參數(shù)
sgdc.fit(X_train,y_train)
#使用訓(xùn)練好的模型lr對X_test進(jìn)行預(yù)測楞件,結(jié)果儲存在變量sgdc_y_predict中衫生。
sgdc_y_predict=sgdc.predict(X_test)
性能測評

定義:
惡性腫瘤為陽性positive
良性腫瘤為陰性negative
真陽性true positive
假陽性false positive
真陰性true negative
假陰性false negative

評價指標(biāo):
精確性悦冀,對于給定的測試數(shù)據(jù)集况既,分類器正確分類的樣本數(shù)與總樣本數(shù)之比。
accuracy = (TP + TN) / (TP + FP + TN + FN)
精確率笑撞,所有"正確被檢索的item(TP)"占所有"實(shí)際被檢索到的(TP+FP)"的比例黄伊。
precision = TP / (TP + FP)
召回率泪酱,所有"正確被檢索的item(TP)"占所有"應(yīng)該檢索到的item(TP+FN)"的比例。
recall = TP / (TP + FN)
F1指標(biāo),精確值和召回率的調(diào)和均值
F1 Score = 2P*R/(P+R)西篓,其中P和R分別為 precision 和 recall

預(yù)測任務(wù)的性能分析
from sklearn.metrics import classification_report
使用邏輯斯蒂回歸模型自帶的評分函數(shù)score獲得模型在測試集上的準(zhǔn)確性結(jié)果
print('Accuracy of LR Classifier:',lr.score(X_test,y_test))

Accuracy of LR Classifier: 0.988304093567

#利用classification_report模塊獲得LogisticRegression其他三個指標(biāo)的結(jié)果
print(classification_report(y_test,lr_y_predict,target_names=['Benign','Malignant']))
#使用隨機(jī)梯度下降模型自帶的評分函數(shù)score獲得模型在測試集上的準(zhǔn)確性結(jié)果
print('Accuracy of LR Classifier:',sgdc.score(X_test,y_test))

Accuracy of LR Classifier: 0.964912280702

#利用classification_report模塊獲得SGDClassifier其他三個指標(biāo)的結(jié)果
print(classification_report(y_test,sgdc_y_predict,target_names=['Benign','Malignant']))

question:最后兩步的結(jié)果每次都不一樣愈腾??岂津?

特點(diǎn)分析

線性分類器可以說是最基本和最常用的機(jī)器學(xué)習(xí)模型虱黄。盡管受限于數(shù)據(jù)特征與分類目標(biāo)之間的線性假設(shè),我們?nèi)匀豢梢栽诳茖W(xué)研究與工程實(shí)踐中把線性分類器的表現(xiàn)性能作為基準(zhǔn)吮成。
LogisticRegression:對參數(shù)的計算采用精確解析的方式橱乱,計算時間長但是模型性能高。
SGDClassifier:采用隨機(jī)梯度上升算法估計模型參數(shù)粱甫,計算時間短但是產(chǎn)出的模型性能低泳叠。適用于對于訓(xùn)練數(shù)據(jù)規(guī)模在10萬量級以上的數(shù)據(jù),考慮到時間的耗用茶宵,筆者更加推薦使用隨機(jī)梯度算法對模型參數(shù)進(jìn)行估計危纫。

參考資料https://wenku.baidu.com/view/fe7e334d482fb4daa58d4b97.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市乌庶,隨后出現(xiàn)的幾起案子种蝶,更是在濱河造成了極大的恐慌,老刑警劉巖瞒大,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件螃征,死亡現(xiàn)場離奇詭異,居然都是意外死亡透敌,警方通過查閱死者的電腦和手機(jī)盯滚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酗电,“玉大人魄藕,你說我怎么就攤上這事∧焓酰” “怎么了背率?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長荷荤。 經(jīng)常有香客問我退渗,道長移稳,這世上最難降的妖魔是什么蕴纳? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮个粱,結(jié)果婚禮上古毛,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好稻薇,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布嫂冻。 她就那樣靜靜地躺著,像睡著了一般塞椎。 火紅的嫁衣襯著肌膚如雪桨仿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天案狠,我揣著相機(jī)與錄音服傍,去河邊找鬼。 笑死骂铁,一個胖子當(dāng)著我的面吹牛吹零,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播拉庵,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼灿椅,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了钞支?” 一聲冷哼從身側(cè)響起茫蛹,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎伸辟,沒想到半個月后麻惶,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡信夫,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年窃蹋,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片静稻。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡警没,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出振湾,到底是詐尸還是另有隱情杀迹,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布押搪,位于F島的核電站树酪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏大州。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一滥朱、第九天 我趴在偏房一處隱蔽的房頂上張望力试。 院中可真熱鬧徙邻,春花似錦、人聲如沸畸裳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽怖糊。三九已至民鼓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蓬抄,已是汗流浹背丰嘉。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工饮亏, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人阅爽。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓路幸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親付翁。 傳聞我的和親對象是個殘疾皇子砰识,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容