MySQLで自分に付与されている権限を確認する

分析を仕事にしているので、普段DBを触るときは SELECT しかしませんが、
諸事情ありまして、テーブルの作成やテーブル定義の変更を試す必要が発生しました。
なお、DBはMySQL。管理者は別チームです。

問題になるのが、自分のユーザーでCREATE TABLEやALTER TABLEの権限を持っているかどうかです。

調べたところ次のクエリで現在のユーザーの権限を確認できました。


SHOW GRANTS;
-- 結果は省略

ドキュメントはこちら:13.7.5.22 SHOW GRANTS 構文
FOR で指定すれば他のユーザーの権限を確認する事もできるようです。

CREATEもALTERもできることがわかりましたが、権限付与されていたら何をやってもいいというわけでもないので、
一応DBを管理しているチームに一声かけて作業を進めました。

LightGBMを動かしてみる

今回はほぼ動作確認だけです。
(前回の記事の最後に書いた通り、僕の環境ではimport 時にWarningが出るのでそもそも動くかどうかが不安だったので。)

LightGBMには scikit-learn形式のAPIが実装されていて、ほぼ同じように使う事もできます。
Scikit-learn API

とりあえずbostonのデータセットを使って、回帰問題を解いてみましょう。
動作確認なのでパラメーターはデフォルトです。
最後の評価は平方二乗誤差で行なってます。


import lightgbm
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error

# データの準備
boston = load_boston()
X = boston.data
y = boston.target
X_train, X_test, y_train, y_test = train_test_split(
                                    X, y, test_size=0.2, random_state=0
                                )
# デフォルトパラメーターでオブジェクト生成
lgbm = lightgbm.LGBMRegressor()
# 学習
lgbm.fit(X_train, y_train)
# 評価
y_predict = lgbm.predict(X_test)
print(mean_squared_error(y_test, y_predict))
# 24.34062206680735

無事に動いたようです。