Kejuruteraan Ciri: Membuka Kunci Kuasa Data untuk Model Pembelajaran Mesin Unggul

WBOY
Lepaskan: 2024-08-21 22:24:43
asal
468 orang telah melayarinya

Feature Engineering: Unlocking the Power of Data for Superior Machine Learning Models

Kejuruteraan ciri ialah proses memilih, memanipulasi dan mengubah data mentah kepada ciri yang boleh digunakan dalam pembelajaran mesin, kebanyakannya dalam pembelajaran diselia. Ia terdiri daripada lima proses: penciptaan ciri, transformasi, pengekstrakan ciri, analisis data penerokaan dan penanda aras. Dalam konteks ini, 'ciri' ialah sebarang input boleh diukur yang boleh digunakan dalam model ramalan. Ia mungkin bunyi haiwan, warna atau suara seseorang.

Teknik ini membolehkan saintis data mengekstrak cerapan paling berharga daripada data yang memastikan ramalan yang lebih tepat dan cerapan yang boleh diambil tindakan.

Jenis ciri

Seperti yang dinyatakan di atas, ciri ialah sebarang titik boleh diukur yang boleh digunakan dalam model ramalan. Mari kita lihat jenis kejuruteraan ciri untuk pembelajaran mesin-

  • Ciri berangka: Ciri ini ialah pembolehubah berterusan yang boleh diukur pada skala. Contohnya: umur, berat, tinggi dan pendapatan. Ciri ini boleh digunakan terus dalam pembelajaran mesin.

  • Ciri kategori: Ini ialah nilai diskret yang boleh dikumpulkan ke dalam kategori. Ia termasuk: jantina, kod zip dan warna. Ciri kategori dalam pembelajaran mesin biasanya perlu ditukar kepada ciri berangka sebelum ia boleh digunakan dalam algoritma pembelajaran mesin. Anda boleh melakukannya dengan mudah menggunakan pengekodan one-hot, label dan ordinal.

  • Ciri siri masa: Ciri ini ialah ukuran yang diambil dari semasa ke semasa. Ciri siri masa termasuk harga saham, data cuaca dan bacaan penderia. Ciri ini boleh digunakan untuk melatih model pembelajaran mesin yang boleh meramalkan nilai masa hadapan atau mengenal pasti corak dalam data.

  • Ciri teks: Ini ialah rentetan teks yang boleh mewakili perkataan, frasa atau ayat. Contoh ciri teks termasuk ulasan produk, siaran media sosial dan rekod perubatan. Anda boleh menggunakan ciri teks untuk melatih model pembelajaran mesin yang boleh memahami maksud teks atau mengklasifikasikan teks ke dalam kategori yang berbeza.

  • Salah satu proses yang paling penting dalam saluran paip pembelajaran mesin ialah: pemilihan ciri, iaitu proses memilih ciri yang paling relevan dalam set data untuk memudahkan latihan model. Ia meningkatkan prestasi ramalan dan keteguhan model, menjadikannya kurang berkemungkinan terlalu sesuai dengan data latihan. Proses ini penting kerana ia membantu mengurangkan pemasangan berlebihan, meningkatkan kebolehtafsiran model, meningkatkan ketepatan dan mengurangkan masa latihan.

Teknik dalam kejuruteraan ciri

Imputasi

Teknik ini berkaitan dengan pengendalian nilai/data yang Hilang. Ia adalah salah satu isu yang anda akan hadapi semasa anda menyediakan data anda untuk pembersihan dan juga penyeragaman. Ini kebanyakannya disebabkan oleh kebimbangan privasi, kesilapan manusia, dan juga gangguan aliran data. Ia boleh dikelaskan kepada dua kategori:

  • Imputasi Kategori: Pembolehubah kategori yang hilang biasanya digantikan dengan nilai yang paling biasa berlaku dalam rekod(mod) lain. Ia berfungsi dengan kedua-dua nilai berangka dan kategori. Walau bagaimanapun, ia mengabaikan korelasi ciri. Anda boleh menggunakan kelas 'SimpleImputer' Scikit-learn untuk kaedah imputasi ini. Kelas ini juga berfungsi untuk imputasi dengan pendekatan min dan median serta ditunjukkan di bawah.
