Index ソフト・ハード LightGBM | mnistSample |
LightBGM パラメータ training 予測の精度 GPU使用 機能・要件 構成・方式 タスク ライブラリ 導入 Sample |
MNIST_LightBGM
# mnistLightBGM.py
import time
import lightgbm as lgb
import numpy as np
from mnist import load_mnist
#from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# MNISTデータセットの事前準備
(x_train, t_train), (x_test, t_test) = load_mnist()
# 学習データと検証データに分割 (分割済の場合は不要)
#split_ratio = 0.2
#x_train, x_validation, t_train, t_validation = train_test_split(x_train, t_train, test_size=split_ratio)
# 平滑化
#x_train = x_train.reshape(-1, 784)
#x_validation = x_validation.reshape(-1, 784)
#x_test = x_test.reshape(-1, 784)
# 正規化
#x_train = x_train.astype(float) / 255
#x_validation = x_validation.astype(float) / 255
#x_test = x_test.astype(float) / 255
# データセット
lgb_train_data = lgb.Dataset(x_train, label=t_train)
#lgb_eval_data = lgb.Dataset(x_validation, label=t_validation, reference=lgb_train_data)
lgb_eval_data = lgb.Dataset(x_test, label=t_test) # (分割済)
start = time.time()
lgb_params = {
"task": "train",
"boosting_type": "gbdt",
"objective": "multiclass",
"num_class": 10,
"force_col_wise": "true",
}
# 訓練データからLightGBMモデル作成
gbm = lgb.train(
lgb_params,
lgb_train_data,
valid_sets=lgb_eval_data,
num_boost_round=100,
early_stopping_rounds=10
)
# テストデータからLightGBMモデルの精度を確認
preds = gbm.predict(x_test)
y_pred = []
for x in preds:
y_pred.append(np.argmax(x))
print("accuracy score: {}".format(accuracy_score(t_test, y_pred)))
print("elapsed time: {}".format(time.time() - start)
training
(base) \LightGBM\mnist> python mnist_LightGBM.py
[LightGBM] [Info] Total Bins 109606
[LightGBM] [Info] Number of data points in the train set: 60000, number of used features: 629
[LightGBM] [Info] Start training from score -2.315501
[LightGBM] [Info] Start training from score -2.185988
[LightGBM] [Info] Start training from score -2.309610
[LightGBM] [Info] Start training from score -2.280987
[LightGBM] [Info] Start training from score -2.329271
[LightGBM] [Info] Start training from score -2.404064
[LightGBM] [Info] Start training from score -2.316346
[LightGBM] [Info] Start training from score -2.259366
[LightGBM] [Info] Start training from score -2.327732
[LightGBM] [Info] Start training from score -2.311121
[1] valid_0's multi_logloss: 1.68284
Training until validation scores don't improve for 10 rounds
[2] valid_0's multi_logloss: 1.38174
[3] valid_0's multi_logloss: 1.17286
[4] valid_0's multi_logloss: 1.01394
[5] valid_0's multi_logloss: 0.886547
・・・
[96] valid_0's multi_logloss: 0.071275
[97] valid_0's multi_logloss: 0.0710723
[98] valid_0's multi_logloss: 0.0708463
[99] valid_0's multi_logloss: 0.0704296
[100] valid_0's multi_logloss: 0.0702599
Did not meet early stopping. Best iteration is:
[100] valid_0's multi_logloss: 0.0702599
accuracy score: 0.9774
elapsed time: 28.805504083633423
|
All Rights Reserved. Copyright (C) ITCL |