15 KiB
Memulai dengan Python dan Scikit-learn untuk model regresi
Sketchnote oleh Tomomi Imura
Kuis sebelum kuliah
Pelajaran ini tersedia dalam R!
Pendahuluan
Dalam empat pelajaran ini, Anda akan menemukan cara membangun model regresi. Kita akan membahas kegunaannya sebentar lagi. Tetapi sebelum Anda melakukan apa pun, pastikan Anda memiliki alat yang tepat untuk memulai prosesnya!
Dalam pelajaran ini, Anda akan belajar bagaimana:
- Mengonfigurasi komputer Anda untuk tugas pembelajaran mesin lokal.
- Bekerja dengan Jupyter Notebooks.
- Menggunakan Scikit-learn, termasuk instalasi.
- Mengeksplorasi regresi linier dengan latihan langsung.
Instalasi dan konfigurasi
🎥 Klik gambar di atas untuk video singkat yang menjelaskan cara mengonfigurasi komputer Anda untuk ML.
-
Install Python. Pastikan Python terpasang di komputer Anda. Anda akan menggunakan Python untuk banyak tugas data science dan machine learning. Kebanyakan sistem komputer sudah menyertakan instalasi Python. Ada juga Python Coding Packs yang berguna, untuk memudahkan pengaturan bagi beberapa pengguna.
Namun, beberapa penggunaan Python memerlukan satu versi perangkat lunak, sedangkan lainnya membutuhkan versi berbeda. Karena itu, berguna untuk bekerja dalam virtual environment.
-
Install Visual Studio Code. Pastikan Anda memiliki Visual Studio Code di komputer Anda. Ikuti petunjuk ini untuk menginstal Visual Studio Code untuk instalasi dasar. Anda akan menggunakan Python di Visual Studio Code dalam kursus ini, jadi Anda mungkin ingin belajar cara mengonfigurasi Visual Studio Code untuk pengembangan Python.
Kenali Python dengan bekerja melalui kumpulan modul Learn
🎥 Klik gambar di atas untuk video: menggunakan Python dalam VS Code.
-
Install Scikit-learn, dengan mengikuti petunjuk ini. Karena Anda perlu memastikan menggunakan Python 3, disarankan menggunakan virtual environment. Catatan, jika Anda menginstal perpustakaan ini di Mac M1, ada petunjuk khusus di halaman yang ditautkan di atas.
-
Install Jupyter Notebook. Anda perlu menginstal paket Jupyter.
Lingkungan penyusunan ML Anda
Anda akan menggunakan notebook untuk mengembangkan kode Python dan membuat model pembelajaran mesin. Jenis file ini adalah alat umum untuk ilmuwan data, dan dapat dikenali dari akhiran atau ekstensi .ipynb.
Notebook adalah lingkungan interaktif yang memungkinkan pengembang untuk menulis kode sekaligus menambahkan catatan dan dokumentasi di sekitar kode yang sangat membantu untuk proyek eksperimental atau riset.
🎥 Klik gambar di atas untuk video singkat yang menjelaskan latihan ini.
Latihan - bekerja dengan notebook
Dalam folder ini, Anda akan menemukan file notebook.ipynb.
-
Buka notebook.ipynb di Visual Studio Code.
Server Jupyter akan mulai dengan Python 3+ aktif. Anda akan menemukan area di notebook yang dapat
run, potongan kode. Anda dapat menjalankan blok kode dengan memilih ikon yang mirip tombol play. -
Pilih ikon
mddan tambahkan sedikit markdown, serta teks berikut # Selamat datang di notebook Anda.Selanjutnya, tambahkan beberapa kode Python.
-
Ketik print('hello notebook') dalam blok kode.
-
Pilih panah untuk menjalankan kodenya.
Anda akan melihat pernyataan tercetak:
hello notebook
Anda dapat menyisipkan kode Anda dengan komentar untuk mendokumentasikan notebook sendiri.
✅ Pikirkan sejenak bagaimana berbeda lingkungan kerja pengembang web dengan ilmuwan data.
Jalankan Scikit-learn
Sekarang Python sudah disiapkan di lingkungan lokal Anda, dan Anda sudah nyaman dengan Jupyter Notebooks, mari kita juga nyaman menggunakan Scikit-learn (baca sci seperti science). Scikit-learn menyediakan API ekstensif untuk membantu Anda melakukan tugas ML.
Menurut situs web mereka, "Scikit-learn adalah perpustakaan pembelajaran mesin sumber terbuka yang mendukung pembelajaran terawasi dan tak terawasi. Ia juga menyediakan berbagai alat untuk pemasangan model, prapengolahan data, pemilihan dan evaluasi model, dan banyak utilitas lainnya."
Dalam kursus ini, Anda akan menggunakan Scikit-learn dan alat lain untuk membangun model pembelajaran mesin untuk melakukan apa yang kami sebut tugas 'pembelajaran mesin tradisional'. Kami sengaja menghindari neural network dan deep learning, karena itu dibahas lebih baik di kurikulum 'AI untuk Pemula' yang akan datang.
Scikit-learn memudahkan membangun model dan mengevaluasinya untuk digunakan. Fokus utamanya menggunakan data numerik dan menyediakan beberapa dataset siap pakai sebagai alat pembelajaran. Ia juga termasuk model bawaan untuk dicoba oleh siswa. Mari jelajahi proses memuat data paket dan menggunakan estimator bawaan untuk model ML pertama dengan Scikit-learn menggunakan data dasar.
Latihan - notebook Scikit-learn pertama Anda
Tutorial ini terinspirasi oleh contoh regresi linier di situs Scikit-learn.
🎥 Klik gambar di atas untuk video singkat yang menjelaskan latihan ini.
Dalam file notebook.ipynb yang terkait dengan pelajaran ini, kosongkan semua sel dengan menekan ikon 'tempat sampah'.
Dalam bagian ini, Anda akan bekerja dengan dataset kecil tentang diabetes yang sudah terintegrasi dalam Scikit-learn untuk tujuan pembelajaran. Bayangkan Anda ingin menguji pengobatan untuk pasien diabetes. Model Pembelajaran Mesin dapat membantu menentukan pasien mana yang akan merespon lebih baik berdasarkan kombinasi variabel. Bahkan model regresi dasar, jika divisualisasikan, dapat menunjukkan informasi variabel yang membantu mengatur uji klinis teoretis Anda.
✅ Ada banyak jenis metode regresi, dan yang Anda pilih tergantung pada jawaban yang Anda cari. Jika ingin memprediksi tinggi badan yang mungkin untuk seseorang pada usia tertentu, gunakan regresi linier, karena Anda mencari nilai numerik. Jika ingin mengetahui apakah jenis masakan harus diklasifikasikan sebagai vegan atau tidak, Anda mencari penugasan kategori, sehingga Anda menggunakan regresi logistik. Anda akan belajar lebih tentang regresi logistik nanti. Pikirkan beberapa pertanyaan yang dapat diajukan pada data, dan metode mana yang lebih tepat digunakan.
Mari kita mulai tugas ini.
Impor pustaka
Untuk tugas ini kita akan mengimpor beberapa pustaka:
- matplotlib. Ini alat grafik yang berguna dan akan kita gunakan untuk membuat plot garis.
- numpy. numpy adalah pustaka berguna untuk menangani data numerik di Python.
- sklearn. Ini adalah pustaka Scikit-learn.
Impor beberapa pustaka untuk membantu tugas Anda.
-
Tambahkan import dengan mengetik kode berikut:
import matplotlib.pyplot as plt import numpy as np from sklearn import datasets, linear_model, model_selectionDi atas Anda mengimpor
matplotlib,numpydan mengimpordatasets,linear_modeldanmodel_selectiondarisklearn.model_selectiondigunakan untuk membagi data menjadi set pelatihan dan pengujian.
Dataset diabetes
Dataset bawaan diabetes berisi 442 sampel data diabetes, dengan 10 variabel fitur, beberapa di antaranya:
- age: usia dalam tahun
- bmi: indeks massa tubuh
- bp: tekanan darah rata-rata
- s1 tc: Sel-T (jenis sel darah putih)
✅ Dataset ini menyertakan konsep 'jenis kelamin' sebagai variabel fitur penting untuk penelitian diabetes. Banyak dataset medis menyertakan klasifikasi biner seperti ini. Pikirkan bagaimana kategorisasi seperti ini dapat mengecualikan bagian populasi tertentu dari pengobatan.
Sekarang, muat data X dan y.
🎓 Ingat, ini pembelajaran terawasi, dan kita membutuhkan target bernama 'y'.
Di sel kode baru, muat dataset diabetes dengan memanggil load_diabetes(). Input return_X_y=True menandakan bahwa X akan menjadi matriks data, dan y target regresi.
-
Tambahkan beberapa perintah print untuk menunjukkan bentuk matriks data dan elemen pertamanya:
X, y = datasets.load_diabetes(return_X_y=True) print(X.shape) print(X[0])Apa yang Anda dapatkan sebagai respons adalah tuple. Anda menetapkan dua nilai pertama tuple ke
Xdanymasing-masing. Pelajari lebih lanjut tentang tuple.Anda dapat melihat data ini memiliki 442 item yang berbentuk array dengan 10 elemen:
(442, 10) [ 0.03807591 0.05068012 0.06169621 0.02187235 -0.0442235 -0.03482076 -0.04340085 -0.00259226 0.01990842 -0.01764613]✅ Pikirkan hubungan antara data dan target regresi. Regresi linier memprediksi hubungan antara fitur X dan variabel target y. Bisakah Anda menemukan target untuk dataset diabetes dalam dokumentasi? Apa yang ditunjukkan dataset ini, berdasarkan target tersebut?
-
Selanjutnya, pilih sebagian dari dataset ini untuk dibuatkan plot dengan memilih kolom ke-3 dataset. Anda dapat melakukan ini dengan menggunakan operator
:untuk memilih semua baris, lalu memilih kolom ke-3 dengan indeks (2). Anda juga dapat mengubah bentuk data menjadi array 2D - sesuai kebutuhan plotting - dengan menggunakanreshape(n_rows, n_columns). Jika salah satu parameternya -1, dimensi yang sesuai dihitung secara otomatis.X = X[:, 2] X = X.reshape((-1,1))✅ Kapan saja, cetak data untuk memeriksa bentuknya.
-
Sekarang data sudah siap untuk diplot, lihat apakah mesin dapat membantu menentukan pemisahan logis antara angka dalam dataset ini. Untuk melakukan ini, Anda perlu membagi data (X) dan target (y) ke dalam set pengujian dan pelatihan. Scikit-learn menyediakan cara mudah untuk melakukan ini; Anda dapat membagi data pengujian pada titik tertentu.
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.33) -
Sekarang Anda siap melatih model! Muat model regresi linier dan latih dengan set pelatihan X dan y menggunakan
model.fit():model = linear_model.LinearRegression() model.fit(X_train, y_train)✅
model.fit()adalah fungsi yang akan Anda temui di banyak perpustakaan ML seperti TensorFlow -
Kemudian, buat prediksi menggunakan data uji, dengan fungsi
predict(). Ini akan digunakan untuk menggambar garis di antara kelompok datay_pred = model.predict(X_test) -
Sekarang saatnya menampilkan data dalam plot. Matplotlib adalah alat yang sangat berguna untuk tugas ini. Buat scatterplot dari semua data uji X dan y, dan gunakan prediksi untuk menggambar garis di tempat paling tepat, di antara pengelompokan data model.
plt.scatter(X_test, y_test, color='black') plt.plot(X_test, y_pred, color='blue', linewidth=3) plt.xlabel('Scaled BMIs') plt.ylabel('Disease Progression') plt.title('A Graph Plot Showing Diabetes Progression Against BMI') plt.show()✅ Pikirkan sejenak tentang apa yang sedang terjadi di sini. Sebuah garis lurus berjalan melalui banyak titik data kecil, tapi sebenarnya apa yang dilakukannya? Bisakah Anda melihat bagaimana seharusnya Anda bisa menggunakan garis ini untuk memprediksi di mana titik data baru yang belum terlihat harus ditempatkan relatif terhadap sumbu y pada plot? Cobalah untuk mengungkapkan dalam kata-kata kegunaan praktis dari model ini.
Selamat, Anda telah membangun model regresi linier pertama Anda, membuat prediksi dengannya, dan menampilkannya dalam sebuah plot!
🚀Tantangan
Plot variabel yang berbeda dari dataset ini. Petunjuk: edit baris ini: X = X[:,2]. Mengingat target dari dataset ini, apa yang dapat Anda temukan tentang perkembangan diabetes sebagai penyakit?
Kuis pasca kuliah
Tinjauan & Belajar Mandiri
Dalam tutorial ini, Anda bekerja dengan regresi linier sederhana, bukan regresi linier univariat atau multipel. Bacalah sedikit tentang perbedaan antara metode-metode ini, atau lihat video ini
Baca lebih lanjut tentang konsep regresi dan pikirkan jenis pertanyaan apa yang bisa dijawab dengan teknik ini. Ikuti tutorial ini untuk memperdalam pemahaman Anda.
Tugas
Penafian: Dokumen ini telah diterjemahkan menggunakan layanan terjemahan AI Co-op Translator. Meskipun kami berupaya untuk mencapai akurasi, harap diketahui bahwa terjemahan otomatis mungkin mengandung kesalahan atau ketidakakuratan. Dokumen asli dalam bahasa aslinya harus dianggap sebagai sumber yang sah. Untuk informasi penting, disarankan menggunakan terjemahan profesional oleh manusia. Kami tidak bertanggung jawab atas kesalahpahaman atau penafsiran yang keliru yang timbul dari penggunaan terjemahan ini.






