使用TPOT自动选择scikit-learn机器学习模型和参数
声明:原文地址:使用TPOT自动选择scikit-learn机器学习模型和参数,此文是本人学习原文的结果,略有改动。侵删。
在上一篇博客中我们在anacoda中安装了tpot: anacoda下安装TPOT库。有需要的可以去看一下。
正文:
scikit-learn是抽象层次很高的机器学习库,它提供了许多机器学习模型,而每个模型还有很多参数。那么问题来了,我们该怎么选择某个问题最适合使用哪个模型呢?
当然,我们一个一个尝试,或使用TPOT自动化这个过程。TPOT是基于遗传算法自动选择、优化机器学习模型和参数的工具。遗传算法常来解决优化和搜索问题,本博客就使用例子介绍一下TPOT的使用。
数据集地址:https://archive.ics.uci.edu/ml/machine-learning-databases/breast-cancer-wisconsin/
使用的数据集:breast-cancer-wisconsin.data
打开以后是这个样子:
这个东西没有列名,很难受。我直接把它全选复制到txt中,然后直接改文件后缀为csv,把文件转换为csv格式。我们给他加上
属性名如下:
好了,开始写程序:
#-*- coding: UTF-8 -*-
'''
使用TPOT自动选择scikit-learn机器学习模型和参数
'''
import numpy as np
import pandas as pd
from sklearn import model_selection
from sklearn.ensemble import RandomForestClassifier
from tpot import TPOTClassifierinputfile='G:\PythonCode\PycharmProjects\data\\breast-cancer-wisconsin.data.csv'def main():df=pd.read_csv(inputfile)#print(df.head())df.replace('?',np.nan,inplace=True)df.dropna(inplace=True)df.drop(['id'],1,inplace=True)#print(df.head())X=np.array(df.drop(['Class'],1))Y=np.array(df['Class'])x_train,x_test,y_train,y_test=model_selection.train_test_split(X,Y,test_size=0.2)tpot=TPOTClassifier(generations=6,verbosity=2)tpot.fit(x_train,y_train)tpot.score(x_test,y_test)tpot.export('pipeline.py')if __name__ == "__main__":main()
程序运行结果如下:
Best pipeline: RandomForestClassifier(input_matrix, bootstrap=True, criterion=entropy, max_features=0.05, min_samples_leaf=3, min_samples_split=16, n_estimators=100)
可以看到我们运行的最优结果是随机森林。
下面我们跑一下随机森林:
#-*- coding: UTF-8 -*-
'''
使用TPOT自动选择scikit-learn机器学习模型和参数
'''
import numpy as np
import pandas as pd
from sklearn import model_selection
from sklearn.ensemble import RandomForestClassifier
from tpot import TPOTClassifierinputfile='G:\PythonCode\PycharmProjects\data\\breast-cancer-wisconsin.data.csv'def main():df=pd.read_csv(inputfile)#print(df.head())df.replace('?',np.nan,inplace=True)df.dropna(inplace=True)df.drop(['id'],1,inplace=True)#print(df.head())X=np.array(df.drop(['Class'],1))Y=np.array(df['Class'])x_train,x_test,y_train,y_test=model_selection.train_test_split(X,Y,test_size=0.2)# tpot=TPOTClassifier(generations=6,verbosity=2)# tpot.fit(x_train,y_train)# tpot.score(x_test,y_test)# tpot.export('pipeline.py')rfc=RandomForestClassifier(bootstrap=True, criterion='entropy', max_features=0.05, min_samples_leaf=3, min_samples_split=16, n_estimators=100)rfc.fit(x_train,y_train)accuracy=rfc.score(x_test,y_test)print("accuracy:%s"%accuracy)if __name__ == "__main__":main()
程序运行结果:
可以看出这个tpot还是挺有用的,可以直接输出模型和参数,比较省事儿。
参考:
一个自动化解决数据科学问题的python工具
tpot示例
tpot的GitHub地址
使用TPOT自动选择scikit-learn机器学习模型和参数相关推荐
- TPOT自动选择机器学习模型和参数--回归示例
前两篇博客写了在anacoda下安装tpot库和使用tpot做分类的例子,这篇是写做回归的例子 anacoda下安装tpot库 使用TPOT自动选择scikit-learn机器学习模型和参数--分类示 ...
- 在实际项目中,如何选择合适的机器学习模型?
https://blog.csdn.net/gitchat/article/details/78913235 本文来自作者 chen_h 在 GitChat 上分享 「在实际项目中,如何选择合适的机器 ...
- 面对数据缺失,如何选择合适的机器学习模型?
作者:阿萨姆 普华永道 | 数据科学家 量子位 已获授权编辑发布 转载请联系原作者 有些小伙伴在实际使用中发现xgboost可以自动处理缺失值,而有些模型不可以.我想先从两个角度解答这个困惑: 工具包 ...
- SVM原理详细图文教程来了!一行代码自动选择核函数,还有模型实用工具
公众号关注 "视学算法" 设为 "星标",DLCV消息即可送达! 贾浩楠 发自 凹非寺 转自 | 量子位 SVM?老分类算法了,轻松拿下. 然而,每一次老板让你 ...
- 5分钟掌握手动优化机器学习模型超参数
机器学习算法具有超参数,可让这些算法针对特定的数据集进行量身定制. 尽管通常可以理解超参数的影响,但是可能不知道它们对数据集的特定影响以及它们在学习期间的交互作用.因此,作为机器学习项目的一部分,调整 ...
- 从RMSE和MSE到更多选择:探索机器学习模型性能指标
目录 前言 一.RMSE(Root Mean Square Error)均方根误差 二.MSE(Mean Square Error)均方误差 三.关于RMSE和MSE的对比 四.其他衡量性能的指标 4 ...
- [机器学习] 模型评价参数,准确率,召回率,F1-score
很久很久以前,我还是有个建筑梦的大二少年,有一天,讲图的老师看了眼我的设计图,说:"我觉得你这个设计做得很紧张",当时我就崩溃,对紧张不紧张这样的评价标准理解无能.多年后我终于明白 ...
- 机器学习与Scikit Learn学习库
摘要: 本文介绍机器学习相关的学习库Scikit Learn,包含其安装及具体识别手写体数字案例,适合机器学习初学者入门Scikit Learn. 在我科研的时候,机器学习(ML)是计算机科学领域中最 ...
- 谷歌正式开源Model Search!自动优化并识别AI模型,最佳模版唾手可得
点击上方,选择星标或置顶,不定期资源大放送! 阅读大概需要8分钟 Follow小博主,每天更新前沿干货 Model Search:查找最佳机器学习模型的开源平台 2 月 19 日,谷歌 宣布 发布 ...
最新文章
- 刷过一题之黑魔法师之门
- 企业该如何实现数字化转型?
- react-router 从 v2/v3 to v4 迁移(翻译)
- CodeForces - 1090D Similar Arrays(构造+思维)
- c语言中合法转义字符,判断c语言合法转义字符
- Python学习笔记之异常
- intellij idea 好用的快捷键(mac版)
- 【英语学习】【Daily English】U08 Dating L01 She is the one for me.
- 95-10-130-启动-TransactionCoordinator
- layout文件夹中activity_main.xml与fragment_main.xml文件的处理记录
- 深度学习的最新研究进展(二)
- 并注册烧写钩子 获取启动介质类型_PyTorch中对张量登记注册反向传播的钩子函数,并展示调用顺序...
- 路由器连接宽带(成功上网步骤方法)
- unity, 不要用TextMesh,用图片代替
- erlang 变量存储在哪里_[Erlang开发之路]十九、用ets和dets储存数据
- ramda 函数 list
- fastlane php,fastlane安装与初体验
- 又是一年金九银十!docker搭建ssr
- CentOs6.5 详细安装步骤
- input()函数的使用方法