Scikit-learn adalah pustaka pembelajaran mesin perangkat lunak gratis untuk bahasa pemrograman Python. Ini fitur berbagai klasifikasi, regresi, algoritma pengelompokan, dan alat yang efisien untuk penambangan data dan analisis data. Itu dibangun di atas NumPy, SciPy, dan Matplotlib
Contoh DasarBagian
1.
2.
3.
4.
5.
6.
7.
8.
9.
Kode di bawah ini menunjukkan langkah-langkah dasar menggunakan scikit-learn untuk membuat dan menjalankan model pada sekumpulan data
Langkah-langkah dalam kode termasuk. memuat data, membagi menjadi set pelatihan dan pengujian, menskalakan set, membuat model, menyesuaikan model pada data, menggunakan model terlatih untuk membuat prediksi pada set pengujian, dan terakhir mengevaluasi kinerja model
>>> from sklearn import neighbors, datasets, preprocessing>>> from sklearn.model_selection import train_test_split
>>> from sklearn.metrics import accuracy_score
>>> iris = datasets.load_iris()
>>> X,y = iris.data[:,:2], iris.target
>>> X_train, X_test, y_train, y_test = train_test_split(X,y)
>>> scaler = preprocessing_StandardScaler().fit(X_train)
>>> X_train = scaler.transform(X_train)
>>> X_test = scaler.transform(X_test)
>>> knn = neighbors.KNeighborsClassifier(n_neighbors = 5)
>>> knn.fit(X_train, y_train)
>>> y_pred = knn.predict(X_test)
>>> accuracy_score(y_test, y_pred)
Memuat Data
Data Anda harus numerik dan disimpan sebagai array NumPy atau matriks jarang SciPy. Tipe lain yang mengonversi ke array numerik, seperti Pandas DataFrame juga dapat diterima
>>> import numpy as np>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_
Data Pelatihan dan Uji
Membagi set data menjadi set pelatihan dan pengujian untuk variabel X dan y
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)
Pra-pemrosesan Data
Menyiapkan data sebelum model dipasang
Standardisasi
Standarisasikan fitur-fiturnya dengan menghapus rata-rata dan penskalaan ke varian satuan
>>> from sklearn.preprocessing import StandardScaler>>> scaler = StandardScaler().fit(X_train)
>>> standarized_X = scaler.transform(X_train)
>>> standarized_X_test = scaler.transform(X_test)
Normalisasi
Setiap sampel (mis. e. setiap baris matriks data) dengan setidaknya satu komponen bukan nol diskalakan ulang secara independen dari sampel lain sehingga normanya sama dengan satu
>>> from sklearn.preprocessing import Normalizer>>> scaler = Normalizer().fit(X_train)
>>> normalized_X = scaler.transform(X_train)
>>> normalized_X_test = scaler.transform(X_test)_
Binarisasi
Binarisasi data (atur nilai fitur ke 0 atau 1) sesuai ambang batas
>>> from sklearn.preprocessing import Binarizer>>> binarizer = Binarizer(threshold = 0.0).fit(X)
>>> binary_X = binarizer.transform(X_test)
Mengkodekan Fitur Kategorikal
Enkode label target dengan nilai antara 0 dan n_classes-1
>>> from sklearn import preprocessing>>> le = preprocessing.LabelEncoder()
>>> le.fit_transform(X_train)_
Memasukkan Nilai yang Hilang
Trafo imputasi untuk melengkapi nilai yang hilang
>>> from sklearn.impute import SimpleImputer>>> imp = SimpleImputer(missing_values = 0, strategy = 'mean')
>>> imp.fit_transform(X_train)
Menghasilkan Fitur Polinomial
Hasilkan matriks fitur baru yang terdiri dari semua kombinasi polinomial fitur dengan derajat kurang dari atau sama dengan derajat yang ditentukan
>>> poly = PolynomialFeatures(5)
>>> poly.fit_transform(X)_
Buat Model Anda
Penciptaan berbagai model pembelajaran terawasi dan tidak terawasi
Model Pembelajaran Terbimbing- Regresi linier
>>> lr = LinearRegression(normalize = True)_
- Mesin Vektor Dukungan (SVM)
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_0
- Naif Bayes
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_1
- KNN
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_2Model Pembelajaran Tanpa Pengawasan
- Analisis Komponen Utama (PCA)
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_3
- K berarti
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_4
Pemasangan Model
Menyesuaikan model pembelajaran yang diawasi dan tidak diawasi ke dalam data
Pembelajaran yang diawasi- Sesuaikan model dengan data
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_5 Pembelajaran tanpa pengawasan
- Sesuaikan model dengan data
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_6
- Sesuaikan dengan data, lalu ubah
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_7
Ramalan
Memprediksi set tes menggunakan model terlatih
- Prediksikan label
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_8
- Perkirakan probabilitas label
>>> X = np.random.random((10,5))array([[0.21069686, 0.33457064],
[0.23887117, 0.6093155 ],
[0.48848537, 0.62649292]])>>> y = np.array(['A','B','A'])array(['A', 'B', 'A'])_9
Evaluasi Performa Model Anda
Berbagai metrik regresi dan klasifikasi yang menentukan seberapa baik performa model pada set pengujian
Metrik Klasifikasi- Skor Akurasi
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)0
- Laporan Klasifikasi
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)1
- Matriks Kebingungan
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)2Metrik Regresi
- Berarti Kesalahan Mutlak
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)_3
- Kesalahan Kuadrat Rata-Rata
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)_4
- Skor R²
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)5Metrik Pengelompokan
- Indeks Rand yang Disesuaikan
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)6
- Homogenitas
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)7
- Ukuran V
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)8Validasi Silang
- Evaluasi skor dengan validasi silang
>>> X_train,X_test,y_train,y_test = train_test_split(X,y, random_state = 0)_9
Sesuaikan Model Anda
Menemukan nilai parameter yang benar yang akan memaksimalkan akurasi prediksi model
Pencarian KisiPencarian menyeluruh atas nilai parameter yang ditentukan untuk estimator. Contoh di bawah mencoba menemukan jumlah cluster yang tepat untuk menentukan knn guna memaksimalkan akurasi model
>>> from sklearn.preprocessing import StandardScaler>>> scaler = StandardScaler().fit(X_train)
>>> standarized_X = scaler.transform(X_train)
>>> standarized_X_test = scaler.transform(X_test)0Pengoptimalan Parameter Acak
Pencarian acak pada hyperparameter. Berbeda dengan Pencarian Kisi, tidak semua nilai parameter dicoba, melainkan sejumlah pengaturan parameter diambil sampelnya dari distribusi yang ditentukan. Jumlah pengaturan parameter yang dicoba diberikan oleh n_iter
>>> from sklearn.preprocessing import StandardScaler>>> scaler = StandardScaler().fit(X_train)
>>> standarized_X = scaler.transform(X_train)
>>> standarized_X_test = scaler.transform(X_test)1
Scikit-learn adalah perpustakaan yang sangat berguna untuk berbagai model pembelajaran mesin. Bagian di atas memberikan proses langkah demi langkah dasar untuk melakukan analisis pada model yang berbeda. Namun jika Anda ingin mempelajari lebih lanjut, lihat dokumentasi untuk Scikit-Learn, karena masih banyak fungsi berguna yang dapat Anda pelajari
Bergabunglah dengan daftar email saya dengan 5k+ orang untuk mendapatkan "Buklet Lembar Curang Python Lengkap untuk Ilmu Data" secara GRATIS