Referensi Transformasi Data - Amazon Machine Learning

Kami tidak lagi memperbarui layanan Amazon Machine Learning atau menerima pengguna baru untuk itu. Dokumentasi ini tersedia untuk pengguna yang sudah ada, tetapi kami tidak lagi memperbaruinya. Untuk informasi selengkapnya, lihatApa itu Amazon Machine Learning.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Referensi Transformasi Data

Transformasi N-gram

Transformasi n-gram mengambil variabel teks sebagai input dan menghasilkan string yang sesuai dengan menggeser jendela (user-configurable) n kata, menghasilkan output dalam proses. Misalnya, perhatikan string teks “Saya sangat menikmati membaca buku ini”.

Menentukan transformasi n-gram dengan ukuran jendela = 1 hanya memberi Anda semua kata individual dalam string itu:

{"I", "really", "enjoyed", "reading", "this", "book"}

Menentukan transformasi n-gram dengan ukuran jendela =2 memberi Anda semua kombinasi dua kata serta kombinasi satu kata:

{"I really", "really enjoyed", "enjoyed reading", "reading this", "this book", "I", "really", "enjoyed", "reading", "this", "book"}

Menentukan transformasi n-gram dengan ukuran jendela = 3 akan menambahkan kombinasi tiga kata ke daftar ini, menghasilkan hal berikut:

{"I really enjoyed", "really enjoyed reading", "enjoyed reading this", "reading this book", "I really", "really enjoyed", "enjoyed reading", "reading this", "this book", "I", "really", "enjoyed", "reading", "this", "book"}

Anda dapat meminta n-gram dengan ukuran mulai dari 2-10 kata. N-gram dengan ukuran 1 dihasilkan secara implisit untuk semua input yang jenisnya ditandai sebagai teks dalam skema data, sehingga Anda tidak perlu memintanya. Akhirnya, perlu diingat bahwa n-gram dihasilkan dengan melanggar data input pada karakter spasi. Itu berarti bahwa, misalnya, karakter tanda baca akan dianggap sebagai bagian dari token kata: menghasilkan n-gram dengan jendela 2 untuk string “merah, hijau, biru” akan menghasilkan {"merah,”, “hijau,”, “biru,”, “merah, hijau”, “hijau, biru"}. Anda dapat menggunakan prosesor penghilang tanda baca (dijelaskan nanti dalam dokumen ini) untuk menghapus simbol tanda baca jika ini bukan yang Anda inginkan.

Untuk menghitung n-gram ukuran jendela 3 untuk variabel var1:

"ngram(var1, 3)"

Transformasi Orthogonal Sparse Bigram (OSB)

Transformasi OSB dimaksudkan untuk membantu dalam analisis string teks dan merupakan alternatif untuk transformasi bi-gram (n-gram dengan ukuran jendela 2). OSB dihasilkan dengan menggeser jendela ukuran n di atas teks, dan mengeluarkan setiap pasangan kata yang menyertakan kata pertama di jendela.

Untuk membangun setiap OSB, kata-kata penyusunnya digabungkan dengan karakter “_” (garis bawah), dan setiap token yang dilewati ditunjukkan dengan menambahkan garis bawah lain ke OSB. Dengan demikian, OSB mengkodekan bukan hanya token yang terlihat di dalam jendela, tetapi juga indikasi jumlah token yang dilewati dalam jendela yang sama.

Untuk mengilustrasikan, pertimbangkan string “Rubah coklat cepat melompati dog malas”, dan OSBs ukuran 4. Enam jendela empat kata, dan dua jendela terakhir yang lebih pendek dari akhir string ditunjukkan dalam contoh berikut, serta OSBs yang dihasilkan dari masing-masing:

Jendela, {OSBs dihasilkan}

"The quick brown fox", {The_quick, The__brown, The___fox} "quick brown fox jumps", {quick_brown, quick__fox, quick___jumps} "brown fox jumps over", {brown_fox, brown__jumps, brown___over} "fox jumps over the", {fox_jumps, fox__over, fox___the} "jumps over the lazy", {jumps_over, jumps__the, jumps___lazy} "over the lazy dog", {over_the, over__lazy, over___dog} "the lazy dog", {the_lazy, the__dog} "lazy dog", {lazy_dog}

