Visual Studio Code adalah editor kode sumber yang ringan. Kode Visual Studio sering disebut VS Code. Kode VS berjalan di desktop Anda. Ini tersedia untuk Windows, macOS, dan Linux
VS Code hadir dengan banyak fitur seperti IntelliSense, pengeditan kode, dan ekstensi yang memungkinkan Anda mengedit kode sumber Python secara efektif. Bagian terbaiknya adalah VS Code bersifat open-source dan gratis
Selain versi desktop, VS Code juga memiliki versi browser yang dapat Anda gunakan langsung di browser web Anda tanpa menginstalnya
Tutorial ini mengajarkan Anda cara menyiapkan Visual Studio Code untuk lingkungan Python sehingga Anda dapat mengedit, menjalankan, dan men-debug kode Python
Menyiapkan Kode Visual Studio
Untuk mengatur Kode VS, Anda mengikuti langkah-langkah ini
Pertama, navigasikan ke situs web resmi VS Code dan unduh kode VS berdasarkan platform Anda [Windows, macOS, atau Linux]
Kedua, luncurkan wizard penyiapan dan ikuti langkah-langkahnya
Setelah penginstalan selesai, Anda dapat meluncurkan aplikasi kode VS
Instal Ekstensi Python
Agar Kode VS berfungsi dengan Python, Anda perlu menginstal ekstensi Python dari Visual Studio Marketplace
Tutorial ini menunjukkan penggunaan Visual Studio Code dan ekstensi Microsoft Python dengan pustaka ilmu data umum untuk menjelajahi skenario ilmu data dasar. Khususnya, dengan menggunakan data penumpang dari Titanic, Anda akan mempelajari cara menyiapkan lingkungan ilmu data, mengimpor dan membersihkan data, membuat model pembelajaran mesin untuk memprediksi kelangsungan hidup di Titanic, dan mengevaluasi keakuratan model yang dihasilkan.
Prasyarat
Instalasi berikut diperlukan untuk menyelesaikan tutorial ini. Pastikan untuk menginstalnya jika Anda belum melakukannya
Kode Visual Studio
Ekstensi Python untuk VS Code dan ekstensi Jupyter untuk VS Code dari Visual Studio Marketplace. Secara default, ekstensi Python menginstal ekstensi Jupyter untuk Anda. Untuk detail selengkapnya tentang memasang ekstensi, lihat Extension Marketplace. Kedua ekstensi diterbitkan oleh Microsoft
Miniconda dengan Python 3. 9
Catatan. Jika Anda sudah menginstal distribusi Anaconda lengkap, Anda tidak perlu menginstal Miniconda. Alternatifnya, jika Anda memilih untuk tidak menggunakan Anaconda atau Miniconda, Anda dapat membuat lingkungan virtual Python dan menginstal paket yang diperlukan untuk tutorial menggunakan pip. Jika Anda mengikuti rute ini, Anda perlu menginstal paket-paket berikut. panda, jupyter, seaborn, scikit-learn, keras, dan tensorflow
Menyiapkan lingkungan ilmu data
Kode Visual Studio dan ekstensi Python menyediakan editor hebat untuk skenario ilmu data. Dengan dukungan asli untuk notebook Jupyter yang digabungkan dengan Anaconda, mudah untuk memulai. Di bagian ini, Anda akan membuat ruang kerja untuk tutorial, membuat lingkungan Anaconda dengan modul sains data yang diperlukan untuk tutorial, dan membuat notebook Jupyter yang akan Anda gunakan untuk membuat model pembelajaran mesin
Mulailah dengan membuat lingkungan Anaconda untuk tutorial ilmu data. Buka prompt perintah Anaconda dan jalankan
6 untuk membuat lingkungan bernama myenv. Untuk informasi tambahan tentang membuat dan mengelola lingkungan Anaconda, lihat dokumentasi Anacondadata.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Selanjutnya, buat folder di lokasi yang nyaman untuk dijadikan sebagai ruang kerja VS Code Anda untuk tutorial, beri nama
7data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Buka folder proyek di VS Code dengan menjalankan VS Code dan menggunakan perintah File > Open Folder. Anda dapat dengan aman mempercayai membuka folder, karena Anda yang membuatnya
Setelah VS Code diluncurkan, buat notebook Jupyter yang akan digunakan untuk tutorial. Buka Palet Perintah [ ⇧⌘P [Windows, Linux Ctrl+Shift+P]] and select Create: New Jupyter Notebook.
Catatan. Alternatifnya, dari VS Code File Explorer, Anda dapat menggunakan ikon New File untuk membuat file Notebook bernama
8data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Simpan file sebagai
_8 menggunakan File > Save Asdata.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Setelah file Anda dibuat, Anda akan melihat notebook Jupyter yang terbuka di editor notebook. Untuk informasi tambahan tentang dukungan notebook Jupyter asli, Anda dapat membaca topik Notebook Jupyter
Sekarang pilih Pilih Kernel di kanan atas notebook
Pilih lingkungan Python yang Anda buat di atas untuk menjalankan kernel Anda
Siapkan datanya
Tutorial ini menggunakan kumpulan data Titanic yang tersedia di OpenML. org, yang diperoleh dari Departemen Biostatistik Universitas Vanderbilt di https. //hbiostat. org/data. Data Titanic memberikan informasi tentang kelangsungan hidup penumpang Titanic dan karakteristik penumpang seperti umur dan kelas tiket. Dengan menggunakan data ini, tutorial akan membuat model untuk memprediksi apakah penumpang tertentu akan selamat dari tenggelamnya Titanic. Bagian ini menunjukkan cara memuat dan memanipulasi data di notebook Jupyter Anda
Untuk memulai, unduh data Titanic dari hbiostat. org sebagai file CSV [tautan unduhan di kanan atas] bernama
0 dan simpan ke folderimport seaborn as sns import matplotlib.pyplot as plt fig, axs = plt.subplots[ncols=5, figsize=[30,5]] sns.violinplot[x="survived", y="age", hue="sex", data=data, ax=axs[0]] sns.pointplot[x="sibsp", y="survived", hue="sex", data=data, ax=axs[1]] sns.pointplot[x="parch", y="survived", hue="sex", data=data, ax=axs[2]] sns.pointplot[x="pclass", y="survived", hue="sex", data=data, ax=axs[3]] sns.violinplot[x="survived", y="fare", hue="sex", data=data, ax=axs[4]]
7 yang Anda buat di bagian sebelumnyadata.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Jika Anda belum membuka file dalam Kode VS, buka folder
7 dan notebook Jupyter [data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
8], dengan membuka File > Buka Folderdata.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Di dalam notebook Jupyter Anda, mulailah dengan mengimpor pustaka panda dan numpy, dua pustaka umum yang digunakan untuk memanipulasi data, dan memuat data Titanic ke dalam DataFrame panda. Untuk melakukannya, salin kode di bawah ke sel pertama notebook. Untuk panduan selengkapnya tentang bekerja dengan notebook Jupyter di VS Code, lihat dokumentasi Bekerja dengan Notebook Jupyter
_import pandas as pd import numpy as np data = pd.read_csv['titanic3.csv']
Sekarang, jalankan sel menggunakan ikon Jalankan sel atau pintasan Shift+Enter .
Setelah sel selesai berjalan, Anda dapat melihat data yang dimuat menggunakan Variables Explorer dan Data Viewer. Pertama pilih ikon Variables di bilah alat atas notebook
JUPITER. Panel VARIABLES akan terbuka di bagian bawah VS Code. Ini berisi daftar variabel yang didefinisikan sejauh ini di kernel Anda yang sedang berjalan
Untuk melihat data di Pandas DataFrame yang dimuat sebelumnya, pilih ikon Data Viewer di sebelah kiri variabel
4import seaborn as sns import matplotlib.pyplot as plt fig, axs = plt.subplots[ncols=5, figsize=[30,5]] sns.violinplot[x="survived", y="age", hue="sex", data=data, ax=axs[0]] sns.pointplot[x="sibsp", y="survived", hue="sex", data=data, ax=axs[1]] sns.pointplot[x="parch", y="survived", hue="sex", data=data, ax=axs[2]] sns.pointplot[x="pclass", y="survived", hue="sex", data=data, ax=axs[3]] sns.violinplot[x="survived", y="fare", hue="sex", data=data, ax=axs[4]]
Gunakan Penampil Data untuk melihat, mengurutkan, dan memfilter baris data. Setelah meninjau data, akan sangat membantu untuk membuat grafik beberapa aspeknya untuk membantu memvisualisasikan hubungan antara variabel yang berbeda
Sebelum data dapat dibuat grafiknya, Anda perlu memastikan bahwa tidak ada masalah dengannya. Jika Anda melihat file Titanic csv, satu hal yang akan Anda perhatikan adalah tanda tanya ["?"] digunakan untuk mengidentifikasi sel di mana data tidak tersedia
Sementara Panda dapat membaca nilai ini ke dalam DataFrame, hasil untuk kolom seperti umur adalah tipe datanya akan disetel ke objek, bukan tipe data numerik, yang bermasalah untuk pembuatan grafik
Masalah ini dapat diperbaiki dengan mengganti tanda tanya dengan nilai yang hilang yang dapat dipahami oleh panda. Tambahkan kode berikut ke sel berikutnya di buku catatan Anda untuk mengganti tanda tanya di kolom usia dan ongkos dengan nilainya. Perhatikan bahwa kita juga perlu memperbarui tipe data kolom setelah mengganti nilainya
Tip. Untuk menambahkan sel baru, Anda dapat menggunakan ikon sisipkan sel yang ada di pojok kiri bawah sel yang sudah ada. Sebagai alternatif, Anda juga dapat menggunakan Esc untuk masuk ke mode perintah, diikuti dengan B key.
data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Catatan. Jika Anda perlu melihat tipe data yang telah digunakan untuk kolom, Anda bisa menggunakan atributnya
Sekarang setelah data dalam kondisi yang baik, Anda dapat menggunakan seaborn dan matplotlib untuk melihat bagaimana kolom tertentu dari kumpulan data terkait dengan kemampuan bertahan. Tambahkan kode berikut ke sel berikutnya di buku catatan Anda dan jalankan untuk melihat plot yang dibuat
_import seaborn as sns import matplotlib.pyplot as plt fig, axs = plt.subplots[ncols=5, figsize=[30,5]] sns.violinplot[x="survived", y="age", hue="sex", data=data, ax=axs[0]] sns.pointplot[x="sibsp", y="survived", hue="sex", data=data, ax=axs[1]] sns.pointplot[x="parch", y="survived", hue="sex", data=data, ax=axs[2]] sns.pointplot[x="pclass", y="survived", hue="sex", data=data, ax=axs[3]] sns.violinplot[x="survived", y="fare", hue="sex", data=data, ax=axs[4]]
Untuk melihat detail grafik dengan lebih baik, Anda dapat membukanya di penampil plot dengan mengarahkan kursor ke sudut kanan atas grafik dan mengklik tombol yang muncul
Grafik ini sangat membantu dalam melihat beberapa hubungan antara kelangsungan hidup dan variabel input data, tetapi juga memungkinkan untuk menggunakan panda untuk menghitung korelasi. Untuk melakukannya, semua variabel yang digunakan harus numerik untuk perhitungan korelasi dan saat ini jenis kelamin disimpan sebagai string. Untuk mengonversi nilai string tersebut menjadi bilangan bulat, tambahkan dan jalankan kode berikut
data.replace[{'male': 1, 'female': 0}, inplace=True]
Sekarang, Anda dapat menganalisis korelasi antara semua variabel masukan untuk mengidentifikasi fitur yang akan menjadi masukan terbaik untuk model pembelajaran mesin. Semakin dekat suatu nilai dengan 1, semakin tinggi korelasi antara nilai dan hasilnya. Gunakan kode berikut untuk mengkorelasikan hubungan antara semua variabel dan kelangsungan hidup
data.corr[].abs[][["survived"]]
Melihat hasil korelasi, Anda akan melihat bahwa beberapa variabel seperti jenis kelamin memiliki korelasi yang cukup tinggi terhadap kelangsungan hidup, sementara yang lain seperti kerabat [sibsp = saudara kandung atau pasangan, parch = orang tua atau anak] tampaknya memiliki sedikit korelasi.
Mari berhipotesis bahwa sibsp dan parch terkait dalam pengaruhnya terhadap kelangsungan hidup, dan kelompokkan mereka ke dalam kolom baru yang disebut "kerabat" untuk melihat apakah kombinasi keduanya memiliki korelasi yang lebih tinggi dengan kemampuan bertahan hidup. Untuk melakukan ini, Anda akan memeriksa apakah untuk penumpang tertentu, jumlah sibsp dan parch lebih besar dari 0 dan, jika demikian, Anda dapat mengatakan bahwa mereka memiliki kerabat di pesawat
Gunakan kode berikut untuk membuat variabel dan kolom baru dalam dataset bernama
5 dan periksa kembali korelasinyaimport seaborn as sns import matplotlib.pyplot as plt fig, axs = plt.subplots[ncols=5, figsize=[30,5]] sns.violinplot[x="survived", y="age", hue="sex", data=data, ax=axs[0]] sns.pointplot[x="sibsp", y="survived", hue="sex", data=data, ax=axs[1]] sns.pointplot[x="parch", y="survived", hue="sex", data=data, ax=axs[2]] sns.pointplot[x="pclass", y="survived", hue="sex", data=data, ax=axs[3]] sns.violinplot[x="survived", y="fare", hue="sex", data=data, ax=axs[4]]
data['relatives'] = data.apply [lambda row: int[[row['sibsp'] + row['parch']] > 0], axis=1] data.corr[].abs[][["survived"]]
Anda akan melihat bahwa sebenarnya ketika melihat dari sudut pandang apakah seseorang memiliki kerabat, versus berapa banyak kerabat, ada korelasi yang lebih tinggi dengan kelangsungan hidup. Dengan informasi ini, Anda sekarang dapat menghapus dari kumpulan data kolom sibsp dan parch bernilai rendah, serta setiap baris yang memiliki nilai NaN, untuk diakhiri dengan kumpulan data yang dapat digunakan untuk melatih model
data = data[['sex', 'pclass','age','relatives','fare','survived']].dropna[]
Catatan. Meskipun usia memiliki korelasi langsung yang rendah, hal itu dipertahankan karena tampaknya masuk akal bahwa masih ada korelasi dalam hubungannya dengan masukan lainnya
Melatih dan mengevaluasi model
Dengan set data siap, Anda sekarang dapat mulai membuat model. Untuk bagian ini, Anda akan menggunakan pustaka scikit-learn [karena menawarkan beberapa fungsi pembantu yang berguna] untuk melakukan pra-pemrosesan kumpulan data, melatih model klasifikasi untuk menentukan kemampuan bertahan di Titanic, lalu menggunakan model tersebut dengan data uji
Langkah umum pertama untuk melatih model adalah membagi dataset menjadi data pelatihan dan validasi. Ini memungkinkan Anda menggunakan sebagian data untuk melatih model dan sebagian data untuk menguji model. Jika Anda menggunakan semua data untuk melatih model, Anda tidak akan memiliki cara untuk memperkirakan seberapa baik kinerjanya terhadap data yang belum dilihat model. Manfaat perpustakaan scikit-learn adalah menyediakan metode khusus untuk memisahkan dataset menjadi data pelatihan dan pengujian
Tambahkan dan jalankan sel dengan kode berikut ke notebook untuk memisahkan data
from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test = train_test_split[data[['sex','pclass','age','relatives','fare']], data.survived, test_size=0.2, random_state=0]
Selanjutnya, Anda akan menormalkan masukan sehingga semua fitur diperlakukan sama. Misalnya, dalam kumpulan data, nilai untuk rentang usia dari ~0-100, sedangkan jenis kelamin hanya 1 atau 0. Dengan menormalkan semua variabel, Anda dapat memastikan bahwa rentang nilainya semuanya sama. Gunakan kode berikut dalam sel kode baru untuk menskalakan nilai masukan
from sklearn.preprocessing import StandardScaler sc = StandardScaler[] X_train = sc.fit_transform[x_train] X_test = sc.transform[x_test]
Ada banyak algoritme pembelajaran mesin berbeda yang dapat Anda pilih untuk memodelkan data. Pustaka scikit-learn juga menyediakan dukungan untuk banyak di antaranya dan bagan untuk membantu memilih salah satu yang tepat untuk skenario Anda. Untuk saat ini, gunakan algoritme Naïve Bayes, algoritme umum untuk masalah klasifikasi. Tambahkan sel dengan kode berikut untuk membuat dan melatih algoritme
from sklearn.naive_bayes import GaussianNB model = GaussianNB[] model.fit[X_train, y_train]
Dengan model terlatih, Anda sekarang dapat mencobanya dengan kumpulan data pengujian yang ditahan dari pelatihan. Tambahkan dan jalankan kode berikut untuk memprediksi hasil data uji dan menghitung akurasi model
0data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Melihat hasil data pengujian, Anda akan melihat bahwa algoritme yang dilatih memiliki tingkat keberhasilan ~75% dalam memperkirakan kelangsungan hidup
[Opsional] Gunakan jaringan neural
Jaringan saraf adalah model yang menggunakan bobot dan fungsi aktivasi, memodelkan aspek neuron manusia, untuk menentukan hasil berdasarkan masukan yang diberikan. Tidak seperti algoritme pembelajaran mesin yang Anda lihat sebelumnya, jaringan saraf adalah bentuk pembelajaran mendalam di mana Anda tidak perlu mengetahui algoritme ideal untuk masalah Anda sebelumnya. Ini dapat digunakan untuk berbagai skenario dan klasifikasi adalah salah satunya. Untuk bagian ini, Anda akan menggunakan library Keras dengan TensorFlow untuk membuat jaringan neural, dan mempelajari cara menangani set data Titanic
Langkah pertama adalah mengimpor pustaka yang diperlukan dan membuat model. Dalam hal ini, Anda akan menggunakan jaringan saraf Sequential, yang merupakan jaringan saraf berlapis di mana ada banyak lapisan yang saling memberi makan secara berurutan.
_1data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Setelah menentukan model, langkah selanjutnya adalah menambahkan layer-layer pada neural network. Untuk saat ini, mari kita sederhanakan dan gunakan tiga layer saja. Tambahkan kode berikut untuk membuat lapisan jaringan saraf
_2data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
- Lapisan pertama akan disetel memiliki dimensi 5, karena Anda memiliki lima masukan. jenis kelamin, pclass, usia, kerabat, dan tarif
- Lapisan terakhir harus menghasilkan 1, karena Anda menginginkan keluaran 1 dimensi yang menunjukkan apakah seorang penumpang akan selamat
- Lapisan tengah disimpan di 5 untuk kesederhanaan, meskipun nilainya bisa saja berbeda
Fungsi aktivasi unit linier yang diperbaiki [relu] digunakan sebagai fungsi aktivasi umum yang baik untuk dua lapisan pertama, sedangkan fungsi aktivasi sigmoid diperlukan untuk lapisan terakhir karena output yang Anda inginkan [apakah penumpang bertahan atau tidak] perlu
Anda juga dapat melihat ringkasan model yang Anda buat dengan baris kode ini
_3data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Setelah model dibuat, perlu dikompilasi. Sebagai bagian dari ini, Anda perlu menentukan jenis pengoptimal apa yang akan digunakan, bagaimana kerugian akan dihitung, dan metrik apa yang harus dioptimalkan. Tambahkan kode berikut untuk membuat dan melatih model. Anda akan melihat bahwa setelah pelatihan, akurasinya ~61%
Catatan. Langkah ini dapat berlangsung dari beberapa detik hingga beberapa menit untuk berjalan tergantung pada mesin Anda
_4data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Sekarang setelah model dibuat dan dilatih, kita dapat melihat cara kerjanya terhadap data pengujian
5data.replace['?', np.nan, inplace= True] data = data.astype[{"age": np.float64, "fare": np.float64}]
Mirip dengan pelatihan, Anda akan melihat bahwa Anda sekarang memiliki akurasi 79% dalam memprediksi kelangsungan hidup penumpang. Menggunakan jaringan saraf sederhana ini, hasilnya lebih baik daripada akurasi 75% dari Naive Bayes Classifier yang dicoba sebelumnya
Langkah selanjutnya
Sekarang setelah Anda memahami dasar-dasar melakukan pembelajaran mesin dalam Visual Studio Code, berikut adalah beberapa sumber daya dan tutorial Microsoft lainnya untuk dilihat