Halo, pembaca! Dalam artikel ini, kita akan fokus pada salah satu teknik pra-pemrosesan terpenting dalam Python – Standardisasi menggunakan fungsi StandardScaler() . Jadi, mari kita mulai!!
js berikutnya vs nestjs
- 1 Kebutuhan akan Standardisasi
- 2 Python sklearn StandardScaler() fungsi
- 3 Standarisasi data dengan fungsi StandardScaler()
- 4. Kesimpulan
Perlunya Standardisasi
Sebelum masuk ke Standardisasi, mari kita pahami dulu konsep Scaling.
penskalaan Fitur merupakan langkah penting dalam pemodelan algoritma dengan dataset. Data yang biasanya digunakan untuk tujuan pemodelan diturunkan melalui berbagai cara seperti:
bagaimana menjaga bot perselisihan Anda online 24 7
- Daftar pertanyaan
- Survei
- Riset
- Menggores , dll.
Jadi, data yang diperoleh berisi fitur dari berbagai dimensi dan skala sekaligus. Skala yang berbeda dari fitur data mempengaruhi pemodelan set data secara negatif.
Ini mengarah pada hasil prediksi yang bias dalam hal kesalahan klasifikasi dan tingkat akurasi. Oleh karena itu, perlu dilakukan penskalaan data sebelum pemodelan.
cara menggunakan sin di python
#pembelajaran mesin #python
www.journaldev.com
Menggunakan Fungsi StandardScaler() untuk Menstandarkan Data Python. Pada artikel ini, kita akan berfokus pada salah satu teknik pra-pemrosesan terpenting dalam Python – Standardisasi menggunakan fungsi StandardScaler().
Jawaban di atas sangat bagus, tetapi saya membutuhkan contoh sederhana untuk meringankan beberapa kekhawatiran yang saya miliki di masa lalu. Saya ingin memastikan itu memang memperlakukan masing-masing kolom secara terpisah. Saya sekarang diyakinkan dan tidak dapat menemukan contoh apa yang membuat saya prihatin. Semua kolomADALAHdiskalakan secara terpisah seperti dijelaskan oleh yang di atas.
KODE
import pandas as pd import scipy.stats as ss from sklearn.preprocessing import StandardScaler data= [[1, 1, 1, 1, 1],[2, 5, 10, 50, 100],[3, 10, 20, 150, 200],[4, 15, 40, 200, 300]] df = pd.DataFrame(data, columns=['N0', 'N1', 'N2', 'N3', 'N4']).astype('float64') sc_X = StandardScaler() df = sc_X.fit_transform(df) num_cols = len(df[0,:]) for i in range(num_cols): col = df[:,i] col_stats = ss.describe(col) print(col_stats)KELUARAN
DescribeResult(nobs=4, minmax=(-1.3416407864998738, 1.3416407864998738), mean=0.0, variance=1.3333333333333333, skewness=0.0, kurtosis=-1.3599999999999999) DescribeResult(nobs=4, minmax=(-1.2828087129930659, 1.3778315806221817), mean=-5.551115123125783e-17, variance=1.3333333333333337, skewness=0.11003776770595125, kurtosis=-1.394993095506219) DescribeResult(nobs=4, minmax=(-1.155344148338584, 1.53471088361394), mean=0.0, variance=1.3333333333333333, skewness=0.48089217736510326, kurtosis=-1.1471008824318165) DescribeResult(nobs=4, minmax=(-1.2604572012883055, 1.2668071116222517), mean=-5.551115123125783e-17, variance=1.3333333333333333, skewness=0.0056842140599118185, kurtosis=-1.6438177182479734) DescribeResult(nobs=4, minmax=(-1.338945389819976, 1.3434309690153527), mean=5.551115123125783e-17, variance=1.3333333333333333, skewness=0.005374558840039456, kurtosis=-1.3619131970819205)Fitur Skala
Jika data Anda memiliki nilai yang berbeda, dan bahkan unit pengukuran yang berbeda, akan sulit untuk membandingkannya. Berapa kilogram dibandingkan dengan meter? Atau ketinggian dibandingkan dengan waktu?
Jawaban untuk masalah ini adalah menggunakan penskalaan. Kita dapat menskalakan data menjadi nilai baru yang lebih mudah untuk dibandingkan.
Perhatikan tabel di bawah ini, ini adalah kumpulan data yang sama yang kami gunakan di bab regresi berganda, tetapi kali ini kolom volume berisi nilai dalam liter, bukan cm3 (1.0, bukan 1000).
Car | Model | Volume | Weight | CO2 |
Toyota | Aygo | 1.0 | 790 | 99 |
Mitsubishi | Space Star | 1.2 | 1160 | 95 |
Skoda | Citigo | 1.0 | 929 | 95 |
Fiat | 500 | 0.9 | 865 | 90 |
Mini | Cooper | 1.5 | 1140 | 105 |
VW | Up! | 1.0 | 929 | 105 |
Skoda | Fabia | 1.4 | 1109 | 90 |
Mercedes | A-Class | 1.5 | 1365 | 92 |
Ford | Fiesta | 1.5 | 1112 | 98 |
Audi | A1 | 1.6 | 1150 | 99 |
Hyundai | I20 | 1.1 | 980 | 99 |
Suzuki | Swift | 1.3 | 990 | 101 |
Ford | Fiesta | 1.0 | 1112 | 99 |
Honda | Civic | 1.6 | 1252 | 94 |
Hundai | I30 | 1.6 | 1326 | 97 |
Opel | Astra | 1.6 | 1330 | 97 |
BMW | 1 | 1.6 | 1365 | 99 |
Mazda | 3 | 2.2 | 1280 | 104 |
Skoda | Rapid | 1.6 | 1119 | 104 |
Ford | Focus | 2.0 | 1328 | 105 |
Ford | Mondeo | 1.6 | 1584 | 94 |
Opel | Insignia | 2.0 | 1428 | 99 |
Mercedes | C-Class | 2.1 | 1365 | 99 |
Skoda | Octavia | 1.6 | 1415 | 99 |
Volvo | S60 | 2.0 | 1415 | 99 |
Mercedes | CLA | 1.5 | 1465 | 102 |
Audi | A4 | 2.0 | 1490 | 104 |
Audi | A6 | 2.0 | 1725 | 114 |
Volvo | V70 | 1.6 | 1523 | 109 |
BMW | 5 | 2.0 | 1705 | 114 |
Mercedes | E-Class | 2.1 | 1605 | 115 |
Volvo | XC70 | 2.0 | 1746 | 117 |
Ford | B-Max | 1.6 | 1235 | 104 |
BMW | 2 | 1.6 | 1390 | 108 |
Opel | Zafira | 1.6 | 1405 | 109 |
Mercedes | SLK | 2.5 | 1395 | 120 |
Sulit untuk membandingkan volume 1.0 dengan berat 790, tetapi jika kita menskalakan keduanya menjadi nilai yang dapat dibandingkan, kita dapat dengan mudah melihat seberapa besar satu nilai dibandingkan dengan yang lain.
Ada beberapa metode penskalaan data, dalam tutorial ini kita akan menggunakan metode yang disebut standardisasi.
Metode standardisasi menggunakan rumus ini:
z = (x – u) / s
Di mana z adalah nilai baru, x adalah nilai asli, u adalah mean dan s adalah standar deviasi.
Jika kita mengambil kolom berat dari kumpulan data di atas, nilai pertama adalah 790, dan nilai skala adalah:
(790 – 1292,23) / 238,74 = -2,1
Jika kita mengambil kolom volume dari kumpulan data di atas, nilai pertama adalah 1.0, dan nilai skala adalah:
(1,0 – 1,61) / 0,38 = -1,59
Sekarang kita dapat membandingkan -2,1 dengan -1,59 daripada membandingkan 790 dengan 1,0.
Kita tidak perlu melakukannya secara manual, karena modul sklearn Python memiliki metode yang disebut StandardScaler() yang mengembalikan objek Scaler dengan metode untuk mengubah kumpulan data.
Contoh:
Skala semua nilai di kolom Bobot dan Volume
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.csv") X = df[['Weight', 'Volume']] scaledX = scale.fit_transform(X) print(scaledX)
Memprediksi Nilai CO2
Tugas pada bab Regresi Ganda adalah memprediksi emisi CO2 dari sebuah mobil ketika kita hanya mengetahui berat dan volumenya.
Saat kumpulan data diskalakan, kita harus menggunakan skala saat memprediksi nilai:
Contoh:
Prediksi emisi CO2 dari mobil 1,3 liter yang memiliki berat 2.300 kilogram
import pandas from sklearn import linear_model from sklearn.preprocessing import StandardScaler scale = StandardScaler() df = pandas.read_csv("cars2.csv") X = df[['Weight', 'Volume']] y = df['CO2'] scaledX = scale.fit_transform(X) regr = linear_model.LinearRegression() regr.fit(scaledX, y) scaled = scale.transform([[2300, 1.3]]) predictedCO2 = regr.predict([scaled[0]]) print(predictedCO2)