Orthogonal bigrams jarang adalah alternatif untuk n-gram yang mungkin bekerja lebih baik dalam beberapa situasi. Jika data Anda memiliki bidang teks besar (10 kata atau lebih), bereksperimen untuk melihat mana yang bekerja lebih baik. Perhatikan bahwa apa yang merupakan bidang teks besar dapat bervariasi tergantung pada situasi. Namun, dengan bidang teks yang lebih besar, OSBs telah ditunjukkan secara empiris untuk mewakili teks secara unik karena khususmelewatkansimbol (garis bawah).

Anda dapat meminta ukuran jendela 2 sampai 10 untuk transformasi OSB pada variabel teks input.

Untuk menghitung OSB dengan ukuran jendela 5 untuk variabel var1:

“osb (var1, 5)”

Transformasi huruf kecil

Prosesor transformasi huruf kecil mengubah input teks menjadi huruf kecil. Misalnya, mengingat input “The Quick Brown Fox Jumps Over the Lazy Dog”, prosesor akan menampilkan “rubah coklat cepat melompati dog malas”.

Untuk menerapkan transformasi huruf kecil ke variabel var1:

“huruf kecil (var1)”

Hapus Transformasi Tanda baca

Amazon IL secara implisit membagi input yang ditandai sebagai teks dalam skema data pada spasi. Tanda baca dalam string berakhir baik token kata yang berdampingan, atau sebagai token terpisah seluruhnya, tergantung pada spasi yang mengelilinginya. Jika ini tidak diinginkan, transformasi penghilang tanda baca dapat digunakan untuk menghapus simbol tanda baca dari fitur yang dihasilkan. Misalnya, mengingat string “Selamat datang di AML - silakan kencangkan sabuk pengaman Anda!” , set token berikut ini secara implisit dihasilkan:

{"Welcome", "to", "Amazon", "ML", "-", "please", "fasten", "your", "seat-belts!"}

Menerapkan prosesor penghilang tanda baca ke string ini menghasilkan set ini:

{"Welcome", "to", "Amazon", "ML", "please", "fasten", "your", "seat-belts"}

Perhatikan bahwa hanya tanda baca awalan dan akhiran yang dihapus. Tanda baca yang muncul di tengah token, misalnya tanda hubung di “sabuk pengaman”, tidak dilepas.

Untuk menerapkan penghapusan tanda baca ke variabel var1:

“no_punct (var1)”

Transformasi Binning

Prosesor binning mengambil dua input, variabel numerik dan parameter yang disebutnomor bin, dan output variabel kategoris. Tujuannya adalah untuk menemukan non-linearitas dalam distribusi variabel dengan mengelompokkan nilai-nilai yang diamati bersama-sama.

Dalam banyak kasus, hubungan antara variabel numerik dan target tidak linear (nilai variabel numerik tidak meningkat atau menurun secara monoton dengan target). Dalam kasus seperti itu, mungkin berguna untuk bin fitur numerik ke dalam fitur kategoris yang mewakili rentang yang berbeda dari fitur numerik. Setiap nilai fitur kategoris (bin) kemudian dapat dimodelkan sebagai memiliki hubungan linier sendiri dengan target. Misalnya, katakanlah Anda tahu bahwa fitur numerik kontinuaccount_agetidak berkorelasi linear dengan kemungkinan untuk membeli buku. Anda dapat bin usia ke fitur kategoris yang mungkin dapat menangkap hubungan dengan target lebih akurat.

Prosesor binning kuantil dapat digunakan untuk menginstruksikan Amazon FL untuk membuat n bin dengan ukuran yang sama berdasarkan distribusi semua nilai input dari variabel usia, dan kemudian mengganti setiap nomor dengan token teks yang berisi bin. Jumlah optimum sampah untuk variabel numerik tergantung pada karakteristik variabel dan hubungannya dengan target, dan ini paling baik ditentukan melalui eksperimen. Amazon IL menyarankan nomor bin optimal untuk fitur numerik berdasarkan statistik data diResep yang disarankan.

Anda dapat meminta antara 5 dan 1000 sampah kuantil untuk dihitung untuk setiap variabel input numerik.

Untuk contoh berikut menunjukkan bagaimana menghitung dan menggunakan 50 sampah di tempat variabel numerik var1:

“quantile_bin (var1, 50)”

Transformasi Normalisasi

Transformator normalisasi menormalkan variabel numerik untuk memiliki rata-rata nol dan varians satu. Normalisasi variabel numerik dapat membantu proses pembelajaran jika ada perbedaan rentang yang sangat besar antara variabel numerik karena variabel dengan besarnya tertinggi bisa mendominasi model ML-nya, tidak peduli apakah fitur ini informatif sehubungan dengan target atau tidak.

