数据智能输出。
diego的Python项目详细描述
迭戈
迭戈:数据输入,情报输出。
支持快速构建自动学习任务的快速框架。只需创建一个自动学习研究(Study
)并生成相关试验(Trial
)。然后运行代码,得到一个机器学习模型。使用scikit learn apiglossary,使用贝叶斯优化和遗传算法实现自动机器学习。
灵感来自Fast.ai和MicroSoft nni。
- [X]通过研究训练的分类器。
- [X]支持scikit学习api的automl分类器。支持导出模型并直接使用它们。
- [X]使用贝叶斯优化和遗传算法的超参数优化
- [X]支持预处理的bucketing/binning算法和lus采样方法
- []支持scikit learn api分类器用于参数搜索和超级参数优化的自定义分类器
安装
<>你需要先安装SWIG,还有一些依赖C/C++接口编译。建议使用Conda安装conda install --yes pip gcc swig libgcc=5.2.0 pip install diego
安装后,从6行代码开始解决机器学习分类问题。
用法
每个任务被认为是一个Study
,每个研究由多个Trial
组成。
建议先创建研究,然后从研究中生成试验:
fromdiego.studyimportcreate_studyimportsklearn.datasetsdigits=sklearn.datasets.load_digits()X_train,X_test,y_train,y_test=sklearn.model_selection.train_test_split(digits.data,digits.target,train_size=0.75,test_size=0.25)s=create_study(X_train,y_train)# can use default trials in Study# or generate one# s.generate_trials(mode='fast')s.optimize(X_test,y_test)# all_trials = s.get_all_trials()# for t in all_trials:# print(t.__dict__)# print(t.clf.score(X_test, y_test))
路线图
未来发布的想法
- []回归。
- []添加文档。
- [美联储试验、TPE、Bayesopt、随机搜索
- []使用自定义分类器(如sklearn、xgboost)进行的试验。
- []模型持久性
- []模型输出
- []基本分类器
- []修复优化管道中挂起的Mac OS
- []添加预处理器
- []为自动化功能工程添加功能工具
项目结构
研究、试验
学习:
试用版:
Linux操作系统挂起/崩溃/冻结
因为n_u jobs>;1在并行化过程中可能会卡住。在[scikit learn](https://scikit-learn.org/stable/faq.html#why-do-i-sometime-get-a-crash-freeze-with-n-jobs-1-under-osx-or-linux)中可能会出现类似的问题
在python 3.4+中,一种解决方案是直接配置multiprocessing
来使用forkserver
或spawn
来启动进程池管理(而不是默认的fork
)。例如,直接在代码中全局启用forkserver
模式。
importmultiprocessing# other imports, custom code, load data, define model...if__name__=='__main__':multiprocessing.set_start_method('forkserver')# call scikit-learn utils with n_jobs > 1 here
核心
存储
对于每项研究,数据存储和参数以及模型都额外存储在Storage
对象中,这样可以确保研究只控制试验,并且每次试验更新后都会更新存储中的结果,并更新最佳结果。
更新结果
创建Study
时,需要指定优化方向maximize
或minimize
。在创建Trials
时,还要指定优化的度量。默认值是maximize accuracy
。
汽车制造
贝耶斯选择
网格搜索
- 水.ai
树参数
- hyperopt
- mlbox
元启发式网格搜索
- 侏儒
生成
1.tpot
dl
- NNI女士