采用微软的AutoML框架对鸢尾花进行特征筛选

随声附和 提交于 2020-01-25 03:22:46
from sklearn import datasets
from sklearn.model_selection import train_test_split
from nni.feature_engineering.gbdt_selector import GBDTSelector
import torch
iris = datasets.load_iris()
x = iris.data
y = iris.target

params = {
    # default=0.1, type=double, alias=shrinkage_rate
    'learning_rate': 0.2,

    # default=regression,任务类型
    'application': 'binary',
    # 叶子节点的数量
    'num_leaves': 31,
    # default=1, type=int, alias=verbose  |  日志冗长度,[详细信息]代表是否输出 < 0: Fatal, = 0: Error (Warn), > 0: Info
    'verbosity': -1,
     'data_random_seed': 2,
     'bagging_fraction': 0.8,# default=1.0, type=double, 0.0 < bagging_fraction < 1.0, alias=sub_row, subsample
    # 类似于 feature_fraction, 但是它将在不进行重采样的情况下随机选择部分数据
    # 可以用来加速训练
    # 可以用来处理过拟合
    # Note: 为了启用 bagging, bagging_freq 应该设置为非零值

     'feature_fraction': 0.6,
     #default=1.0, type=double, 0.0 < feature_fraction < 1.0, alias=sub_feature,                                                                        #colsample_bytree
    # 如果 feature_fraction 小于 1.0, LightGBM 将会在每次迭代中随机选择部分特征. 例如, 如果设置为 0.8, 将会在每棵树训练之前选择 80% 的特征
    # 可以用来加速训练
    # 可以用来处理过拟合
    'nthread': 4,
    #default=OpenMP_default, type=int, alias=num_thread, nthread
    # LightGBM 的线程数
    # 为了更快的速度, 将此设置为真正的 CPU 内核数, 而不是线程的数量 (大多数 CPU 使用超线程来使每个 CPU 内核生成 2 个线程)
    # 当你的数据集小的时候不要将它设置的过大 (比如, 当数据集有 10,000 行时不要使用 64 线程)
    # 请注意, 任务管理器或任何类似的 CPU 监视工具可能会报告未被充分利用的内核. 这是正常的
    # 对于并行学习, 不应该使用全部的 CPU 内核, 因为这会导致网络性能不佳

    'lambda_l1': 1,         #lambda_l1, default=0, type=double, alias=reg_alpha   L1 正则
    'lambda_l2': 1}


X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.33, random_state=42)

#X_train = torch.tensor(X_train).float()
#y_train = torch.tensor(y_train).long()

# 初始化 Selector
fgs = GBDTSelector()
# 拟合数据
fgs.fit(X_train, y_train, lgb_params=params, eval_ratio=0.3, early_stopping_rounds=2, importance_type='gain', num_boost_round=10)
# 获取重要的特征
# 此处会返回重要特征的索引。
print(fgs.get_selected_features(2))
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!