简单的使用

    >>> import autosklearn.classification>>> cls = autosklearn.classification.AutoSklearnClassifier()>>> cls.fit(X_train, y_train)>>> predictions = cls.predict(X_test)

该例子来自于官网首页.
直接调用autosklearn自动分类器即可使用,但是其他参数会直接选择默认参数.autosklearn与sklearn的训练fit与predict参数是极其相似的,但是不懂的地方在于autosklearn的fit方法,训练的是一堆的机器学习算法,以及数据预处理算法,预测predict同样的也是被选出来的最佳模型的预测结果.

fit()方法默认的总是时间为time_left_for_this_task=3600, 每个算法的自动调优时间为per_run_time_limit=360,官方建议的时间为24个小时,即time_left_for_this_task=86400,每个模型的计算时间为一个小时,即为:per_run_time_limit=3600.

注意:在实际的测试中autosklearn想要获得不错的最终运算效果,确实需要话费大量的时间,如果时间仅仅是几个小时的话,很有可能它的最终结果要低于手动调优的结果,你可以使用限制算法选择来加快计算速度.虽然一般而言autosklearn的在足够的运算时间后,能够获取高于手动调优的结果,但是我想你很多时候还是需要其他方式比如sklearn自带的网格搜索或者随机搜索,亦或是hyperopt这样的调参神器.

限制搜索域

例子:

    automl = autosklearn.classification.AutoSklearnClassifier(time_left_for_this_task=120, per_run_time_limit=120,include_estimators=["random_forest", ], exclude_estimators=None,include_preprocessors=["no_preprocessing", ], exclude_preprocessors=None)

其中参数include_estimators,要搜索的方法,exclude_estimators:为不搜索的方法.与参数include_estimators不兼容
include_preprocessors,可以参考手册中的内容

预处理在 auto-sklearn中共 分为数据预处理和 特征预处理功能两个功能。 数据预处理包括一个对分类特征的独热编码,对缺失值的处理,以及对特征和样本的归一化处理,这些步骤目前是无法关闭的.特征预处理则是一个单一的transformer(sklearn中对特征处理算法的称呼与机器学习算法 估计器estimator相对应),其实现了特征选择与将特征转换到不同空间(PCA).如前面的代码所示,这可以通过 include_preprocessors=[“no_preprocessing”, ]来关闭.

exclude_preprocessors作用与exclude_estimators相似,含义就是不使用的预处理方式.与include_preprocessors不兼容

保存运算数据以及模型

保存运算数据

由之前的例子我们可知,autosklearn在运算会产生两个文件夹,其中保存着运行的文件,而且这两个文件的存储位置有我们设定,但是因为在运算完之后这两个文件夹默认就会被删除,所以假如我们想要看到这两个文件夹中的文件,我们需要对我们的参数进行设置:

    # 第一个例子保存数据automl = autosklearn.classification.AutoSklearnClassifier(time_left_for_this_task=120, per_run_time_limit=120,tmp_folder='/home/fonttian/Data/Auto-sklearn/tmp/example_output_example_tmp',output_folder='/home/fonttian/Data/Auto-sklearn/tmp/example_output_example_out',delete_tmp_folder_after_terminate=False, delete_output_folder_after_terminate=False)

如上图所示,必须设置两个文件夹的位置,然后设置,delete_tmp_folder_after_terminate=False, delete_output_folder_after_terminate=False两个参数为False,这两个参数的作用是设置两个对应文件在运算完毕后删除

在以上参数的情况下,你还可以设置SMAC共享模型,参数为shared_mode=True,

保存模型

根据官网首页的说法,模型的持久化方式与sklearn相似.我们确实可以采取相似的办法进行处理.

    # 第二个例子:存储模型,并加载import pickles = pickle.dumps(automl)with open('example_output_pickle.pkl', 'wb') as f:f.write(s)with open('example_output_pickle.pkl', 'rb') as f:s2 = f.read()clf = pickle.loads(s2)predictions = clf.predict(X_test)print("Accuracy score", sklearn.metrics.accuracy_score(y_test, predictions))

或者使用joblib进行模型的存储与加载,两者效果差距不大,但是似乎joblib更好一些,但是有一点是同样的就是随着版本的改变同一个pkl文件不一定能够被不同的版本加载并使用:

    # 第三个例子:joblib 存储模型并加载from sklearn.externals import joblibjoblib.dump(automl, 'example_output_joblib.pkl')clf = joblib.load('example_output_joblib.pkl')

评价函数其其他内容请见另一篇笔记

防止过拟合

防止过拟合的参数为resampling_strategy 与 resampling_strategy_arguments

前者是字符串属性的参数,可选

  • ‘holdout’:分裂数据集为train:test,默认为0.67,即train:test = 0.67:0.33
  • ‘holdout-iterative-fit’: 分裂方式与上面相同,但是在可能的情况下谁使用迭代匹配
  • ‘cv’:进行交叉验证

第二个参数,则是对前一个参数进行设置的参数,其输入类型为dict,范围:
‘holdout’: {‘train_size’: float} * ‘holdout-iterative-fit’: {‘train_size’: float} * ‘cv’: {‘folds’: int}

除此之外,如果使用前面的两个参数的话,在 fit 完毕,选择出最佳模型之后,还需要 refit 一次,这样原来的模型才能根据新的数据进行调整,然后才能进行预测,直接使用 refit 命令无法进行预测,而只是用fit命令,不适用 refit 命令也会报下面的错错,:

    'strategy %s, please call refit().' % self._resampling_strategy)
