- Unduh dan pasang Python SciPy dan dapatkan paket yang paling berguna untuk pembelajaran mesin dengan Python.
- Muat dataset dan pahami strukturnya menggunakan ringkasan statistik dan visualisasi data.
- Buat 6 model pembelajaran mesin, pilih yang terbaik dan bangun keyakinan bahwa akurasinya dapat diandalkan.
Jika Anda seorang pemula pembelajaran mesin dan ingin akhirnya mulai menggunakan Python, kursus ini dirancang untuk Anda.
Bagaimana Anda memulai pembelajaran mesin dengan Python?
Cara terbaik untuk mempelajari pembelajaran mesin adalah dengan merancang dan menyelesaikan proyek-proyek kecil.
Python Dapat Mengintimidasi Saat Memulai
Python adalah bahasa yang ditafsirkan populer dan kuat. Tidak seperti R, Python adalah bahasa dan platform lengkap yang dapat Anda gunakan untuk penelitian dan pengembangan sistem produksi.
Ada juga banyak modul dan pustaka untuk dipilih, menyediakan berbagai cara untuk melakukan setiap tugas. Itu bisa terasa luar biasa.
Cara terbaik untuk mulai menggunakan Python untuk pembelajaran mesin adalah menyelesaikan proyek.
- Ini akan memaksa Anda untuk menginstal dan memulai bahasa Python (paling tidak).
- Ini akan memberi Anda pandangan tentang cara melangkah melalui proyek kecil.
- Ini akan memberi Anda kepercayaan diri, mungkin untuk melanjutkan ke proyek kecil Anda sendiri.
Pemula Membutuhkan Proyek Kecil End-to-End
Buku dan kursus membuat frustrasi. Mereka memberi Anda banyak resep dan cuplikan, tetapi Anda tidak pernah bisa melihat bagaimana semuanya cocok.
Ketika Anda menerapkan pembelajaran mesin ke dataset Anda sendiri, Anda sedang mengerjakan sebuah proyek.
Proyek pembelajaran mesin mungkin tidak linier, tetapi memiliki sejumlah langkah terkenal:
- Definisikan Masalah.
- Siapkan Data.
- Evaluasilah Algoritma.
- Tingkatkan Hasil.
- Presentasikan Hasil.
Cara terbaik untuk benar-benar mencapai kesepakatan dengan platform atau alat baru adalah bekerja melalui proyek pembelajaran mesin secara menyeluruh dan mencakup langkah-langkah kunci. Yakni, dari memuat data, meringkas data, mengevaluasi algoritma dan membuat beberapa prediksi.
Jika Anda bisa melakukannya, Anda memiliki template yang bisa Anda gunakan pada dataset setelah dataset. Anda dapat mengisi kekosongan seperti persiapan data lebih lanjut dan meningkatkan tugas hasil nanti, setelah Anda lebih percaya diri.
Halo Dunia Pembelajaran Mesin
Proyek kecil terbaik untuk memulai dengan alat baru adalah klasifikasi bunga iris (misalnya dataset iris ).
Ini adalah proyek yang baik karena sangat dipahami.
- Atribut bersifat numerik sehingga Anda harus mencari cara untuk memuat dan menangani data.
- Ini adalah masalah klasifikasi, memungkinkan Anda untuk berlatih dengan jenis yang mungkin lebih mudah dari algoritma pembelajaran yang diawasi.
- Ini adalah masalah klasifikasi multi-kelas (multi-nominal) yang mungkin memerlukan penanganan khusus.
- Ini hanya memiliki 4 atribut dan 150 baris, artinya kecil dan mudah masuk ke memori (dan layar atau halaman A4).
- Semua atribut numerik berada di unit yang sama dan skala yang sama, tidak memerlukan penskalaan atau transformasi khusus untuk memulai.
Mari kita mulai dengan proyek pembelajaran mesin halo dunia Anda dengan Python.
Pembelajaran Mesin dengan Python: Materi Langkah-demi-Langkah
Di bagian ini, kita akan bekerja melalui proyek pembelajaran mesin.
Berikut ini adalah ikhtisar dari apa yang akan kita bahas:
- Menginstal platform Python dan SciPy.
- Memuat dataset.
- Meringkas dataset.
- Memvisualisasikan dataset.
- Mengevaluasi beberapa algoritma.
- Membuat beberapa prediksi.
Gunakan waktu. Bekerja melalui setiap langkah.
Coba untuk mengetik sendiri perintah atau salin dan tempel perintah untuk mempercepat.
1. Mengunduh, Menginstal, dan Memulai Python SciPy
Dapatkan platform Python dan SciPy diinstal pada sistem Anda jika belum.
Saya tidak ingin membahas hal ini dengan sangat terperinci, karena orang lain sudah memilikinya. Ini sudah cukup mudah, terutama jika Anda seorang pengembang.
1.1 Instal SciPy Libraries
Tutorial ini mengasumsikan Python versi 2.7 atau 3.5+.
Ada 5 pustaka kunci yang perlu Anda instal. Di bawah ini adalah daftar pustaka Python yang diperlukan:
- Scipy
- Numpy
- Matplotlib
- Panda
- Sklearn
Ada banyak cara untuk menginstal perpustakaan ini. Saran terbaik saya adalah memilih satu metode kemudian konsisten dalam menginstal setiap perpustakaan.
Halaman instalasi scipy menyediakan instruksi yang sangat baik untuk menginstal perpustakaan di atas pada berbagai platform yang berbeda, seperti Linux, mac OS X dan Windows.
- Di Mac OS X, Anda dapat menggunakan macports untuk menginstal Python 2.7 dan pustaka ini.
- Di Linux Anda dapat menggunakan manajer paket Anda, seperti yum di Fedora untuk menginstal RPM.
Jika Anda menggunakan Windows atau tidak percaya diri, saya akan merekomendasikan menginstal versi gratis Anaconda yang mencakup semua yang Anda butuhkan.
1.2 Mulai Python dan Periksa Versi
Merupakan ide bagus untuk memastikan lingkungan Python Anda berhasil diinstal dan berfungsi seperti yang diharapkan.
Script di bawah ini akan membantu Anda menguji lingkungan Anda. Itu mengimpor setiap perpustakaan yang diperlukan dalam tutorial ini dan mencetak versi.
Buka baris perintah dan mulai juru bahasa python:
python
Saya sarankan bekerja langsung dalam penerjemah atau menulis skrip Anda dan menjalankannya di baris perintah editor besar dan IDE. Buat hal-hal sederhana dan fokus pada pembelajaran mesin bukan pada rantai alat.
Ketik atau salin dan tempel skrip berikut:
# Check the versions of libraries # Python version import sys print('Python: {}'.format(sys.version)) # scipy import scipy print('scipy: {}'.format(scipy.__version__)) # numpy import numpy print('numpy: {}'.format(numpy.__version__)) # matplotlib import matplotlib print('matplotlib: {}'.format(matplotlib.__version__)) # pandas import pandas print('pandas: {}'.format(pandas.__version__)) # scikit-learn import sklearn print('sklearn: {}'.format(sklearn.__version__))
Ini adalah output yang didapat:
Python: 3.6.8 (default, Dec 30 2018, 13:01:55) [GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)] scipy: 1.1.0 numpy: 1.15.4 matplotlib: 3.0.2 pandas: 0.23.4 sklearn: 0.20.2
Bandingkan output di atas dengan versi Anda.
Idealnya, versi Anda harus cocok atau lebih baru. API tidak berubah dengan cepat, jadi jangan terlalu khawatir jika Anda beberapa versi di belakang, Segala sesuatu dalam kursus ini kemungkinan besar masih akan bekerja untuk Anda.
Jika Anda mendapatkan kesalahan, hentikan. Sekarang saatnya untuk memperbaikinya.
Jika Anda tidak dapat menjalankan skrip di atas dengan bersih, Anda tidak akan dapat menyelesaikan kursus ini.
2. Muat Data
Kita akan menggunakan dataset bunga iris. Dataset ini terkenal karena digunakan sebagai dataset “hello world” dalam pembelajaran mesin dan statistik oleh hampir semua orang.
Dataset berisi 150 pengamatan bunga iris. Ada empat kolom pengukuran bunga dalam sentimeter. Kolom kelima adalah spesies bunga yang diamati. Semua bunga yang diamati termasuk dalam salah satu dari tiga spesies.
Anda dapat mempelajari lebih lanjut tentang dataset ini di Wikipedia.
Pada langkah ini kita akan memuat data iris dari URL file CSV.
2.1 Impor Library
Pertama, mari kita mengimpor semua modul, fungsi, dan objek yang akan kita gunakan dalam kursus ini.
# Load libraries import pandas from pandas.plotting import scatter_matrix import matplotlib.pyplot as plt from sklearn import model_selection from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix from sklearn.metrics import accuracy_score from sklearn.linear_model import LogisticRegression from sklearn.tree import DecisionTreeClassifier from sklearn.neighbors import KNeighborsClassifier from sklearn.discriminant_analysis import LinearDiscriminantAnalysis from sklearn.naive_bayes import GaussianNB from sklearn.svm import SVC
Semuanya harus dimuat tanpa kesalahan. Jika Anda memiliki kesalahan, hentikan. Anda memerlukan lingkungan SciPy yang berfungsi sebelum melanjutkan. Lihat saran di atas tentang pengaturan lingkungan Anda.
2.2 Memuat Kumpulan Data
Kami dapat memuat data secara langsung dari repositori Machine Learning UCI.
Kami menggunakan panda untuk memuat data. Kami juga akan menggunakan panda di samping untuk mengeksplorasi data baik dengan statistik deskriptif dan visualisasi data.
Perhatikan bahwa kami menentukan nama setiap kolom saat memuat data. Ini akan membantu nanti ketika menjelajahi data.
# Load dataset url = "https://raw.githubusercontent.com/jbrownlee/Datasets/master/iris.csv" names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class'] dataset = pandas.read_csv(url, names=names)
Dataset harus dimuat tanpa insiden.
Jika Anda memiliki masalah jaringan, Anda dapat mengunduh file iris.csv ke direktori kerja Anda dan memuatnya menggunakan metode yang sama, mengubah URL ke nama file lokal.
3. Ringkas Dataset
Sekarang saatnya untuk melihat data.
Pada langkah ini kita akan melihat data beberapa cara berbeda:
Dimensi dataset.
Mengintip data itu sendiri.
Ringkasan statistik semua atribut.
Rincian data oleh variabel kelas.
Jangan khawatir, setiap melihat data adalah satu perintah. Ini adalah perintah yang berguna yang dapat Anda gunakan lagi dan lagi di proyek-proyek masa depan.
3.1 Dimensi Dataset
Kita bisa mendapatkan gagasan cepat tentang berapa banyak instance (baris) dan berapa banyak atribut (kolom) yang berisi data dengan properti bentuk.
# shape print(dataset.shape)
Anda akan melihat 150 instance dan 5 atribut:
(150, 5)
3.2 Mengintip Data
Itu juga merupakan ide yang baik untuk benar-benar melihat data Anda.
# head print(dataset.head(20))
Anda harus melihat 20 baris pertama data:
sepal-length sepal-width petal-length petal-width class 0 5.1 3.5 1.4 0.2 Iris-setosa 1 4.9 3.0 1.4 0.2 Iris-setosa 2 4.7 3.2 1.3 0.2 Iris-setosa 3 4.6 3.1 1.5 0.2 Iris-setosa 4 5.0 3.6 1.4 0.2 Iris-setosa 5 5.4 3.9 1.7 0.4 Iris-setosa 6 4.6 3.4 1.4 0.3 Iris-setosa 7 5.0 3.4 1.5 0.2 Iris-setosa 8 4.4 2.9 1.4 0.2 Iris-setosa 9 4.9 3.1 1.5 0.1 Iris-setosa 10 5.4 3.7 1.5 0.2 Iris-setosa 11 4.8 3.4 1.6 0.2 Iris-setosa 12 4.8 3.0 1.4 0.1 Iris-setosa 13 4.3 3.0 1.1 0.1 Iris-setosa 14 5.8 4.0 1.2 0.2 Iris-setosa 15 5.7 4.4 1.5 0.4 Iris-setosa 16 5.4 3.9 1.3 0.4 Iris-setosa 17 5.1 3.5 1.4 0.3 Iris-setosa 18 5.7 3.8 1.7 0.3 Iris-setosa 19 5.1 3.8 1.5 0.3 Iris-setosa
3.3 Ringkasan Statistik
Sekarang kita bisa melihat ringkasan setiap atribut.
Ini termasuk hitungan, rata-rata, nilai minimum dan maksimum serta beberapa persentil.
# descriptions print(dataset.describe())
Kita dapat melihat bahwa semua nilai numerik memiliki skala yang sama (sentimeter) dan rentang yang sama antara 0 dan 8 sentimeter.
sepal-length sepal-width petal-length petal-width count 150.000000 150.000000 150.000000 150.000000 mean 5.843333 3.054000 3.758667 1.198667 std 0.828066 0.433594 1.764420 0.763161 min 4.300000 2.000000 1.000000 0.100000 25% 5.100000 2.800000 1.600000 0.300000 50% 5.800000 3.000000 4.350000 1.300000 75% 6.400000 3.300000 5.100000 1.800000 max 7.900000 4.400000 6.900000 2.500000
3.4 Distribusi Kelas
Sekarang mari kita lihat jumlah instance (baris) yang dimiliki masing-masing kelas. Kita dapat melihat ini sebagai jumlah absolut.
# class distribution print(dataset.groupby('class').size())
Kita dapat melihat bahwa setiap kelas memiliki jumlah instance yang sama (50 atau 33% dari dataset).
class Iris-setosa 50 Iris-versicolor 50 Iris-virginica 50
4. Visualisasi Data
Kami sekarang memiliki ide dasar tentang data. Kita perlu memperluasnya dengan beberapa visualisasi.
Kita akan melihat dua jenis plot:
Univariate plot untuk lebih memahami setiap atribut.
Plot multivarian untuk lebih memahami hubungan antar atribut.
4.1 Plot Univariat
Kita mulai dengan beberapa plot univariat, yaitu plot dari masing-masing variabel individu.
Mengingat bahwa variabel input numerik, kita dapat membuat plot kotak dan kumis masing-masing.
# box and whisker plots dataset.plot(kind='box', subplots=True, layout=(2,2), sharex=False, sharey=False) plt.show()
Ini memberi kami ide yang lebih jelas tentang distribusi atribut input:
Kami juga dapat membuat histogram dari setiap variabel input untuk mendapatkan gagasan tentang distribusi.
# histograms dataset.hist() plt.show()
Sepertinya mungkin dua dari variabel input memiliki distribusi Gaussian. Ini berguna untuk dicatat karena kita dapat menggunakan algoritma yang dapat mengeksploitasi asumsi ini.
4.2 Plot Multivarian
Sekarang kita bisa melihat interaksi antar variabel.
Pertama, mari kita lihat plot sebar dari semua pasang atribut. Ini dapat membantu untuk menemukan hubungan terstruktur antara variabel input.
# scatter plot matrix scatter_matrix(dataset) plt.show()
Perhatikan pengelompokan diagonal beberapa pasang atribut. Ini menunjukkan korelasi yang tinggi dan hubungan yang dapat diprediksi.
5. Evaluasi Beberapa Algoritma
Sekarang saatnya membuat beberapa model data dan memperkirakan akurasinya pada data yang tidak terlihat.
Inilah yang akan kita bahas pada langkah ini:
Pisahkan dataset validasi.
Atur harness uji untuk menggunakan validasi silang 10 kali lipat.
Bangun 5 model berbeda untuk memprediksi spesies dari pengukuran bunga
Pilih model terbaik.
5.1 Membuat Dataset Validasi
Kita perlu tahu bahwa model yang kita buat itu bagus.
Nantinya, kami akan menggunakan metode statistik untuk memperkirakan keakuratan model yang kami buat pada data yang tidak terlihat. Kami juga menginginkan perkiraan yang lebih konkret dari keakuratan model terbaik pada data yang tidak terlihat dengan mengevaluasinya pada data nyata yang tidak terlihat.
Artinya, kami akan menahan beberapa data yang tidak akan dapat dilihat oleh algoritma dan kami akan menggunakan data ini untuk mendapatkan gagasan kedua dan independen tentang seberapa akurat model terbaik sebenarnya.
Kami akan membagi dataset yang dimuat menjadi dua, 80% di antaranya akan kami gunakan untuk melatih model kami dan 20% yang akan kami tahan sebagai dataset validasi.
# Split-out validation dataset array = dataset.values X = array[:,0:4] Y = array[:,4] validation_size = 0.20 seed = 7 X_train, X_validation, Y_train, Y_validation = model_selection.train_test_split(X, Y, test_size=validation_size, random_state=seed)
Anda sekarang memiliki data pelatihan di X_train dan Y_train untuk menyiapkan model dan set X_validation dan Y_validation yang bisa kita gunakan nanti.
Perhatikan bahwa kami menggunakan irisan python untuk memilih kolom dalam array NumPy.
5.2 Uji Harness
Kami akan menggunakan validasi silang 10 kali lipat untuk memperkirakan akurasi.
Ini akan membagi dataset kami menjadi 10 bagian, berlatih pada 9 dan menguji pada 1 dan ulangi untuk semua kombinasi pemisahan uji.
# Test options and evaluation metric seed = 7 scoring = 'accuracy'
Benih acak spesifik tidak masalah.
Kami menggunakan metrik ‘akurasi‘ untuk mengevaluasi model. Ini adalah rasio jumlah instance yang diprediksi dengan benar, dibagi dengan jumlah total instance dalam dataset yang dikalikan dengan 100 untuk memberikan persentase (mis., 95% akurat). Kami akan menggunakan variabel penilaian ketika kami menjalankan build dan mengevaluasi setiap model selanjutnya.
5.3 Membangun Model
Kami tidak tahu algoritma mana yang bagus untuk masalah ini atau konfigurasi apa yang digunakan. Kami mendapatkan ide dari plot bahwa beberapa kelas sebagian secara linear terpisah dalam beberapa dimensi, jadi kami mengharapkan hasil yang umumnya baik.
Mari kita evaluasi 6 algoritma yang berbeda:
Logistic Regression (LR)
Analisis Diskriminan Linier (LDA)
K-Nearest Neighbors (KNN)
Pohon Klasifikasi dan Regresi (CART).
Gaussian Naif Bayes (NB).
Mendukung Mesin Vektor (SVM).
Ini adalah campuran yang baik dari algoritma linear sederhana (LR dan LDA), nonlinear (KNN, CART, NB dan SVM). Kami mereset seed angka acak sebelum setiap run untuk memastikan bahwa evaluasi setiap algoritma dilakukan menggunakan pemisahan data yang persis sama. Ini memastikan hasilnya sebanding secara langsung.
Mari kita bangun dan mengevaluasi model kami:
# Spot Check Algorithms models = [] models.append(('LR', LogisticRegression(solver='liblinear', multi_class='ovr'))) models.append(('LDA', LinearDiscriminantAnalysis())) models.append(('KNN', KNeighborsClassifier())) models.append(('CART', DecisionTreeClassifier())) models.append(('NB', GaussianNB())) models.append(('SVM', SVC(gamma='auto'))) # evaluate each model in turn results = [] names = [] for name, model in models: kfold = model_selection.KFold(n_splits=10, random_state=seed) cv_results = model_selection.cross_val_score(model, X_train, Y_train, cv=kfold, scoring=scoring) results.append(cv_results) names.append(name) msg = "%s: %f (%f)" % (name, cv_results.mean(), cv_results.std()) print(msg)
5.4 Pilih Model Terbaik
Kami sekarang memiliki 6 model dan estimasi akurasi untuk masing-masing. Kita perlu membandingkan model satu sama lain dan memilih yang paling akurat.
Menjalankan contoh di atas, kami mendapatkan hasil mentah berikut:
LR: 0.966667 (0.040825) LDA: 0.975000 (0.038188) KNN: 0.983333 (0.033333) CART: 0.975000 (0.038188) NB: 0.975000 (0.053359) SVM: 0.991667 (0.025000)
Tanyakan, hasil Anda mungkin berbeda.
Dalam hal ini, kita dapat melihat bahwa sepertinya Support Vector Machines (SVM) memiliki skor akurasi estimasi terbesar.
Kami juga dapat membuat plot hasil evaluasi model dan membandingkan spread dan akurasi rata-rata setiap model. Ada populasi ukuran akurasi untuk setiap algoritma karena masing-masing algoritma dievaluasi 10 kali (10 kali lipat validasi silang).
# Compare Algorithms fig = plt.figure() fig.suptitle('Algorithm Comparison') ax = fig.add_subplot(111) plt.boxplot(results) ax.set_xticklabels(names) plt.show()
Anda dapat melihat bahwa kotak dan plot kumis tergencet di bagian atas kisaran, dengan banyak sampel mencapai akurasi 100%.
6. Buat Prediksi
Algoritma KNN sangat sederhana dan merupakan model yang akurat berdasarkan pengujian kami. Sekarang kami ingin mendapatkan gagasan tentang keakuratan model pada set validasi kami.
Ini akan memberi kami pemeriksaan akhir independen pada keakuratan model terbaik. Sangat berharga untuk menyimpan set validasi jika Anda membuat slip selama pelatihan, seperti overfitting ke set pelatihan atau kebocoran data. Keduanya akan menghasilkan hasil yang terlalu optimis.
Kita dapat menjalankan model KNN langsung pada set validasi dan merangkum hasilnya sebagai skor akurasi akhir, matriks kebingungan dan laporan klasifikasi.
# Make predictions on validation dataset knn = KNeighborsClassifier() knn.fit(X_train, Y_train) predictions = knn.predict(X_validation) print(accuracy_score(Y_validation, predictions)) print(confusion_matrix(Y_validation, predictions)) print(classification_report(Y_validation, predictions))
Kita dapat melihat bahwa keakuratannya adalah 0,9 atau 90%. Matriks kebingungan memberikan indikasi tiga kesalahan yang dibuat. Akhirnya, laporan klasifikasi menyediakan pengelompokan masing-masing kelas dengan presisi, penarikan kembali, skor f1 dan dukungan yang menunjukkan hasil yang sangat baik (diberikan dataset validasi kecil).
0.9 [[ 7 0 0] [ 0 11 1] [ 0 2 9]] precision recall f1-score support Iris-setosa 1.00 1.00 1.00 7 Iris-versicolor 0.85 0.92 0.88 12 Iris-virginica 0.90 0.82 0.86 11 micro avg 0.90 0.90 0.90 30 macro avg 0.92 0.91 0.91 30 weighted avg 0.90 0.90 0.90 30
Anda dapat mempelajari lebih lanjut tentang cara membuat prediksi dan memperkirakan probabilitas di sini:
Anda Dapat Melakukan Machine Learning dengan Python
Anda tidak perlu memahami segalanya. (setidaknya tidak sekarang) Tujuan Anda adalah menjalankan materi dari awal sampai akhir dan mendapatkan hasilnya. Anda tidak perlu memahami segalanya pada pass pertama. Tuliskan pertanyaan-pertanyaan Anda saat Anda pergi. Manfaatkan bantuan (“FunctionName”) dengan bantuan sintaksis dalam Python untuk mempelajari semua fungsi yang Anda gunakan.
Anda tidak perlu tahu cara kerja algoritma. Penting untuk mengetahui tentang batasan dan cara mengkonfigurasi algoritma pembelajaran mesin. Tetapi belajar tentang algoritma bisa datang kemudian. Anda perlu membangun pengetahuan algoritma ini secara perlahan dalam jangka waktu yang lama. Hari ini, mulailah dengan merasa nyaman dengan platform.
Anda tidak perlu menjadi programmer Python. Sintaksis bahasa Python bisa intuitif jika Anda baru menggunakannya. Sama seperti bahasa lain, fokuslah pada panggilan fungsi (mis. Fungsi ()) dan penugasan (mis. A = “b”). Ini akan membantu Anda. Anda adalah seorang pengembang, Anda tahu cara memahami dasar-dasar bahasa dengan sangat cepat. Mulailah dan selami rinciannya nanti.
Anda tidak perlu menjadi ahli pembelajaran mesin. Anda dapat mempelajari tentang manfaat dan keterbatasan berbagai algoritma nanti, dan ada banyak posting yang dapat Anda baca nanti untuk memoles langkah-langkah proyek pembelajaran mesin dan pentingnya mengevaluasi akurasi menggunakan validasi silang.
Bagaimana dengan langkah-langkah lain dalam proyek pembelajaran mesin. Kami tidak mencakup semua langkah dalam proyek pembelajaran mesin karena ini adalah proyek pertama Anda dan kami harus fokus pada langkah-langkah utama. Yaitu, memuat data, melihat data, mengevaluasi beberapa algoritma dan membuat beberapa prediksi. Dalam materi selanjutnya kita bisa melihat persiapan data lain dan tugas peningkatan hasil.