Kolom Campuran
Termasuk bagian Pembelajaran Terawasi dalam perjalanan Machine Learning di Coddy. Pelajaran 46 dari 58.
Sebagian besar tabel mencampurkan kata dan angka, dan setiap jenis memerlukan langkahnya sendiri. ColumnTransformer mengirim setiap kolom ke langkahnya lalu menggabungkan hasilnya:
Untuk toko kaset, dalam kode:
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
prep = ColumnTransformer([
("words", OneHotEncoder(), ["genre", "condition"]),
("numbers", StandardScaler(), ["price", "year"]),
])
pipe = make_pipeline(prep, LogisticRegression(max_iter=1000))Setiap entri berisi nama, langkah, dan kolomnya. Tidak seperti get_dummies, encoder mengingat kategori pelatihan, sehingga satu record baru mendapatkan 7 kolom yang sama.
Tantangan
SedangSebuah klub catur ingin mengetahui peluang menang setiap pemain sebelum pertandingan. Kode awal memisahkan chess.csv dan membaca data pertandingan malam ini.
- Encode
openingdancolor, lakukan penskalaan padarating_gapdanminutes, lalu cetak jumlah kolom yang dihasilkan dari baris pelatihan. - Rangkai dengan regresi logistik, lakukan fitting, lalu cetak akurasi pengujian.
- Cetak peluang menang malam ini.
Klub lain, tiga opening, dan sicilian, black, 50, 15:
Columns after preparing: 7
Test accuracy: 0.805
Win chance: 0.66Coba sendiri
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.pipeline import make_pipeline
# Pertandingan sebuah klub catur: pembukaan, warna bidak pemain, rating pemain dikurangi
# rating lawan, menit yang tersisa di jam, dan apakah pemain menang (1) atau tidak (0)
games = pd.read_csv("chess.csv")
X = games[["opening", "color", "rating_gap", "minutes"]]
y = games["won"]
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=0)
# Pertandingan malam ini, satu baris dengan kolom yang sama
game = pd.DataFrame({"opening": [input()], "color": [input()],
"rating_gap": [int(input())], "minutes": [int(input())]})
# Tulis kodemu di bawah ini
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Pembelajaran Terawasi
1Model Pertamamu
Belajar dari ContohData Latih dan Data UjiMelatih dan MemprediksiMenilai ModelRangkuman: Penyortir Benih4Regresi Logistik
Prediksi Ya atau TidakAmbang KeputusanBobot sebagai BuktiBeberapa KelasRangkuman: Filter Spam7Overfitting
Underfitting dan OverfittingKurva PembelajaranRegularisasiSet ValidasiRingkasan: Menyetel Pohon10Pipeline
PipelineKolom CampuranMengisi Nilai Kosong dalam PipelineMenyetel PipelineRangkuman: Bersihkan dan Prediksi2Tetangga Terdekat
Cara k-NN MenentukanMemilih kBatas KeputusanPenskalaan untuk TetanggaRingkasan: Tetangga Wine5Mengukur Model Klasifikasi
Matriks KonfusiPresisi dan RecallSkor F1Kelas Tidak SeimbangKurva ROCRangkuman: Tes SkriningLatihan sendiri: Compiler Python online