NotImplementedError: Predict is currently not implemented for resampling strategy cv, please call refit().

中文翻译链接

  • 官网首页
  • AutoSklearn手册

auto-sklearn案例解析一相关推荐

  1. auto-sklearn案例解析二

    度量函数-metrics auto-sklearn的度量函数是对sklearn度量函数的封装,我们即可以使用autosklearn已经封装好的metrics函数,也可以使用autosklearn的me ...

  2. 【许晓笛】 EOS 智能合约案例解析(2)

    详解 EOS 智能合约的 cpp 文件 之前的文章介绍了 eosio.token 智能合约的 hpp 文件,这次向大家介绍 eosio.token.cpp 文件,cpp 文件即 C++ 代码文件,智能 ...

  3. 【许晓笛】EOS 智能合约案例解析(2)

    详解 EOS 智能合约的 cpp 文件 之前的文章介绍了 eosio.token 智能合约的 hpp 文件,这次向大家介绍 eosio.token.cpp 文件,cpp 文件即 C++ 代码文件,智能 ...

  4. CSS ——关于css中变形效果的案例解析

    文章目录 前言 一.案例效果图 二.实现过程 1.HTML结构 2.CSS样式 总结 前言 本文主要介绍的是有关CSS中变形效果的案例解析,关于变形.动画等知识点的汇总在上一篇文章中有说过,欢迎感兴趣 ...

  5. 机器学习 学习曲线 Python实现学习曲线及案例解析

    机器学习 学习曲线 Python实现学习曲线及案例解析 学习曲线 如果数据集的大小为 mmm,则通过下面的流程即可画出学习曲线: 把数据集分成训练数据集和交叉验证数据集. 取训练数据集的 20%20\ ...

  6. 《用于物联网的Arduino项目开发:实用案例解析》—— 3.4 小结

    本节书摘来自华章出版社<用于物联网的Arduino项目开发:实用案例解析>一 书中的第3章,第3.4节,作者[美]安德尔·杰韦德(Adeel Javed),更多章节内容可以访问云栖社区&q ...

  7. 【许晓笛】 EOS智能合约案例解析(1)

    详解 EOS 智能合约的 hpp 文件 为了帮助大家熟悉 EOS 智能合约,EOS 官方提供了一个代币(资产)智能合约 Demo -- eosio.token.eosio.token 智能合约目前还不 ...

  8. 福利继续:赠书《Spring Cloud微服务-全栈技术与案例解析》

    <Spring Cloud微服务-全栈技术与案例解析> 在互联网时代,互联网产品的最大特点就是需要快速发布新功能,支持高并发和大数据.传统的架构已经慢慢不能支撑互联网业务的发展,这时候微服 ...

  9. 转盘抽奖php,使用PHP实现转盘抽奖算法案例解析

    这次给大家带来使用PHP实现转盘抽奖算法案例解析,使用PHP实现转盘抽奖算法的注意事项有哪些,下面就是实战案例,一起来看一下. 流程: 1.拼装奖项数组 2.计算概率 3.返回中奖情况 代码如下: 中 ...

  10. Database之SQL:SQL之over partition by开窗函数的简介、使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略

    Database之SQL:SQL之over partition by开窗函数的简介.使用方法(求各班级内各自排名/求各班级内第一名/求各班级内分数递增和等案例解析)之详细攻略 目录 over part ...

最新文章

  1. yii2 模型中set_Day184:人脸识别中open-set与close-set
  2. Linux命令:MySQL系列之十--MySQL用户和权限管理,mysql管理员密码重置
  3. 如何用python创建一个下载网站-如何写一个python脚本下载文件??
  4. 重温强化学习之无模型学习方法:时间差分方法
  5. 写一个脚本,判断下如果是阴历7月7日,在服务器上广播“七夕情人节快乐!”...
  6. mysql数据库项目化教程郑小蓉_MySQL数据库项目化教程(高等职业教育“十三五”规划教材(软件技术专业))...
  7. HTML+CSS+JS实现 ❤️创意时间轮盘时钟特效❤️
  8. 【4】搭建Docker私服harbor
  9. 调整地面材质_家用浴室柜台面什么材质好?Pvc和大理石选哪个合适?
  10. HDU-基础搜索总结
  11. 月收入不足三千的人,每月的开销都是怎样的?
  12. jdbc连接数据库步骤oracle,jdbc连接oracle数据库的步骤
  13. 计算机人工智能领域英文文献,人工智能 英文文献译文
  14. 信息计算机课评课,关于信息技术的评课稿
  15. 微型计算机内存容量大小一般是指什么的容量,通常说的计算机内存大小指的是什么?...
  16. RHEL 5 x86-64 无限制全速下载
  17. “(CRON) info (No MTA installed, discarding output)”
  18. C++语言入门3(定义整数与整数输入)
  19. 商业数据分析的典型方法
  20. EtherCAT学习笔记:EEPROM存储内容结构(从站配置信息接口SII)

热门文章

  1. Windows 下直接运行 Linux的Live CD版的方法
  2. R语言编程艺术#01#数据类型向量(vector)
  3. kafka comsumer
  4. Spring Cloud 微服务入门(二)--Spring Cloud 架构
  5. 使用@functools.wraps的理由
  6. phpcms v9调用指定栏目名称、url、图片、描述等
  7. 深入学习微框架:Spring Boot
  8. Scrapy爬虫入门系列2 示例教程
  9. 这是一个有趣的问题,Java 8 Lambda 表达式被编译成了什么?
  10. 六面 Google,失败经验分享…