Untuk menerapkan transformasi ini ke variabel numerik var1, tambahkan ini ke resep:

menormalkan (var1)

Transformator ini juga dapat mengambil kelompok didefinisikan pengguna variabel numerik atau kelompok yang telah ditentukan untuk semua variabel numerik (ALL_NUMERIC) sebagai masukan:

menormalkan (ALL_NUMERIC)

Catatan

Hal initidakwajib untuk menggunakan prosesor normalisasi untuk variabel numerik.

Transformasi Produk Cartesian

Transformasi Cartesian menghasilkan permutasi dari dua atau lebih teks atau variabel input kategoris. Transformasi ini digunakan ketika interaksi antara variabel dicurigai. Misalnya, pertimbangkan dataset pemasaran bank yang digunakan dalam Tutorial: Menggunakan Amazon IL untuk Memprediksi Respons terhadap Penawaran Pemasaran. Dengan menggunakan dataset ini, kami ingin memprediksi apakah seseorang akan menanggapi promosi bank secara positif, berdasarkan informasi ekonomi dan demografis. Kita mungkin menduga bahwa tipe pekerjaan seseorang agak penting (mungkin ada korelasi antara dipekerjakan di bidang-bidang tertentu dan memiliki uang yang tersedia), dan tingkat pendidikan tertinggi yang dicapai juga penting. Kita mungkin juga memiliki intuisi yang lebih dalam bahwa ada sinyal kuat dalam interaksi kedua variabel ini—misalnya, bahwa promosi ini sangat cocok untuk pelanggan yang merupakan pengusaha yang mendapatkan gelar sarjana universitas.

Transformasi produk Cartesian mengambil variabel kategoris atau teks sebagai masukan, dan menghasilkan fitur baru yang menangkap interaksi antara variabel input ini. Secara khusus, untuk setiap contoh pelatihan, itu akan menciptakan kombinasi fitur, dan menambahkannya sebagai fitur mandiri. Misalnya, katakanlah baris input yang disederhanakan terlihat seperti ini:

target, pendidikan, pekerjaan

0, university.degree, teknisi

0, high.school, layanan

1, university.degree, admin

Jika kita menentukan bahwa transformasi Cartesian akan diterapkan pada variabel kategoris pendidikan dan bidang pekerjaan, fitur yang dihasilkan education_job_interaction akan terlihat seperti ini:

target, education_job_interaction

0, university.degree_technician

0, high.school_services

1, university.degree_admin

Transformasi Cartesian bahkan lebih kuat ketika datang untuk bekerja pada urutan token, seperti halnya ketika salah satu argumennya adalah variabel teks yang secara implisit atau eksplisit dibagi menjadi token. Misalnya, pertimbangkan tugas mengklasifikasikan buku sebagai buku teks atau tidak. Secara intuitif, kita mungkin berpikir bahwa ada sesuatu tentang judul buku yang dapat memberi tahu kita bahwa itu adalah buku teks (kata-kata tertentu mungkin lebih sering terjadi dalam judul buku teks), dan kita mungkin juga berpikir bahwa ada sesuatu tentang pengikatan buku yang prediktif (buku teks lebih mungkin menjadi hardcover), tapi itu benar-benar kombinasi dari beberapa kata dalam judul dan mengikat yang paling prediktif. Untuk contoh dunia nyata, tabel berikut menunjukkan hasil penerapan prosesor Cartesian ke variabel input yang mengikat dan judul:

Buku Teks Judul Mengikat Produk Cartesian dari no_punct (Judul) dan Binding
1 Ekonomi: Prinsip, Masalah, Kebijakan Hardcover {"Economics_Hardcover”, “Prinsip_Hardcover”, “Problems_Hardcover”, “Policies_Hardcover"}
0 Hati Tak Terlihat: Romance Ekonomi Softcover {"The_Softcover”, “Invisible_Softcover”, “Heart_Softcover”, “An_Softcover”, “Economics_Softcover”, “Romance_Softcover"}
0 Menyenangkan Dengan Masalah Softcover {"Fun_Softcover”, “With_Softcover”, “Problems_Softcover"}

Contoh berikut menunjukkan cara menerapkan transformator Cartesian ke var1 dan var2:

cartesian (var1, var2)