Github: https://github.com/Featuretools/featuretools
「機械学習の聖杯の一つは、機能工学のプロセスをますます自動化することです。 – ペドロ・ドミンゴス、 機械学習について知っておくべき有用な情報
Featuretoolsは、自動化されたフィーチャエンジニアリングのためのPythonライブラリです。 詳細については、 ドキュメントを参照してください。
インストール
ピップでインストールする
pip install featuretools
例
以下は、Deep Feature Synthesis(DFS)を使用して自動フィーチャエンジニアリングを実行する例です。 この例では、タイムスタンプ付きの顧客トランザクションで構成される複数テーブルのデータセットにDFSを適用します。
>> import featuretools as ft
>> es = ft.demo.load_mock_customer(return_entityset=True)
>> es
Entityset: transactions
Entities:
customers (shape = [5, 3])
sessions (shape = [35, 4])
products (shape = [5, 2])
transactions (shape = [500, 5])
Relationships:
transactions.product_id -> products.product_id
transactions.session_id -> sessions.session_id
sessions.customer_id -> customers.customer_id
Featuretoolsは、「ターゲットエンティティ」の機能の単一のテーブルを自動的に作成できます。
>> feature_matrix, features_defs = ft.dfs(entityset=es, target_entity="customers")
>> feature_matrix.head(5)
zip_code COUNT(transactions) COUNT(sessions) SUM(transactions.amount) MODE(sessions.device) MIN(transactions.amount) MAX(transactions.amount) YEAR(join_date) SKEW(transactions.amount) DAY(join_date) ... SUM(sessions.MIN(transactions.amount)) MAX(sessions.SKEW(transactions.amount)) MAX(sessions.MIN(transactions.amount)) SUM(sessions.MEAN(transactions.amount)) STD(sessions.SUM(transactions.amount)) STD(sessions.MEAN(transactions.amount)) SKEW(sessions.MEAN(transactions.amount)) STD(sessions.MAX(transactions.amount)) NUM_UNIQUE(sessions.DAY(session_start)) MIN(sessions.SKEW(transactions.amount))
customer_id ...
1 60091 131 10 10236.77 desktop 5.60 149.95 2008 0.070041 1 ... 169.77 0.610052 41.95 791.976505 175.939423 9.299023 -0.377150 5.857976 1 -0.395358
2 02139 122 8 9118.81 mobile 5.81 149.15 2008 0.028647 20 ... 114.85 0.492531 42.96 596.243506 230.333502 10.925037 0.962350 7.420480 1 -0.470007
3 02139 78 5 5758.24 desktop 6.78 147.73 2008 0.070814 10 ... 64.98 0.645728 21.77 369.770121 471.048551 9.819148 -0.244976 12.537259 1 -0.630425
4 60091 111 8 8205.28 desktop 5.73 149.56 2008 0.087986 30 ... 83.53 0.516262 17.27 584.673126 322.883448 13.065436 -0.548969 12.738488 1 -0.497169
5 02139 58 4 4571.37 tablet 5.91 148.17 2008 0.085883 19 ... 73.09 0.830112 27.46 313.448942 198.522508 8.950528 0.098885 5.599228 1 -0.396571
[5 rows x 69 columns]
現在、機械学習に使用できる各顧客のための特徴ベクトルがあります。 詳細な例については、Deep Feature Synthesisのドキュメントを参照してください。
デモ
次の購入を予測する
このデモンストレーションでは、Instacartの300万件のオンライン食料品注文のマルチテーブルデータセットを使用して、次に顧客が購入するものを予測します。 自動化されたフィーチャエンジニアリングを使用してフィーチャを生成する方法と、Featuretoolsを使用して正確な機械学習パイプラインを構築する方法を示します。フィジカルツールは、複数の予測問題に再利用できます。 より高度なユーザーには、Daskを使用してパイプラインを大規模なデータセットに拡張する方法を示します。
Featuretoolsの使い方の例については、 デモページをご覧ください。
サポート
Featuretoolsコミュニティは、Featuretoolsのユーザーにサポートを提供してくれることでしょう。 プロジェクトのサポートは、質問のタイプに応じて4つの場所にあります。
- 使用上のご質問については、
featuretools
タグでStack Overflowを使用してください。 - バグ、問題、または機能リクエストではGithubの問題が発生します。
- コアライブラリの開発に関する議論については、 gitterを使用してください 。
- それ以外の場合は、電子メールでhelp@featuretools.comにアクセスしてください 。
機能ラボ
Featuretoolsは、 Feature Labsの開発者によって作成されました 。 インパクトのあるデータサイエンスパイプラインを構築することが重要な場合は、お気軽にお問い合わせください。