採用微軟的AutoML框架對鳶尾花進行特徵篩選

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))
發佈了53 篇原創文章 · 獲贊 19 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章