今天试了试pycaret这个机器学习库,感觉简直是个建模宝藏啊,从数据预处理、特征工程、建模、自动优化、模型部署,所有功能基本全部覆盖。它的原理大概就是封装了Sklearn,XGBoost,LightGBM,Spacy,Shap,PyOD,Gensim,WordCloud等工具,几乎包括机器学习所有的使用场景和方法(不含深度学习)。异常检测Anomaly Detection,关联规则Association Rules,分类Classification,回归Regression,聚类Clustering,自然语言处理NLP等,其中支持最丰富的还是分类和回归。
我觉得做一些单机版的机器学习建模用pycaret这样的工具就很方便了,最吸引我的其实是它的上层的API接口设计。总之,强烈推荐初学者使用。
比方说注册数据叫做setup:
eg1 = setup(data, target = 'charges', silent=True,
categorical_features=['sex', 'smoker', 'region', 'children'],
numeric_features=['age', 'bmi'])
建模直接叫做create model,算法名字作为变量传进去,这样的话扩展性非常强了,以后增加算法的话这个调用方式也不用改:
xgboost = create_model('xgboost')
还有一个比较有意思的是它封装的自动调参功能,直接就叫做tune_model:
xgboost = tune_model('xgboost')
会把调参后的一些结果直接列出来。
还有一个比较牛逼的点是模型融合,直接把要融合的模型放到列表里,然后blend_model就好了。
xgbo
ost=blend_models(estimator_list=[classification_dt, classification_xgb])
最后想比较多个模型的性能,直接输入compare_models:
是不是感觉很方便,搞一个全链路训练加预测估计就10行代码就搞定了。
链接奉上:https://github.com/pycaret/pycaret