# impute Graduated and Family_Size features with most_frequent values

from sklearn.impute import SimpleImputer
impute_mode = SimpleImputer(strategy = 'most_frequent')
impute_mode.fit(df[['Graduated', 'age']])

df[['Graduated', 'age']] = impute_mode.transform(df[['Graduated', 'age']])
Salin selepas log masuk
  • Imputasi Berangka: Nilai berangka yang tiada biasanya digantikan dengan min nilai yang sepadan dalam rekod lain. Juga dipanggil imputasi dengan min. Kaedah ini mudah, pantas dan berfungsi dengan baik dengan set data kecil. Walau bagaimanapun kaedah ini mempunyai beberapa had, seperti outlier dalam lajur boleh memesongkan hasil min yang boleh memberi kesan kepada ketepatan model ML. Ia juga gagal untuk mempertimbangkan korelasi ciri sambil mengaitkan nilai yang hilang. Anda boleh menggunakan fungsi 'fillna' untuk mengira nilai yang hilang dalam min lajur.
# Impute Work_Experience feature by its mean in our dataset

df['Work_Experience'] = df['Work_Experience'].fillna(df['Work_Experience'].mean())
Salin selepas log masuk

Pengekodan

Ini ialah proses menukar data kategori kepada data berangka (berterusan). Berikut ialah beberapa teknik pengekodan ciri:

  • Pengekodan label: Pengekodan label ialah kaedah pengekodan pembolehubah atau ciri dalam set data. Ia melibatkan penukaran pembolehubah kategori kepada pembolehubah berangka.

  • Pengekodan satu panas: Pengekodan satu panas ialah proses di mana pembolehubah kategori ditukar kepada bentuk yang boleh digunakan oleh algoritma ML.

  • Pengekodan binari: Pengekodan binari ialah proses pengekodan data menggunakan kod binari. Dalam pengekodan binari, setiap aksara diwakili oleh gabungan 0s dan 1s.

Penskalaan dan Normalisasi

Penskalaan ciri ialah kaedah yang digunakan untuk menormalkan julat pembolehubah bebas atau ciri data. Dalam pemprosesan data, ia juga dikenali sebagai penormalan data dan biasanya dilakukan semasa langkah prapemprosesan data. Contohnya, jika anda mempunyai berbilang pembolehubah bebas seperti umur, gaji dan ketinggian; Dengan julatnya masing-masing sebagai (18–100 Tahun), (25,000–75,000 Euro), dan (1–2 Meter), penskalaan ciri akan membantu mereka semua berada dalam julat yang sama, contohnya- berpusat sekitar 0 atau dalam julat (0,1) bergantung kepada teknik penskalaan.

Penormalan ialah teknik penskalaan di mana nilai dianjakkan dan diskalakan semula supaya nilai tersebut berakhir dalam julat antara 0 dan 1. Ia juga dikenali sebagai penskalaan Min-Max. Di sini, Xmax dan Xmin ialah nilai maksimum dan minimum bagi ciri tersebut.

Binning

Binning (juga dipanggil bucketing) ialah teknik kejuruteraan ciri yang mengumpulkan subjulat berangka yang berbeza ke dalam tong atau baldi. Dalam banyak kes, binning menukar data berangka menjadi data kategori. Sebagai contoh, pertimbangkan ciri bernama X dengan nilai terendah ialah 15 dan nilai tertinggi ialah 425. Menggunakan binning, anda boleh mewakili X dengan lima tong sampah berikut:

  • Tong 1: 15 hingga 34
  • Tong 2: 35 hingga 117
  • Tong 3: 118 hingga 279
  • Tong 4: 280 hingga 392
  • Tong 5: 393 hingga 425

