"Salah satu inti pembelajaran mesin adalah mengotomatiskan lebih banyak lagi proses rekayasa fitur." - Pedro Domingos, Beberapa Hal Berguna yang Perlu Diketahui tentang Pembelajaran Mesin
Featuretools adalah perpustakaan python untuk rekayasa fitur otomatis. Lihat dokumentasi untuk informasi lebih lanjut.
Instal dengan pip
python -m pip install featuretools
atau dari saluran Conda-forge di conda:
conda install -c conda-forge featuretools
Anda dapat menginstal add-on satu per satu atau sekaligus dengan menjalankan:
python -m pip install "featuretools[complete]"
Primitif Premium - Gunakan Primitif Premium dari repo premium-primitif
python -m pip install "featuretools[premium]"
NLP Primitives - Gunakan Natural Language Primitives dari repo nlp-primitives
python -m pip install "featuretools[nlp]"
Dukungan Dask - Gunakan Dask untuk menjalankan DFS dengan njobs > 1
python -m pip install "featuretools[dask]"
Di bawah ini adalah contoh penggunaan Deep Feature Synthesis (DFS) untuk melakukan rekayasa fitur otomatis. Dalam contoh ini, kami menerapkan DFS ke kumpulan data multi-tabel yang terdiri dari transaksi pelanggan yang diberi stempel waktu.
>> import featuretools as ft
>> es = ft . demo . load_mock_customer ( return_entityset = True )
>> es . plot ()
Featuretools dapat secara otomatis membuat satu tabel fitur untuk "kerangka data target" apa pun
>> feature_matrix , features_defs = ft . dfs ( entityset = es , target_dataframe_name = "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]
Kami sekarang memiliki vektor fitur untuk setiap pelanggan yang dapat digunakan untuk pembelajaran mesin. Lihat dokumentasi Sintesis Fitur Mendalam untuk contoh lainnya.
Featuretools berisi berbagai jenis primitif bawaan untuk membuat fitur. Jika primitif yang Anda perlukan tidak disertakan, Featuretools juga memungkinkan Anda menentukan primitif kustom Anda sendiri.
Prediksi Pembelian Berikutnya
Repositori | Buku catatan
Dalam demonstrasi ini, kami menggunakan kumpulan data multi-tabel dari 3 juta pesanan bahan makanan online dari Instacart untuk memprediksi apa yang akan dibeli pelanggan selanjutnya. Kami menunjukkan cara menghasilkan fitur dengan rekayasa fitur otomatis dan membangun alur pembelajaran mesin yang akurat menggunakan Featuretools, yang dapat digunakan kembali untuk berbagai masalah prediksi. Untuk pengguna yang lebih mahir, kami menunjukkan cara menskalakan pipeline tersebut ke kumpulan data besar menggunakan Dask.
Untuk contoh lebih lanjut tentang cara menggunakan Featuretools, lihat halaman demo kami.
Komunitas Featuretools menyambut permintaan penarikan. Petunjuk untuk pengujian dan pengembangan tersedia di sini.
Komunitas Featuretools dengan senang hati memberikan dukungan kepada pengguna Featuretools. Dukungan proyek dapat ditemukan di empat tempat tergantung pada jenis pertanyaannya:
featuretools
.Jika Anda menggunakan Featuretools, harap pertimbangkan untuk mengutip makalah berikut:
James Max Kanter, Kalyan Veeramachaneni. Sintesis fitur mendalam: Menuju otomatisasi upaya ilmu data. IEEE DSAA 2015 .
Entri BibTeX:
@inproceedings { kanter2015deep ,
author = { James Max Kanter and Kalyan Veeramachaneni } ,
title = { Deep feature synthesis: Towards automating data science endeavors } ,
booktitle = { 2015 {IEEE} International Conference on Data Science and Advanced Analytics, DSAA 2015, Paris, France, October 19-21, 2015 } ,
pages = { 1--10 } ,
year = { 2015 } ,
organization = { IEEE }
}
Featuretools adalah proyek sumber terbuka yang dikelola oleh Alteryx. Untuk melihat proyek open source lain yang sedang kami kerjakan, kunjungi Alteryx Open Source. Jika membangun jalur ilmu data yang berdampak penting bagi Anda atau bisnis Anda, silakan hubungi kami.