Rumah >pembangunan bahagian belakang >Tutorial Python >Kejuruteraan Ciri: Membuka Kunci Kuasa Data untuk Model Pembelajaran Mesin Unggul
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:
# 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']])
# Impute Work_Experience feature by its mean in our dataset df['Work_Experience'] = df['Work_Experience'].fillna(df['Work_Experience'].mean())
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:
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:
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
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.
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.
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.
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!