Bin 1 menjangkau julat 15 hingga 34, jadi setiap nilai X antara 15 dan 34 berakhir di Bin 1. Model yang dilatih pada tong ini tidak akan bertindak balas secara berbeza terhadap nilai X 17 dan 29 kerana kedua-dua nilai berada dalam Bin 1.

Pengurangan Dimensi

Ini ialah kaedah untuk mewakili set data tertentu menggunakan bilangan ciri yang lebih rendah (iaitu dimensi) sambil masih menangkap sifat bermakna data asal.1 Ini sama dengan mengalih keluar ciri yang tidak berkaitan atau berlebihan, atau hanya data yang bising, untuk mencipta model dengan bilangan pembolehubah yang lebih rendah. Pada asasnya mengubah data dimensi tinggi kepada data dimensi rendah. Terdapat dua pendekatan utama untuk pengurangan dimensi -

  • Pemilihan Ciri: Pemilihan ciri melibatkan pemilihan subset ciri asal yang paling berkaitan dengan masalah yang dihadapi. Matlamatnya adalah untuk mengurangkan dimensi set data sambil mengekalkan ciri yang paling penting. Terdapat beberapa kaedah untuk pemilihan ciri, termasuk kaedah penapis, kaedah pembalut dan kaedah terbenam. Kaedah penapis menilai ciri berdasarkan kaitannya dengan pembolehubah sasaran, kaedah pembalut menggunakan prestasi model sebagai kriteria untuk memilih ciri dan kaedah terbenam menggabungkan pemilihan ciri dengan proses latihan model.

  • Pengeluaran Ciri: Pengekstrakan ciri melibatkan penciptaan ciri baharu dengan menggabungkan atau mengubah ciri asal. Matlamatnya adalah untuk mencipta satu set ciri yang menangkap intipati data asal dalam ruang berdimensi lebih rendah. Terdapat beberapa kaedah untuk pengekstrakan ciri, termasuk analisis komponen utama (PCA), analisis diskriminasi linear (LDA), dan pembenaman jiran stokastik teragih-t (t-SNE). PCA ialah teknik popular yang menayangkan ciri asal pada ruang berdimensi lebih rendah sambil mengekalkan sebanyak mungkin varians.

Alat Kejuruteraan Ciri Automatik

Terdapat beberapa alatan yang digunakan untuk mengautomasikan kejuruteraan ciri, mari lihat sebahagian daripadanya.

FeatureTools -Ini ialah rangka kerja Python sumber terbuka yang popular untuk kejuruteraan ciri automatik. Ia berfungsi merentas berbilang jadual berkaitan dan menggunakan pelbagai transformasi untuk penjanaan ciri. Keseluruhan proses dijalankan menggunakan teknik yang dipanggil "Sintesis Ciri Dalam" (DFS) yang secara rekursif menggunakan transformasi merentas set entiti untuk menjana ciri yang kompleks.

Autofeat - Ini ialah perpustakaan python yang menyediakan kejuruteraan ciri automatik dan pemilihan ciri bersama-sama dengan model seperti AutoFeatRegressor dan AutoFeatClassifier. Ini dibina dengan banyak pengiraan saintifik dan memerlukan kuasa pengiraan yang baik. Berikut ialah beberapa ciri perpustakaan:

  • Berfungsi serupa dengan model pembelajaran scikit menggunakan fungsi seperti fit(), fit_transform(), predict(), dan score().
  • Boleh mengendalikan ciri kategori dengan One pengekodan panas.
  • Mengandungi kelas pemilih ciri untuk memilih ciri yang sesuai.
  • Unit fizikal ciri boleh diluluskan dan ciri yang boleh dihubungkaitkan dikira.
  • Mengandungi teorem Buckingham Pi – digunakan untuk pengiraan tanpa dimensi kuantiti. Hanya digunakan untuk data jadual.
  • Hanya digunakan untuk data jadual.

