Are you sure you want to delete this task? Once this task is deleted, it cannot be recovered.
poteman 2c232250c6 | 2 years ago | |
---|---|---|
.idea | 2 years ago | |
autox | 2 years ago | |
demo | 2 years ago | |
img | 2 years ago | |
test | 2 years ago | |
.DS_Store | 2 years ago | |
.gitignore | 2 years ago | |
LICENSE | 2 years ago | |
README.md | 2 years ago | |
README_EN.md | 2 years ago | |
run.py | 2 years ago | |
run_oneclick.py | 2 years ago | |
setup.py | 2 years ago | |
submit.py | 2 years ago |
English | 简体中文
AutoX一个高效的自动化机器学习工具,它主要针对于表格类型的数据挖掘竞赛。
它的特点包括:
autox.get_submit # 回归或分类问题
autox.get_submit_ts # 时间序列数据集
Kaggle_Santander-AutoX解决方案:
2021神州信息极客大赛-贷款反欺诈-AutoX解决方案:
DC租金预测-AutoX解决方案:
2021阿里云供应链大赛-AutoX解决方案:
kaggle petfinder-AutoX解决方案:
autox.get_top_features # 回归或分类问题
autox.get_top_features_ts # 时间序列数据集
kaggle-Allstate获取topk重要的特征:
AutoX内置的模型可解释功能包括:
1. git clone https://github.com/4paradigm/autox.git
2. cd autox
3. python setup.py install
├── autox
│ ├── ensemble
│ ├── feature_engineer
│ ├── feature_selection
│ ├── file_io
│ ├── join_tables
│ ├── metrics
│ ├── models
│ ├── process_data
│ └── util.py
│ ├── CONST.py
│ ├── autox.py
├── run_oneclick.py
└── demo
└── test
├── setup.py
├── README.md
data_type | data_name(link) | metric | single-table or multi-table | AutoX | AutoGluon | H2o |
---|---|---|---|---|---|---|
binary classification | single-table | Springleaf | auc | 0.78865 | 0.61141 | 0.78186 |
binary classification | single-table | stumbleupon | auc | 0.87177 | 0.81025 | 0.79039 |
binary classification | single-table | santander | auc | 0.89196 | 0.64643 | 0.88775 |
binary classification | single-table | Titanic | accuracy | 0.77751 | 0.78229 | 0.79186 |
binary classification | multi-table | IEEE | accuracy | 0.920809 | 0.724925 | 0.907818 |
binary classification | single-table | categorical_feature_encoding_challenge | auc | 0.66070 | 0.79609 | |
regression | single-table | ventilator | mae | 0.755 | 8.434 | 4.221 |
regression | single-table | Allstate Claims Severity | mae | 1137.07885 | 1173.35917 | 1163.12014 |
regression | single-table | zhidemai | mse | 1.0034 | 1.9466 | 1.1927 |
regression | single-table | Tabular Playground Series - Aug 2021 | rmse | 7.87731 | 10.3944 | 7.8895 |
regression | single-table | House Prices | rmse | 0.13043 | 0.13104 | 0.13161 |
regression | single-table | Restaurant Revenue | rmse | 2133204.32146 | 31913829.59876 | 28958013.69639 |
regression | multi-table | Elo Merchant Category Recommendation | rmse | 3.72228 | 3.80801 | 22.88899 |
regression-ts | single-table | Demand Forecasting | smape | 13.79241 | 25.39182 | 18.89678 |
regression-ts | multi-table | Walmart Recruiting | wmae | 4660.99174 | 5024.16179 | 5128.31622 |
regression-ts | multi-table | Rossmann Store Sales | RMSPE | 0.13850 | 0.20453 | 0.35757 |
功能开发完成后,发布相应的使用demo
若有其他希望AutoX支持的功能,欢迎提issue!
欢迎填写用户调研问卷,让AutoX变得更好!
"relations": [ # 表关系(可以包含为1-1, 1-M, M-1, M-M四种)
{
"related_to_main_table": "true", # 是否为和主表的关系
"left_entity": "overdue", # 左表名字
"left_on": ["new_user_id"], # 左表拼表键
"right_entity": "userinfo", # 右表名字
"right_on": ["new_user_id"], # 右表拼表键
"type": "1-1" # 左表与右表的连接关系
},
{
"related_to_main_table": "true",
"left_entity": "overdue",
"left_on": ["new_user_id"],
"left_time_col": "flag1",
"right_entity": "bank",
"right_on": ["new_user_id"],
"right_time_col": "flag1",
"type": "1-M"
},
{
"related_to_main_table": "true",
"left_entity": "overdue",
"left_on": ["new_user_id"],
"left_time_col": "flag1",
"right_entity": "browse",
"right_on": ["new_user_id"],
"right_time_col": "flag1",
"type": "1-M"
},
{
"related_to_main_table": "true",
"left_entity": "overdue",
"left_on": ["new_user_id"],
"left_time_col": "flag1",
"right_entity": "bill",
"right_on": ["new_user_id"],
"right_time_col": "flag1",
"type": "1-M"
}
]
1.1 读数据
1.2 合并train和test
1.3 识别数据表中列的类型
1.4 数据预处理
特征工程包含单表特征和多表特征。
每一个特征工程类都包含以下功能:
一、自动筛选要执行当前操作的特征;
二、查看筛选出来的特征
三、修改要执行当前操作的特征
四、执行特征数据的计算,返回和主表样本条数以及顺序一致的特征
将构造出来的特征进行合并,行数不变,列数增加,返回大的宽表
将宽表划分成训练集和测试集
通过train和test的特征列数据分布情况,对构造出来的特征进行过滤,避免过拟合
利用过滤后的宽表特征对模型进行训练
模型类提供功能包括:
一、查看模型默认参数;
二、模型训练;
三、模型调参;
四、查看模型对应的特征重要性;
五、模型预测
AutoX类自动为用户管理数据集和数据集信息。
初始化AutoX类之后会执行以下操作:
一、读数据;
二、合并train和test;
三、识别数据表中列的类型;
四、数据预处理。
读取给定路径下的所有文件。默认情况下,会将训练集主表和测试集主表进行拼接,
再进行后续的数据预处理以及特征工程等操作,并在模型预测开始前,将训练集和测试进行拆分。
- 对时间列解析年, 月, 日, 时、星期几等信息
- 在每次训练前,会对输入到模型的数据删除无效(nunique为1)的特征
- 去除异常样本,去除label为nan的样本
- time diff特征
- 聚合统计类特征
对要操作的特征列,将全体数据集中,和当前样本特征属性一致的样本计数作为特征
target encoding特征
统计类特征
使用两层for训练提取统计类特征。
第一层for循环遍历所有筛选出来的分组特征(group_col),
第二层for循环遍历所有筛选出来的聚合特征(agg_col),
在第二层for循环中,
若遇到类别型特征,计算的统计特征为nunique,
若遇到数值型特征,计算的统计特征包括[median, std, sum, max, min, mean].
AutoX目前支持以下模型:
1. Lightgbm
2. Xgboost
3. TabNet
AutoX支持的模型融合方式包括一下两种,默认情况下,使用Bagging的方式进行融合。
1. Stacking;
2. Bagging。
比赛 | magics |
---|---|
kaggle criteo | 对于nunique很大的特征列,进行分桶操作。例如,对于nunique大于10000的特征,做hash后截断保留4位,再进行label_encode。 |
zhidemai | article_id隐含了时间信息,增加article_id的排序特征。例如,groupby(['date'])['article_id'].rank()。 |
kaggle StumbleUpon | 以文本列特征作为输入,使用Bert模型进行训练。 |
kaggle ventilator | 对breath_id聚合的shift、diff、cumsum特征 |
kaggle Santander | 识别出fake test,剔除之后再和train合并,构造全局的count特征。识别的方法:真实的样本至少有一个特征对应的值是全局唯一的,而fake的样本没有全局唯一的特征值。参考: List of Fake Samples and Public/Private LB split |
kaggle Allstate Claims Severity | label取log1p后训练模型,获得结果后取expm1,mae能降低35+ |
错误信息 | 解决办法 |
---|
AutoX is an efficient automl tool, which is mainly aimed at data mining tasks with tabular data.
Jupyter Notebook CSV Python Markdown Pickle other
Dear OpenI User
Thank you for your continuous support to the Openl Qizhi Community AI Collaboration Platform. In order to protect your usage rights and ensure network security, we updated the Openl Qizhi Community AI Collaboration Platform Usage Agreement in January 2024. The updated agreement specifies that users are prohibited from using intranet penetration tools. After you click "Agree and continue", you can continue to use our services. Thank you for your cooperation and understanding.
For more agreement content, please refer to the《Openl Qizhi Community AI Collaboration Platform Usage Agreement》