twitter facebook

ExcelのデータをPycaret を用いてAutoML・機械学習(回帰)

機械学習に用いられるモデルとパラメータはたくさんあり、ひとつひとつ試すのは大変です。そこでどのモデルやパラメータが良いか 簡単に試せるのが Pycaret です。
pip install pycaret
import pandas as pd

// sample.xlsxというExcelの sheet1 のデータを読み込む
df = pd.read_excel('sample.xlsx', sheet_name='sheet1', index_col=0).reset_index()

df = df.fillna('')


X = df.copy()

// 回帰
from pycaret.regression import *

// Xというデータを機械学習にかける
// 列名 _y が結果(目的変数)
// 列名 ix, c は学習では無視 *参考までに
ret = setup(X , target = "_y" ,  ignore_features=['ix', 'c'], session_id=0 , normalize = False , train_size = 0.8 )

//models()

//たくさんあるアルゴリズムで評価
compare_models(sort="R2", fold=10)
compare_models() でたくさあるアルゴリズムでの評価結果が出力結果が表示されあます。今回はR2順に並び変えておりそのなかから gbr が一番良さそう というのがわかります。
// モデルはGBRを用いる(一番精度がよさそう)
rf = create_model("gbr", fold = 10)

// モデルをチューニング
tuned_rf = tune_model(rf, optimize = "r2", fold = 10)

// 以下で性能などを見ることができる
evaluate_model(tuned_rf)
plot_model(tuned_rf, "feature")
plot_model(tuned_rf, "learning")
plot_model(tuned_rf, "error")

final_rf = finalize_model(tuned_rf)
様々な指標グラフなどで見ることができます。 Feature Importatnce が高いものが重要な列・係数 という意味です。 余談ですがスパースモデリングのように重要ではない列を0にしたい場合は lasso などが有名です
X_csv = df.copy()

// 学習・チューニングしたモデルで予測
ret_df2 = predict_model(final_rf, data=X_csv)

// CSV に出力する例
//ret_df2.to_csv("ret_df3.tsv", sep='\t')
print(ret_df2)
下図の列名 _y がもともとわかっていた答え、
列名 prediction_label がこのモデルを用い計算した予測値(回帰)

学習の種類

今回は回帰(pycaret.regression)を使用しましたが、
from pycaret.regression import *
以下のように目的によってimport の部分を変更します。
回帰pycaret.regression
分類pycaret.classification
クラスタリングpycaret.clustering
異常検知pycaret.anomaly
自然言語pycaret.nlp
アソシエーションルールマイニングpycaret.arules
以下のようにインポートします。
// 回帰の場合 ↓↓↓
from pycaret.regression import *
// 分類の場合 ↓↓↓
from pycaret.classification import *
AUTHOR
@えのえの
最終更新日 2024/07/02
FAVORITE good stock
LINK TAG
記法を見る