Pythonのライブラリの紹介です。それぞれの説明と使用例は以下になります。
L 364. pycaret(機械学習フレームワーク)
pycaret は、ローコードな機械学習フレームワークです。前処理~モデル比較・チューニング・解釈・デプロイまでを一気通貫で自動化します。scikit-learn や XGBoost など多くの学習器を統一APIで扱えます。
▼主な機能
自動前処理(欠損補完、エンコーディング、標準化、外れ値処理 など)
モデル一括比較(ランキング表示)/ 自動チューニング / スタッキング・ブレンディング
重要度・SHAPによる解釈、推論、モデル保存・ロード、MLflow連携
▼使い方(分類の最小例)
# pip install pycaret[full]
from pycaret.classification import setup, compare_models, create_model, tune_model, predict_model, save_model
# df: 学習用DataFrame(目的変数 ‘target’ を含む)
s = setup(data=df, target=’target’, session_id=42, normalize=True, fix_imbalance=True)
best = compare_models() # 複数モデルを自動比較
rf = create_model(‘rf’) # ランダムフォレストを作成
tuned= tune_model(rf) # ハイパーパラメータ自動探索
predict_model(tuned) # 検証データでの推論とメトリクス
save_model(tuned, ‘clf_rf_tuned’) # モデル保存(pipline込み)
▼ポイント: setup() のフラグで前処理を細かく制御可能。create_model(‘catboost’) など多彩な学習器IDに対応。
L 365. featuretools(自動特徴量生成)
featuretools は、自動特徴量生成(Feature Engineering)のライブラリです。テーブル(リレーション)をまたいだ特徴量を DFS(Deep Feature Synthesis) で一括生成します。集計・時系列集約・深い組み合わせを“宣言的”に作成します。
▼主な機能
EntitySet による関係テーブル管理(親子関係/キー定義)
dfs() による自動特徴量合成(集約/変換プリミティブの組み合わせ)
時間依存の「カットオフ」指定、特徴量リストの保存・適用(再現性)
▼使い方(多表→自動特徴量)
# pip install featuretools
import featuretools as ft
import pandas as pd
# サンプル:顧客(customers)と取引(transactions)
es = ft.EntitySet(id=’retail’)
es = es.add_dataframe(dataframe_name=’customers’, dataframe=customers, index=’customer_id’)
es = es.add_dataframe(dataframe_name=’transactions’, dataframe=transactions, index=’tx_id’,
time_index=’tx_time’)
es = es.add_relationship(parent_dataframe_name=’customers’, parent_column_name=’customer_id’,
child_dataframe_name=’transactions’, child_column_name=’customer_id’)
# DFS: 顧客単位の特徴量テーブルを自動生成
feature_matrix, feature_defs = ft.dfs(
entityset=es,
target_dataframe_name=’customers’,
agg_primitives=[‘mean’,’sum’,’count’,’max’,’skew’], # 集約
trans_primitives=[‘day’,’month’,’weekday’], # 変換
max_depth=2
)
▼ポイント: max_depth やプリミティブ指定で“どれくらい深く組み合わせるか”を調整。生成後は feature_defs を保存して本番で同じ特徴量変換を適用できます。
L 366. tsfresh(特徴量抽出特化ライブラリ)
tsfresh は、時系列の特徴量抽出特化ライブラリです。統計/フーリエ/自己相関など 数百種の時系列特徴量 を自動で抽出し、重要度基準で 関連特徴量の選別 まで行えます。
▼主な機能
extract_features() による時系列→大量の特徴量化
select_features() で目的変数に有意な特徴を自動選別
長形式(id・time・value)データに最適化、カスタム設定で計算量調整
▼使い方(抽出→選別の最小例)
# pip install tsfresh
from tsfresh import extract_features, select_features
from tsfresh.utilities.dataframe_functions import make_forecasting_frame
import pandas as pd
# 1系列の例:Series をラグ展開して長形式に
y = df[‘sales’] # 時系列
X_long, y_ids = make_forecasting_frame(y, kind=”sales”, max_timeshift=10, rolling_direction=1)
# 大量の時系列特徴量を抽出
X_feat = extract_features(X_long, column_id=”id”, column_sort=”time”, column_value=”sales”,
disable_progressbar=True)
# 目的変数(例:将来の上昇フラグ等)に対し有意な特徴だけ選択
# y_target: 各 id に対応する教師ラベル(0/1 など)
X_sel = select_features(X_feat, y_target)
▼ポイント: 入力は 長形式(id・time・value) が基本。計算コストが大きいので default_fc_parameters で対象の特徴群を絞ったり、n_jobs で並列化しましょう。



コメント