python机器学习-乳腺癌细胞挖掘(三)

python机器学习-乳腺癌细胞挖掘:http://dwz.date/bwey

乳腺癌细胞和正常细胞是有显著区别的
癌细胞半径更大,形状更加不规则,凹凸不平。我们可以用科学手段来区分正常细胞和癌细胞吗?答案是可以的,通过机器学习算法,建立分类器,解决二分类问题。
乳腺癌细胞分类器建模
现在我们要用机器学习算法建立分类器,区分细胞为良性细胞或癌细胞。分类器就是解决二分类或多分类问题。
建立分类器算法很多,包括逻辑回归,xgboost,svm,神经网络等等。
今天我要介绍目前开源领域里最新的算法catboost。
catboost起源于俄罗斯搜索巨头yandex,准确率高,速度快,调参少,性价比高于xgboost
今天的CatBoost版本是第一个版本,以后将持续更新迭代。
catboost三个特点:
(1)“减少过度拟合”:这可以帮助你在训练计划中取得更好的成果。它基于一种构建模型的专有算法,这种算法与标准的梯度提升方案不同。
(2)“类别特征支持”:这将改善你的训练结果,同时允许你使用非数字因素,“而不必预先处理数据,或花费时间和精力将其转化为数字。”
(3)支持Python或R的API接口来使用CatBoost,包括公式分析和训练可视化工具。
(4)有很多机器学习库的代码质量比较差,需要做大量的调优工作,”他说,“而CatBoost只需少量调试,就可以实现良好的性能。这是一个关键性的区别

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预测准确率非常高,训练集100%,测试集97.7%

python机器学习生物信息学系列课(博主录制):http://dwz.date/b9vw
