python機(jī)器學(xué)習(xí)-乳腺癌細(xì)胞挖掘(三)

python機(jī)器學(xué)習(xí)-乳腺癌細(xì)胞挖掘:http://dwz.date/bwey

乳腺癌細(xì)胞和正常細(xì)胞是有顯著區(qū)別的
癌細(xì)胞半徑更大,形狀更加不規(guī)則,凹凸不平。我們可以用科學(xué)手段來區(qū)分正常細(xì)胞和癌細(xì)胞嗎?答案是可以的,通過機(jī)器學(xué)習(xí)算法,建立分類器,解決二分類問題。
乳腺癌細(xì)胞分類器建模
現(xiàn)在我們要用機(jī)器學(xué)習(xí)算法建立分類器,區(qū)分細(xì)胞為良性細(xì)胞或癌細(xì)胞。分類器就是解決二分類或多分類問題。
建立分類器算法很多,包括邏輯回歸,xgboost,svm,神經(jīng)網(wǎng)絡(luò)等等。
今天我要介紹目前開源領(lǐng)域里最新的算法catboost。
catboost起源于俄羅斯搜索巨頭yandex,準(zhǔn)確率高,速度快,調(diào)參少,性價比高于xgboost
今天的CatBoost版本是第一個版本,以后將持續(xù)更新迭代。
catboost三個特點:
(1)“減少過度擬合”:這可以幫助你在訓(xùn)練計劃中取得更好的成果。它基于一種構(gòu)建模型的專有算法,這種算法與標(biāo)準(zhǔn)的梯度提升方案不同。
(2)“類別特征支持”:這將改善你的訓(xùn)練結(jié)果,同時允許你使用非數(shù)字因素,“而不必預(yù)先處理數(shù)據(jù),或花費時間和精力將其轉(zhuǎn)化為數(shù)字?!?/p>
(3)支持Python或R的API接口來使用CatBoost,包括公式分析和訓(xùn)練可視化工具。
(4)有很多機(jī)器學(xué)習(xí)庫的代碼質(zhì)量比較差,需要做大量的調(diào)優(yōu)工作,”他說,“而CatBoost只需少量調(diào)試,就可以實現(xiàn)良好的性能。這是一個關(guān)鍵性的區(qū)別

catboost建立乳腺癌分類器代碼
# -*- coding: utf-8 -*-
"""
Created on Thu Oct? 4 21:07:32 2018
?微信公眾號:pythonEducation
@author: 231469242@qq.com
"""
?
from
?sklearn.model_selection?
import
?train_test_split
import
?catboost as cb
from
?sklearn.datasets?
import
?load_breast_cancer
cancer
=
load_breast_cancer()
X, y?
=
?cancer.data,cancer.target
train_x, test_x, y_train, y_test
=
train_test_split(X,y,test_size
=
0.3
,random_state
=
0
)
cb?
=
?cb.CatBoostClassifier()
cb.fit(train_x, y_train)
print
(
"accuracy on the training subset:{:.3f}"
.
format
(cb.score(train_x,y_train)))
print
(
"accuracy on the test subset:{:.3f}"
.
format
(cb.score(test_x,y_test)))
大家可以看到catboost預(yù)測準(zhǔn)確率非常高,訓(xùn)練集100%,測試集97.7%

python機(jī)器學(xué)習(xí)生物信息學(xué)系列課(博主錄制):http://dwz.date/b9vw
