python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制,包含catboost实战代码)
网易云观看地址
乳腺癌细胞和正常细胞是有显著区别的
癌细胞半径更大,形状更加不规则,凹凸不平。我们可以用科学手段来区分正常细胞和癌细胞吗?答案是可以的,通过机器学习算法,建立分类器,解决二分类问题。
乳腺癌细胞分类器建模
现在我们要用机器学习算法建立分类器,区分细胞为良性细胞或癌细胞。分类器就是解决二分类或多分类问题。
建立分类器算法很多,包括逻辑回归,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 @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%
https://study.163.com/provider/400000000398149/index.htm?share=2&shareId=400000000398149( 欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章)
机器学习项目合作QQ:231469242