Rumah > Peranti teknologi > AI > teks badan

Laksanakan kejuruteraan ciri automatik menggunakan Featuretools

PHPz
Lepaskan: 2024-01-22 15:18:06
ke hadapan
484 orang telah melayarinya

Laksanakan kejuruteraan ciri automatik menggunakan Featuretools

Featuretools ialah perpustakaan Python untuk kejuruteraan ciri automatik. Ia bertujuan untuk memudahkan proses kejuruteraan ciri dan meningkatkan prestasi model pembelajaran mesin. Perpustakaan secara automatik boleh mengekstrak ciri berguna daripada data mentah, membantu pengguna menjimatkan masa dan usaha sambil meningkatkan ketepatan model.

Berikut ialah langkah tentang cara menggunakan Featuretools untuk mengautomasikan kejuruteraan ciri:

Langkah 1: Sediakan data

Sebelum menggunakan Featuretools, anda perlu menyediakan set data. Set data mestilah dalam format Pandas DataFrame, di mana setiap baris mewakili pemerhatian dan setiap lajur mewakili ciri. Bagi masalah klasifikasi dan regresi, set data mestilah mengandungi pembolehubah sasaran, manakala bagi masalah pengelompokan, set data tidak memerlukan pembolehubah sasaran. Oleh itu, apabila menggunakan Featuretools, pastikan set data memenuhi keperluan ini supaya kejuruteraan ciri dan penjanaan ciri dapat dilakukan dengan cekap.

Langkah 2: Tentukan entiti dan perhubungan

Apabila menggunakan Featuretools untuk kejuruteraan ciri, anda perlu mentakrifkan entiti dan perhubungan terlebih dahulu. Entiti ialah subset set data yang mengandungi set ciri yang berkaitan. Contohnya, pada tapak web e-dagang, pesanan, pengguna, produk, pembayaran, dll. boleh dianggap sebagai entiti yang berbeza. Perhubungan ialah sambungan antara entiti Contohnya, pesanan mungkin dikaitkan dengan pengguna dan pengguna boleh membeli berbilang produk. Dengan mentakrifkan entiti dan perhubungan dengan jelas, struktur set data boleh difahami dengan lebih baik, yang memudahkan penjanaan ciri dan analisis data.

Langkah 3: Buat set entiti

Menggunakan Featuretools, anda boleh mencipta set entiti dengan mentakrifkan entiti dan perhubungan. Set entiti ialah koleksi berbilang entiti. Dalam langkah ini, anda perlu menentukan nama, set data, indeks, jenis pembolehubah dan cap masa bagi setiap entiti. Contohnya, set entiti yang mengandungi pesanan dan entiti pengguna boleh dibuat menggunakan kod berikut:

import featuretools as ft

# Create entity set
es=ft.EntitySet(id='ecommerce')

# Define entities
orders=ft.Entity(id='orders',dataframe=orders_df,index='order_id',time_index='order_time')
users=ft.Entity(id='users',dataframe=users_df,index='user_id')

# Add entities to entity set
es=es.entity_from_dataframe(entity_id='orders',dataframe=orders_df,index='order_id',time_index='order_time')
es=es.entity_from_dataframe(entity_id='users',dataframe=users_df,index='user_id')
Salin selepas log masuk

Di sini, kami menggunakan EntitySet untuk mencipta set entiti bernama "e-dagang" dan mentakrifkan dua entiti menggunakan Entiti, Pesanan dan Pengguna . Untuk entiti pesanan, kami menetapkan ID pesanan sebagai indeks dan masa pesanan sebagai cap waktu. Untuk entiti pengguna, kami hanya menentukan ID pengguna sebagai indeks.

Langkah 4: Tentukan perhubungan

Dalam langkah ini, anda perlu mentakrifkan perhubungan antara entiti. Menggunakan Featuretools, perhubungan boleh ditakrifkan melalui pembolehubah yang dikongsi, cap masa, dsb. antara entiti. Sebagai contoh, pada tapak web e-dagang, setiap pesanan dikaitkan dengan pengguna. Hubungan antara pesanan dan pengguna boleh ditakrifkan menggunakan kod berikut:

# Define relationships
r_order_user = ft.Relationship(orders['user_id'], users['user_id'])
es = es.add_relationship(r_order_user)
Salin selepas log masuk

Di sini, kami telah mentakrifkan hubungan antara pesanan dan pengguna menggunakan Perhubungan dan menambahkannya pada set entiti menggunakan add_relationship.

Langkah 5: Jalankan algoritma sintesis ciri dalam

Selepas melengkapkan langkah di atas, anda boleh menggunakan algoritma sintesis ciri dalam Featuretools untuk menjana ciri secara automatik. Algoritma ini secara automatik mencipta ciri baharu seperti pengagregatan, transformasi dan gabungan. Anda boleh menggunakan kod berikut untuk menjalankan algoritma sintesis ciri mendalam:

# Run deep feature synthesis algorithm
features, feature_names = ft.dfs(entityset=es, target_entity='orders', max_depth=2)
Salin selepas log masuk

Di sini, kami menggunakan fungsi dfs untuk menjalankan algoritma sintesis ciri mendalam, menentukan entiti sasaran sebagai entiti pesanan dan menetapkan kedalaman maksimum kepada 2. Fungsi ini mengembalikan DataFrame yang mengandungi ciri baharu dan senarai nama ciri.

Langkah 6: Bina model

Selepas anda memperoleh ciri baharu, anda boleh menggunakannya untuk melatih model pembelajaran mesin. Ciri baharu boleh ditambah pada set data asal menggunakan kod berikut:

# Add new features to original dataset
df=pd.merge(orders_df,features,left_on='order_id',right_on='order_id')
Salin selepas log masuk

Di sini, kami menggunakan fungsi gabungan untuk menambah ciri baharu pada set data asal untuk latihan dan ujian. Ciri baharu kemudiannya boleh digunakan untuk melatih model pembelajaran mesin, contohnya:

# Split dataset into train and test sets
X_train, X_test, y_train, y_test = train_test_split(df[feature_names], df['target'], test_size=0.2, random_state=42)

# Train machine learning model
model = RandomForestClassifier()
model.fit(X_train, y_train)

# Evaluate model performance
y_pred = model.predict(X_test)
accuracy_score(y_test, y_pred)
Salin selepas log masuk

Di sini, kami menggunakan pengelas hutan rawak sebagai model pembelajaran mesin dan menggunakan set latihan untuk melatih model. Kami kemudian menggunakan set ujian untuk menilai prestasi model, menggunakan ketepatan sebagai metrik penilaian.

Ringkasan:

Langkah-langkah untuk menggunakan Featuretools untuk mengautomasikan kejuruteraan ciri termasuk menyediakan data, menentukan entiti dan perhubungan, mencipta set entiti, mentakrifkan perhubungan, menjalankan algoritma sintesis ciri yang mendalam dan membina model. Featuretools boleh mengekstrak ciri berguna secara automatik daripada data mentah, membantu pengguna menjimatkan banyak masa dan usaha serta meningkatkan prestasi model pembelajaran mesin.

Atas ialah kandungan terperinci Laksanakan kejuruteraan ciri automatik menggunakan Featuretools. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:163.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!