AutoML - Pembelajaran Mesin Automatik dalam istilah mudah boleh ditakrifkan sebagai konsep carian, dengan algoritma carian khusus untuk mencari penyelesaian optimum bagi setiap bahagian komponen saluran paip ML. Ia termasuk: Kejuruteraan Ciri Automatik, Pengoptimuman AutomatedHyperparameter, ) Carian Seni Bina Neural(NAS

Isu Biasa dan Amalan Terbaik dalam Kejuruteraan Ciri

Isu Biasa

  • Mengabaikan ciri yang tidak berkaitan: Ini boleh mengakibatkan model dengan prestasi ramalan yang lemah, kerana ciri yang tidak berkaitan tidak menyumbang kepada output dan mungkin menambah hingar pada data. Kesilapan itu disebabkan oleh kekurangan pemahaman dan analisis hubungan antara set data yang berbeza dan pembolehubah sasaran.

Bayangkan perniagaan yang ingin menggunakan pembelajaran mesin untuk meramalkan jualan bulanan. Mereka memasukkan data seperti kiraan pekerja dan saiz pejabat, yang tidak mempunyai hubungan dengan volum jualan.
Betulkan: Elakkan perkara ini dengan menjalankan analisis ciri yang teliti untuk memahami pembolehubah data yang diperlukan dan alih keluar pembolehubah data yang tidak.

  • Terlebih pemasangan daripada terlalu banyak ciri: Model mungkin mempunyai prestasi sempurna pada data latihan (kerana ia telah 'menghafal' data dengan berkesan) tetapi mungkin berprestasi buruk pada data baharu yang tidak kelihatan. Ini dikenali sebagai overfitting. Kesilapan ini biasanya disebabkan oleh salah tanggapan bahawa "lebih banyak adalah lebih baik." Menambah terlalu banyak ciri pada model boleh membawa kepada kerumitan yang besar, menjadikan model lebih sukar untuk ditafsirkan.

Pertimbangkan apl yang meramalkan pertumbuhan pengguna masa hadapan yang memasukkan 100 ciri ke dalam model mereka, tetapi kebanyakannya berkongsi maklumat bertindih.
Betulkan: Hadapi ini dengan menggunakan strategi seperti pengurangan dimensi dan pemilihan ciri untuk meminimumkan bilangan input, sekali gus mengurangkan kerumitan model.

  • Tidak menormalkan ciri: Algoritma mungkin memberi lebih berat kepada ciri dengan skala yang lebih besar, yang boleh membawa kepada ramalan yang tidak tepat. Kesilapan ini sering berlaku disebabkan oleh kekurangan pemahaman tentang cara algoritma pembelajaran mesin berfungsi. Kebanyakan algoritma berprestasi lebih baik jika semua ciri berada pada skala yang sama.

Bayangkan penyedia penjagaan kesihatan menggunakan umur pesakit dan tahap pendapatan untuk meramalkan risiko penyakit tertentu tetapi tidak menormalkan ciri ini, yang mempunyai skala yang berbeza.
Betulkan: Gunakan teknik penskalaan ciri untuk membawa semua pembolehubah ke dalam skala yang sama untuk mengelakkan isu ini.

  • Mengabaikan mengendalikan nilai yang hilang Model boleh berkelakuan tidak dapat diramalkan apabila berhadapan dengan nilai yang hilang, kadangkala membawa kepada ramalan yang salah. Perangkap ini sering berlaku kerana kesilapan atau andaian bahawa kehadiran nilai yang hilang tidak akan menjejaskan model.

Contohnya, peruncit dalam talian yang meramalkan perpindahan pelanggan menggunakan data sejarah pembelian tetapi tidak menangani kejadian yang data pembelian tiada.
Betulkan: Laksanakan strategi untuk menangani nilai yang hilang, seperti imputasi data, di mana anda menggantikan nilai yang hilang dengan anggaran statistik.

Amalan Terbaik

  • Pastikan untuk mengendalikan data yang hilang dalam ciri input anda: Dalam kes dunia sebenar di mana projek bertujuan untuk meramalkan harga perumahan, tidak semua entri data mungkin mempunyai maklumat tentang umur rumah. Daripada membuang entri ini, anda boleh mengaitkan data yang hilang dengan menggunakan strategi seperti "imputasi min", di mana nilai purata umur rumah daripada set data digunakan. Dengan mengendalikan data yang hilang dengan betul dan bukannya membuangnya sahaja, model akan mempunyai lebih banyak data untuk dipelajari, yang boleh membawa kepada prestasi model yang lebih baik.

  • Gunakan pengekodan satu-panas untuk data kategori: Contohnya, jika kita mempunyai ciri "warna" dalam set data tentang kereta, dengan kemungkinan nilai "merah," "biru" dan "hijau," kami akan mengubahnya menjadi tiga ciri binari yang berasingan: "is_red," "is_blue," dan "is_green." Strategi ini membolehkan model mentafsir data kategori dengan betul, meningkatkan kualiti penemuan dan ramalan model.

  • Bedenken Sie die Feature-Skalierung: Als reales Beispiel kann ein Datensatz zur Vorhersage einer Krankheit das Alter in Jahren (1100) und Glukosespiegelmessungen (70180) enthalten. Durch die Skalierung werden diese beiden Merkmale auf die gleiche Skala gebracht, sodass beide gleichermaßen zu Entfernungsberechnungen beitragen können, wie im KNN-Algorithmus (K-Nearest Neighbors). Die Feature-Skalierung kann die Leistung vieler Algorithmen für maschinelles Lernen verbessern, sie effizienter machen und die Rechenzeit verkürzen.

  • Erstellen Sie gegebenenfalls Interaktionsfunktionen: Ein Beispiel könnte die Vorhersage von Interaktionen mit Immobilienpreisen sein, was von Vorteil sein kann. Das Erstellen einer neuen Funktion, die die Anzahl der Badezimmer mit der Gesamtquadratfläche multipliziert, kann dem Modell wertvolle neue Informationen liefern. Interaktionsfunktionen können Muster in den Daten erfassen, die lineare Modelle sonst nicht erkennen würden, und so möglicherweise die Modellleistung verbessern.

  • Irrelevante Funktionen entfernen: Bei einem Problem, bei dem wir den Preis eines Smartphones vorhersagen müssen, hat die Farbe des Smartphones möglicherweise nur einen geringen Einfluss auf die Vorhersage und kann weggelassen werden. Das Entfernen irrelevanter Funktionen kann Ihr Modell vereinfachen, es schneller und besser interpretierbar machen und das Risiko einer Überanpassung verringern.

Feature Engineering ist nicht nur ein Vorverarbeitungsschritt beim maschinellen Lernen; Dies ist ein grundlegender Aspekt, der über den Erfolg Ihrer Modelle entscheiden kann. Ausgereifte Funktionen können zu genaueren Vorhersagen und einer besseren Verallgemeinerung führen. Datendarstellung: Funktionen dienen als Grundlage für die Arbeit von Algorithmen für maschinelles Lernen. Durch die effektive Darstellung von Daten ermöglicht Feature Engineering Algorithmen, sinnvolle Muster zu erkennen. Daher müssen angehende und sogar erfahrene Datenwissenschaftler sowie Enthusiasten und Ingenieure des maschinellen Lernens die entscheidende Rolle erkennen, die Feature Engineering bei der Gewinnung aussagekräftiger Erkenntnisse aus Daten spielt. Wenn man die Kunst des Feature-Engineerings versteht und gut anwendet, kann man das wahre Potenzial von Algorithmen für maschinelles Lernen erschließen und wirkungsvolle Lösungen in verschiedenen Bereichen vorantreiben.

Wenn Sie Fragen haben oder Möglichkeiten zur Verbesserung meines Artikels haben, hinterlassen Sie diese bitte im Kommentarbereich. Vielen Dank!

Atas ialah kandungan terperinci Kejuruteraan Ciri: Membuka Kunci Kuasa Data untuk Model Pembelajaran Mesin Unggul. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
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