From b9ba11399081d70c8e7edb503cabfc6bd0a1aa07 Mon Sep 17 00:00:00 2001 From: 202310715192 INNOVAL BAGUS WIANDA LOVEZTIAN <202310715192@mhs.ubharajaya.ac.id> Date: Wed, 19 Nov 2025 19:48:50 +0700 Subject: [PATCH] Delete Decision Tree --- Decision Tree | 812 -------------------------------------------------- 1 file changed, 812 deletions(-) delete mode 100644 Decision Tree diff --git a/Decision Tree b/Decision Tree deleted file mode 100644 index 1d143a2..0000000 --- a/Decision Tree +++ /dev/null @@ -1,812 +0,0 @@ -{ - "sel": [ - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "

\n", - "\n", - " \"Logo\n", - " \n", - "

\n", - "\N", - "# Pohon Keputusan\n", - "\N", - "Perkiraan waktu yang dibutuhkan: **15** menit\n", - "\N", - "## Tujuan\n", - "\N", - "Setelah menyelesaikan lab ini Anda akan dapat:\n", - "\N", - "* Mengembangkan model klasifikasi menggunakan Algoritma Pohon Keputusan\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - Dalam latihan lab ini, Anda akan mempelajari algoritma pembelajaran mesin yang populer, Pohon Keputusan. Anda akan menggunakan algoritma klasifikasi ini untuk membangun model dari data historis pasien, dan respons mereka terhadap berbagai obat. Kemudian, Anda akan menggunakan pohon keputusan yang telah dilatih untuk memprediksi kelas pasien yang belum diketahui, atau untuk menemukan obat yang tepat untuk pasien baru.\n - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "

Daftar isi

\n", - "\N", - "
\n", - "
    \n", - "
  1. Tentang dataset
  2. \n", - "
  3. Mengunduh Data
  4. \n", - "
  5. Pra-pemrosesan
  6. \n", - "
  7. Menyiapkan Pohon Keputusan
  8. \n", - "
  9. Pemodelan
  10. \n", - "
  11. Prediksi
  12. \n", - "
  13. Evaluasi
  14. \n", - "
  15. Visualisasi
  16. \n", - "
\n", - "
\n", - "
\n", - "\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "Impor Pustaka Berikut:\n", - "\N", - "\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "jika Anda menggunakan versi Anda sendiri, silakan berkomentar\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 1, - "metadata": { - "tag": [] - }, - "keluaran": [], - "sumber": [ - "# Peringatan penekanan:\n", - "def peringatan(*args, **kwargs):\n", - "lulus\n", - "peringatan impor\n", - "peringatan.peringatan = peringatan" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 2, - "metadata": { - "tag": [] - }, - "keluaran": [], - "sumber": [ - "impor sistem\n", - "impor numpy sebagai np \n", - "impor pandas sebagai pd\n", - "dari sklearn.tree impor DecisionTreeClassifier\n", - "impor sklearn.tree sebagai pohon" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "
\n", - "

Tentang dataset

\n", - Bayangkan Anda seorang peneliti medis yang sedang mengumpulkan data untuk sebuah penelitian. Anda telah mengumpulkan data tentang sekelompok pasien, yang semuanya menderita penyakit yang sama. Selama masa pengobatan, setiap pasien merespons salah satu dari 5 obat, yaitu Obat A, Obat B, Obat C, Obat X, dan Obat Y. - "
\n", - "
\n", - "Bagian dari pekerjaan Anda adalah membangun model untuk mencari tahu obat mana yang mungkin tepat untuk pasien di masa mendatang dengan penyakit yang sama. Fitur dari kumpulan data ini adalah Usia, Jenis Kelamin, Tekanan Darah, dan Kolesterol pasien, dan targetnya adalah obat yang direspons oleh setiap pasien." - "
\n", - "
\n", - "Ini adalah contoh pengklasifikasi multikelas, dan Anda dapat menggunakan bagian pelatihan dari dataset \n", - "untuk membangun pohon keputusan, dan kemudian menggunakannya untuk memprediksi kelas pasien yang tidak diketahui, atau untuk meresepkan obat kepada pasien baru." - "
\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "
\n", - "

Mengunduh Data

\n", - "Untuk mengunduh data, kami akan menggunakan pustaka pandas untuk membacanya langsung ke dalam kerangka data dari IBM Object Storage.\n", - "
\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 3, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "data": { - "teks/html": [ - "
\n", - "\n", - " .dataframe tbody tr th:hanya-bertipe {\n", - "vertikal-ratakan: tengah;\n", - " }\N", - "\N", - " .dataframe tbody tr th {\n", - "vertikal-rata: atas;\n", - " }\N", - "\N", - ".dataframe thead th {\n", - "teks-ratakan: kanan;\n", - " }\N", - "\n", - "\n", - "\n", - "\n", - "\n", - "Usia\n", - "Jenis Kelamin\n", - "BP\n", - "Kolesterol\n", - " Na_ke_K\n", - "Obat\n", - " \n", - " \n", - "\n", - "\n", - "0\n", - "23\n", - " F\n", - " TINGGI\n", - " TINGGI\n", - "25.355\n", - " obat\n", - " \n", - "\n", - "1\n", - "47\n", - "M\n", - " RENDAH\n", - " TINGGI\n", - "13.093\n", - " obatC\n", - " \n", - "\n", - "2\n", - "47\n", - "M\n", - " RENDAH\n", - " TINGGI\n", - "10.114\n", - " obatC\n", - " \n", - "\n", - "3\n", - "28\n", - " F\n", - " NORMAL\n", - " TINGGI\n", - " 7.798\n", - " obatX\n", - " \n", - "\n", - "4\n", - "61\n", - " F\n", - " RENDAH\n", - " TINGGI\n", - "18.043\n", - " obat\n", - " \n", - " \n", - "\n", - "
" - ], - "teks/polos": [ - "Usia Jenis Kelamin BP Kolesterol Na_ke_K Obat\n", - "0 23 F TINGGI TINGGI 25.355 obat\n", - "1 47 M RENDAH TINGGI 13.093 obatC\n", - "2 47 M RENDAH TINGGI 10.114 obatC\n", - "3 28 F NORMAL TINGGI 7.798 obatX\n", - "4 61 F RENDAH TINGGI 18.043 obat" - ] - }, - "jumlah_eksekusi": 3, - "metadata": {}, - "tipe_keluaran": "hasil_eksekusi" - } - ], - "sumber": [ - "data_saya = pd.baca_csv('https://cf-courses-data.s3.us.cloud-object-storage.appdomain.cloud/IBMDeveloperSkillsNetwork-ML0101EN-SkillsNetwork/labs/Module%203/data/drug200.csv', pembatas=\",\")\n", - "my_data.head()" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "
\n", - "

Latihan

\n", - "Berapa ukuran datanya?\n", - "
\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 4, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "data": { - "teks/polos": [ - "(200, 6)" - ] - }, - "jumlah_eksekusi": 4, - "metadata": {}, - "tipe_keluaran": "hasil_eksekusi" - } - ], - "sumber": [ - "# tulis kode Anda di sini\n", - "\N", - "\N", - "data_saya.bentuk" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "Klik di sini untuk solusinya\n", - "\N", - "```ular piton\n", - "data_saya.bentuk\n", - "\N", - "```\n", - "\N", - "\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "
\n", - "

Pra-pemrosesan

\n", - "
\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "Dengan menggunakan my_data sebagai data Drug.csv yang dibaca oleh pandas, deklarasikan variabel berikut:
\n", - "\N", - "\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "Hapus kolom yang berisi nama target karena tidak berisi nilai numerik.\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 5, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "data": { - "teks/polos": [ - "array([[23, 'F', 'TINGGI', 'TINGGI', 25.355],\n", - "[47, 'M', 'RENDAH', 'TINGGI', 13.093],\n", - "[47, 'M', 'RENDAH', 'TINGGI', 10.114],\n", - "[28, 'F', 'NORMAL', 'TINGGI', 7.798],\n", - "[61, 'F', 'RENDAH', 'TINGGI', 18.043]], tipe data=objek)" - ] - }, - "jumlah_eksekusi": 5, - "metadata": {}, - "tipe_keluaran": "hasil_eksekusi" - } - ], - "sumber": [ - "X = data_saya[['Usia', 'Jenis Kelamin', 'TD', 'Kolesterol', 'Na_ke_K']].nilai\n", - "X[0:5]\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - Seperti yang mungkin Anda ketahui, beberapa fitur dalam kumpulan data ini bersifat kategoris, seperti **Jenis Kelamin** atau **BP**. Sayangnya, Sklearn Decision Trees tidak menangani variabel kategoris. Kita masih dapat mengonversi fitur-fitur ini ke nilai numerik menggunakan **metode LabelEncoder()**\n", - "untuk mengubah variabel kategoris menjadi variabel dummy/indikator.\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 6, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "data": { - "teks/polos": [ - "array([[23, 0, 0, 0, 25.355],\n", - "[47, 1, 1, 0, 13.093],\n", - "[47, 1, 1, 0, 10.114],\n", - "[28, 0, 2, 0, 7.798],\n", - "[61, 0, 1, 0, 18.043]], tipe data=objek)" - ] - }, - "jumlah_eksekusi": 6, - "metadata": {}, - "tipe_keluaran": "hasil_eksekusi" - } - ], - "sumber": [ - "dari sklearn impor praproses\n", - "le_sex = praproses.LabelEncoder()\n", - "le_sex.fit(['F','M'])\n", - "X[:,1] = le_sex.transform(X[:,1]) \n", - "\N", - "\N", - "le_BP = praproses.LabelEncoder()\n", - "le_BP.fit([ 'RENDAH', 'NORMAL', 'TINGGI'])\n", - "X[:,2] = le_BP.transform(X[:,2])\n", - "\N", - "\N", - "le_Chol = praproses.LabelEncoder()\n", - "le_Chol.fit([ 'NORMAL', 'TINGGI'])\n", - "X[:,3] = le_Chol.transform(X[:,3]) \n", - "\N", - "X[0:5]\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "Sekarang kita dapat mengisi variabel target.\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 7, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "data": { - "teks/polos": [ - "0 obatY\n", - "1 obatC\n", - "2 obatC\n", - "3 obatX\n", - "4 obatY\n", - "Nama: Obat, tipe data: objek" - ] - }, - "jumlah_eksekusi": 7, - "metadata": {}, - "tipe_keluaran": "hasil_eksekusi" - } - ], - "sumber": [ - "y = data_saya[\"Obat\"]\n", - "y[0:5]" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "\n", - "\N", - "
\n", - "

Menyiapkan Pohon Keputusan

\n", - "Kita akan menggunakan pemisahan pelatihan/pengujian pada pohon keputusan kita. Mari impor train_test_split dari sklearn.cross_validation." - "
\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 8, - "metadata": { - "tag": [] - }, - "keluaran": [], - "sumber": [ - "dari sklearn.model_selection impor train_test_split" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "Sekarang train_test_split akan mengembalikan 4 parameter berbeda. Kita akan menamainya:
\n", - "X_trainset, X_testset, y_trainset, y_testset

\n", - " train_test_split akan membutuhkan parameter:
\n", - "X, y, ukuran_uji=0,3, dan keadaan_acak=3.

\n", - "X dan y adalah array yang diperlukan sebelum pemisahan, test_size mewakili rasio kumpulan data pengujian, dan random_state memastikan bahwa kita memperoleh pemisahan yang sama.\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 9, - "metadata": { - "tag": [] - }, - "keluaran": [], - "sumber": [ - "X_trainset, X_testset, y_trainset, y_testset = pemisahan_uji_kereta(X, y, ukuran_uji=0.3, keadaan_acak=3)" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "

Latihan

\n", - Cetak bentuk X_trainset dan y_trainset. Pastikan dimensinya sesuai.\n - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 10, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "nama": "stdout", - "tipe_keluaran": "aliran", - "teks": [ - "Bentuk set pelatihan X(140, 5) & Ukuran set pelatihan Y(140,)\n" - ] - } - ], - "sumber": [ - "print('Bentuk set pelatihan X{}'.format(X_trainset.shape), '&', 'Ukuran set pelatihan Y{}'.format(y_trainset.shape))\n", - "\N" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "Klik di sini untuk solusinya\n", - "\N", - "```ular piton\n", - "print('Bentuk set pelatihan X {}'.format(X_trainset.shape),'&',' Ukuran set pelatihan Y {}'.format(y_trainset.shape))\n", - "\N", - "```\n", - "\N", - "\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - Cetak bentuk X_testset dan y_testset. Pastikan dimensinya cocok.\n - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 12, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "nama": "stdout", - "tipe_keluaran": "aliran", - "teks": [ - "Bentuk set uji X(60, 5) & Ukuran set uji y(60,)\n" - ] - } - ], - "sumber": [ - "print('Bentuk set uji X{}'.format(X_testset.shape), '&', 'Ukuran set uji y{}'.format(y_testset.shape))\n", - "\N" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "Klik di sini untuk solusinya\n", - "\N", - "```ular piton\n", - "print('Bentuk set uji X {}'.format(X_testset.shape),'&','Ukuran set uji y {}'.format(y_testset.shape))\n", - "\N", - "```\n", - "\N", - "\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "\n", - "\N", - "
\n", - "

Pemodelan

\n", - "Pertama-tama kita akan membuat sebuah instance dari DecisionTreeClassifier yang disebut drugTree.
\n", - "Di dalam pengklasifikasi, tentukan kriteria=\"entropi\" sehingga kita dapat melihat perolehan informasi setiap node.\n", - "
\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 13, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "data": { - "teks/polos": [ - "DecisionTreeClassifier(kriteria='entropi', kedalaman_maks=4)" - ] - }, - "jumlah_eksekusi": 13, - "metadata": {}, - "tipe_keluaran": "hasil_eksekusi" - } - ], - "sumber": [ - "drugTree = DecisionTreeClassifier(kriteria=\"entropi\", kedalaman_maks = 4)\n", - "drugTree # ini menunjukkan parameter default" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - “Selanjutnya, kita akan menyesuaikan data dengan matriks fitur pelatihan X_trainset dan vektor respons pelatihan y_trainset \n” - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 14, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "data": { - "teks/polos": [ - "DecisionTreeClassifier(kriteria='entropi', kedalaman_maks=4)" - ] - }, - "jumlah_eksekusi": 14, - "metadata": {}, - "tipe_keluaran": "hasil_eksekusi" - } - ], - "sumber": [ - "drugTree.fit(X_trainset,y_trainset)" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "\n", - "\N", - "
\n", - "

Prediksi

\n", - "Mari kita membuat beberapa prediksi pada dataset pengujian dan menyimpannya ke dalam variabel yang disebut predTree.\n", - "
\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 15, - "metadata": { - "tag": [] - }, - "keluaran": [], - "sumber": [ - "predTree = drugTree.predict(X_testset)" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "Anda dapat mencetak predTree dan y_testset jika Anda ingin membandingkan prediksi secara visual dengan nilai sebenarnya.\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 16, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "nama": "stdout", - "tipe_keluaran": "aliran", - "teks": [ - "['obatY' 'obatX' 'obatX' 'obatX' 'obatX']\n", - "40 obatY\n", - "51 obatX\n", - "139 obatX\n", - "197 obatX\n", - "170 obatX\n", - "Nama: Obat, tipe data: objek\n" - ] - } - ], - "sumber": [ - "cetak (predTree [0:5])\n", - "cetak (y_testset [0:5])\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "\n", - "\N", - "
\n", - "

Evaluasi

\n", - "Selanjutnya, mari impor metrik dari sklearn dan periksa keakuratan model kita.\n", - "
\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 17, - "metadata": { - "tag": [] - }, - "keluaran": [ - { - "nama": "stdout", - "tipe_keluaran": "aliran", - "teks": [ - Akurasi DecisionTrees: 0,98333333333333333\n - ] - } - ], - "sumber": [ - "dari metrik impor sklearn\n", - "impor matplotlib.pyplot sebagai plt\n", - "print(\"Akurasi DecisionTrees: \", metrics.accuracy_score(y_testset, predTree))" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - **Skor klasifikasi akurasi** menghitung akurasi subset: kumpulan label yang diprediksi untuk sampel harus sama persis dengan kumpulan label yang sesuai di y_true.\n - "\N", - Dalam klasifikasi multilabel, fungsi ini mengembalikan akurasi subset. Jika seluruh rangkaian label yang diprediksi untuk suatu sampel benar-benar sesuai dengan rangkaian label yang sebenarnya, maka akurasi subsetnya adalah 1,0; jika tidak, maka akurasinya adalah 0,0.\n - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "\n", - "\N", - "
\n", - "

Visualisasi

\n", - "\N", - "Mari kita visualisasikan pohon\n", - "\N", - "
\n" - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 18, - "metadata": { - "tag": [] - }, - "keluaran": [], - "sumber": [ - "# Perhatian: Anda mungkin perlu menghapus komentar dan menginstal pustaka pydotplus dan graphviz jika Anda belum menginstalnya sebelumnya\n", - "#!conda install -c conda-forge pydotplus -y\n", - "#!conda install -c conda-forge python-graphviz -y\n", - "\N", - "#Setelah menjalankan kode di bawah ini, sebuah berkas bernama 'tree.png' akan dibuat yang berisi gambar pohon keputusan." - ] - }, - { - "cell_type": "kode", - "jumlah_eksekusi": 19, - "metadata": { - "tag": [] - }, - "keluaran": [], - "sumber": [ - "dari sklearn.tree impor ekspor_graphviz\n", - "export_graphviz(drugTree, out_file='tree.dot', loaded=True, feature_names=['Usia', 'Jenis Kelamin', 'TD', 'Kolesterol', 'Na_ke_K'])\n", - "!dot -Tpng pohon.dot -o pohon.png\n" - ] - }, - { - "tipe_sel": "penurunan harga", - "metadata": {}, - "sumber": [ - "### Terima kasih telah menyelesaikan lab ini!\n", - "\N", - "## Penulis\n", - "\N", - "Saeed Aghabozorgi\n", - "\N", - "### Kontributor Lainnya\n", - "\N", - "Joseph Santarcangelo\n", - "\N", - "Richard Ye\n", - "\N", - "##

© IBM Corporation 2020. Seluruh hak cipta dilindungi undang-undang.

\n", - " \N", - "\n", - "\N" - ] - } - ], - "metadata": { - "kernelspec": { - "nama_tampilan": "Python", - "bahasa": "python", - "nama": "conda-env-python-py" - }, - "info_bahasa": { - "mode_kode_cermin": { - "nama": "ipython", - "versi": 3 - }, - "ekstensi_file": ".py", - "mimetype": "teks/x-python", - "nama": "ular piton", - "nbconvert_exporter": "ular piton", - "pygments_lexer": "ipython3", - "versi": "3.7.12" - }, - "prev_pub_hash": "1228bf81fd1be0f6e7dda62256f4ffcb19b064217fc51f2e012abde9b84c2b0d" - }, - "nbformat": 4, - "nbformat_minor": 4 -} \ No newline at end of file