Jumat, 29 Oktober 2021

Aplikasi atau Tools Machine Learning yang sering digunakan oleh para Data Scientist

 Machine Learning adalah teknologi hebat yang bisa digunakan dan akan menjadi hal yang menyenangkan ketika kamu belajar menggunakannya dengan cara yang benar. Setelah mempelajari cara menggunakan ML, itu akan menjadi sangat nyaman. Kamu bisa bermain dengan data, melatih model yang kamu kembankan sendiri, membuat algoritma yang cocok dan menemukan metode baru. Ini semua dapat kamu dimungkinkan setelag kamu berhasil menguasai tools dalam Machine Learning.

Machine Learning sendiri memiliki banyak sekali toolssoftware dan platform yang bisa digunakan. Selain itu, teknologi terus maju kedepan. Ini berarti masih ada teknologi baru yang selalu ditemukan. Kamu harus memilih untuk bekerja pada tools tertentu untuk mendapatkan pengalaman dengan hasil yang terbaik.

Pada artikel ini akan berisi apa saja aplikasi machine learning tersebut:

1. Microsoft Excel

Kamu mungkin tak akan asing dengan nama microsoft excel. Aplikasi yang terus dikembangkan oleh microsoft corporation ini merupakan aplikasi khusus untuk pengolahan data. Seiring dengan berjalannya. 

Data Analis

2. RapidMiner Studio

Adalah sebuah aplikasi atau Sofware peragkat lunak yang berfungsi sebagai alat pembelajan pada ilmu data mining. platfrom  dikembangkan oleh suatu perusahaan yang bertujuan untuk bisnis komersial, penelitian, pendidikan, pelatihan, serta semua langkah dalam pembelajaran yang menyangkut pada suatu data yang besar.

Rapidminer Studio

Rapidminer adalah platform data science, Ini adalah antarmuka yang luar biasa dan cukup membantu untuk non-programmer. Tools Machine Learning ini berfungsi pada sistem operasi lintas platform. Biasanya digunakan di perusahaan dan industri untuk pengujian data dan model dengan cepat dengan penggunaan yang benar.

User Interface rapidminer studio ini menyediakan platform yang mudah digunakan. Dalam hal ini, kamu dapat menempatkan data kamu sendiri dan menguji model kamu sendiri. Maka dengan komputasi yang cepat akan memberikan hasil yang baik.

Selain digunakan untuk bidang Industri, Rapidminer studio ini juga menyediakan paltform bagi para pelajar dan bisa digunakan secara gratis.

3. R Studio

R adalah sebuah bahasa pemrograman khusus untuk statistik dan komputasi grafik. Kelebihan dari R adalah syntac yang ringkas dan kemudahan untuk menghasilkan plot berkualitas yang bisa dipakai publikasi termasuk simbol dan rumus matematika.

R biasa digunakan untuk keperluan uji statistik, pomodelan linier dan nonlinier, analisis deret waktu, klasifikasi dan lain sebagainya.

R Studio

Rstudio adalah IDE yang digunakan dengan bahasa R. Rstudio sedikit berbeda dari R, karena R adalah bahasa pemrograman. Ini juga adalah antarmuka terbaik untuk Bahasa R.

R biasanya digunakan untuk analisis data dan fungsi terkait data. Rstudio menjadikan R alat yang sanagat kuat untuk digunakan. Anaconda menyediakan akses ke Rstudio. 

4. Google Data Studio

 Google Data Studio memudahkan kita mendapatkan data dari berbagai sumber tanpa pemrograman. Anda bisa terhubung pada sumber dataset seperti :

  • Google Marketing Platform, termasuk Google Ads, Analytics, Display & Video 360, Search Ads 360.
  •  Produk konsumen Google, seperti Sheets, YouTube, dan Search Console.
  • Database, termasuk BigQuery, MySQL, and PostgreSQL.
  • Upload CSV file dan Google Cloud Storage.
  • Media sosial seperti Facebook, Reddit, and Twitter.
Google Data Studio

5. Google Cloud AutoML

Konsep dasar cloud autoML adalah membuat Artificial Intelegencia dapat diakses oleh semua orang. Ini juga bisa digunakan untuk bisnis.

Cloud AutoML menyediakan model terlatih untuk membuat berbagai layanan. Layanan ini mencakup semuanya, mulai dari Ucapan, pengenalan teks dll.

Google AutoML saat ini mulai populer di kalangan perusahaan. Sangat sulit untuk menyebarkan AI di steiap bidang. Ini disebabkan karena setiap sektor tidak memiliki orang yang ajli dalam AI atau ML. Jadi Google telah menciptakan platform Cloud AutoML yang menyediakan model dan telah dilatih sebelumnya. Sehingga ini akan membantu banyak sekali users.

6. Kaggle

Buat kalian yang mau cari dataset untuk latihan dan buat portofolio data, Kaggle jadi tempat yang tepat. Kaggle adalah anak perusahaan dari Google LLC sebagai wadah berkumpulnya praktisi data dan pembelajaran mesin. Kaggle membantu kita untuk menemukan kumpulan data, diskusi dengan data analis lain, kursus data, dan ada juga kompetisi berhadiah puluhan ribu dollar. 

Kaggle

7. Weka

Weka adalah alat machine learning yang berbasis open source dan diakses melalui GUI. Ini adalah perangkat lunak yang ramah dan bisa digunakan dalam pembelajaran dan penelitian.

Weka memiliki berbagai aplikasi industri. Juga, ini menyediakan akses ke berbagai alat lain dalam machine learning yang termasuk Scikit-learn, R , dan lain sebagainya. 

8. Phyton

Python pertama kali dirilis oleh Python Software Foundation dan didesain oleh Guido van Rossum pada tahun 1991. Dalam beberapa tahun terakhir, Python telah mengembangkan berbagai layanan untuk mendukung pekerjaan di bidang analisis data, komputasi interaktif, dan visualisasi data. Beberapa library Python yang terkenal adalah Numpy, Pandas, dan Scikit-learn. 

Library yang ada di Python:

a. Scikit-Learn

Scikit Learn adalah aplikasi berbasis open source di machine learning, Pada aplikasi ini juga menyediakan platform terpadu untuk user. Yang didalmnya bisa membantu dalam Regresi, Klasifikasi, dan Klaster.

b.  Tenserflow

Tenserflow adalah framework  berbasis open source untuk ML numerik dan skala besar. Ini menggunakan model ML dan neural network models.

Tenserflow adalah tools ML yang ramah dengan python. Ini berjalan pada CPU dan GPU, selain menjalankan model neural network juga bisa untuk Klasifikasi gambar, NLP, dll.

c. Pytorch

Pytorch adalah kerangka kerja deep learning. Aplikasi ini membuat penggunaan GPU yang sangat kuat, sehingga membuatnya sangat cepat dan fleksibel untuk digunakan.

Pytorch berguna karena digunakan dalam aspek ML yang sangat penting. Nah, Pytorch ini sepenuhnya berbasis Python dan merupakan pengganti untuk NumPy. Ini katanya memiliki masa depan yang besar karena masih pemain muda di Industri Data Science.

d. Theano

Theano hampir mirip dengan Tenserflow. Ini memabantu dalam perhitungan numerik, matematika seperti evaluasi cektor dan matriks.
 
Numpy, adalah basis utama Theano. Dan jik Tenserflow berjalan pada bahasa C++ dan Python. Maka untuk Theano sepenuhnya berbasis Python. Ini akan menjadi cepat dan mudah untuk dieksekusi pada sistem.

Pertemuan ke-4 KNN

 Algoritma K-Nearest Neighbors dengan Python dan Scikit-Learn

Algoritma K-nearest neighbor (KNN) adalah jenis algoritma pembelajaran mesin yang diawasi. KNN sangat mudah diimplementasikan dalam bentuk paling dasar, namun melakukan tugas klasifikasi yang cukup kompleks. Ini adalah algoritma pembelajaran malas karena tidak memiliki fase pelatihan khusus. Sebaliknya, ia menggunakan semua data untuk pelatihan sambil mengklasifikasikan titik data atau instance baru. KNN adalah algoritme pembelajaran non-parametrik, yang berarti ia tidak mengasumsikan apa pun tentang data yang mendasarinya. Ini adalah fitur yang sangat berguna karena sebagian besar data dunia nyata tidak benar-benar mengikuti asumsi teoretis apa pun, misalnya keterpisahan linier, distribusi seragam, dll.

Pada artikel ini, kita akan melihat bagaimana KNN dapat diimplementasikan dengan library Scikit-Learn Python Tapi sebelum itu mari kita telusuri dulu teori di balik KNN dan lihat apa saja kelebihan dan kekurangan dari algoritma tersebut.

Teori

Intuisi di balik algoritma KNN adalah salah satu yang paling sederhana dari semua algoritma pembelajaran mesin yang diawasi. Ini hanya menghitung jarak titik data baru ke semua titik data pelatihan lainnya. Jarak dapat berupa jenis apa pun misalnya Euclidean atau Manhattan dll. Kemudian memilih titik data K-terdekat, di mana K dapat berupa bilangan bulat apa pun. Akhirnya ia menetapkan titik data ke kelas tempat sebagian besar titik data K berada.

Mari kita lihat algoritma ini beraksi dengan bantuan contoh sederhana. Misalkan Anda memiliki dataset dengan dua variabel, yang ketika diplot, terlihat seperti pada gambar berikut.


Tugas Anda adalah mengklasifikasikan titik data baru dengan 'X' ke dalam kelas "Biru" atau kelas "Merah". Nilai koordinat titik data adalah x=45 dan y=50. Misalkan nilai K adalah 3. Algoritma KNN dimulai dengan menghitung jarak titik X dari semua titik. Ia kemudian menemukan 3 titik terdekat dengan jarak terkecil ke titik X. Hal ini ditunjukkan pada gambar di bawah. Tiga titik terdekat telah dilingkari.


Langkah terakhir dari algoritma KNN adalah menetapkan titik baru ke kelas yang mayoritas dari tiga titik terdekat berada. Dari gambar di atas kita dapat melihat bahwa dua dari tiga titik terdekat termasuk kelas "Merah" sedangkan satu milik kelas "Biru". Oleh karena itu titik data baru akan diklasifikasikan sebagai "Merah".

Pro dan Kontra KNN

Pada bagian ini kami akan menyajikan beberapa pro dan kontra menggunakan algoritma KNN.

kelebihan

  1. Sangat mudah untuk diimplementasikan
  2. Seperti yang dikatakan sebelumnya, ini adalah algoritma pembelajaran yang malas (lazy learning)  dan oleh karena itu tidak memerlukan pelatihan sebelum membuat prediksi waktu nyata. Ini membuat algoritma KNN jauh lebih cepat daripada algoritma lain yang membutuhkan pelatihan misalnya SVM, regresi linier , dll.
  3. Karena algoritme tidak memerlukan pelatihan sebelum membuat prediksi, data baru dapat ditambahkan dengan mulus.
  4. Hanya ada dua parameter yang dibutuhkan untuk mengimplementasikan KNN yaitu nilai K dan fungsi jarak (misal Euclidean atau Manhattan dll)

Kontra

  1. Algoritma KNN tidak bekerja dengan baik dengan data berdimensi tinggi karena dengan jumlah dimensi yang banyak, menjadi sulit bagi algoritma untuk menghitung jarak di setiap dimensi.
  2. Algoritma KNN memiliki biaya prediksi yang tinggi untuk kumpulan data yang besar. Hal ini dikarenakan pada dataset yang besar biaya perhitungan jarak antara titik baru dengan setiap titik yang ada menjadi lebih tinggi.
  3. Terakhir, algoritma KNN tidak bekerja dengan baik dengan fitur kategorikal karena sulit untuk menemukan jarak antara dimensi dengan fitur kategoris.

Menerapkan Algoritma KNN dengan Scikit-Learn

Di bagian ini, kita akan melihat bagaimana library Scikit-Learn Python dapat digunakan untuk mengimplementasikan algoritma KNN dalam kurang dari 20 baris kode. Petunjuk pengunduhan dan penginstalan untuk perpustakaan Scikit learn tersedia di sini .

Catatan : Kode yang disediakan dalam tutorial ini telah dieksekusi dan diuji dengan notebook Python Jupyter.

Kumpulan Data

Kami akan menggunakan kumpulan data iris yang terkenal untuk contoh KNN kami. Dataset terdiri dari empat atribut: sepal-width, sepal-length, petal-width dan petal-length. Ini adalah atribut dari jenis tanaman iris tertentu. Tugasnya adalah memprediksi kelas yang dimiliki tanaman ini. Ada tiga kelas dalam dataset: Iris-setosa, Iris-versicolor dan Iris-virginica. Rincian lebih lanjut dari dataset tersedia di sini .

Mengimpor Perpustakaan

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

Mengimpor Kumpulan Data

Untuk mengimpor dataset dan memuatnya ke dalam kerangka data pandas kami, jalankan kode berikut:

url = "https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"

# Assign colum names to the dataset
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'Class']

# Read dataset to pandas dataframe
dataset = pd.read_csv(url, names=names)

Untuk melihat seperti apa sebenarnya dataset itu, jalankan perintah berikut:

dataset.head()

Menjalankan skrip di atas akan menampilkan lima baris pertama dari dataset kami seperti yang ditunjukkan di bawah ini:

sepal-panjanglebar sepalkelopak-panjangkelopak-lebarKelas
05.13.51.40.2Iris-setosa
14.93.01.40.2Iris-setosa
24.73.21.30.2Iris-setosa
34.63.11.50.2Iris-setosa
45.03.61.40.2Iris-setosa

Prapemrosesan

Langkah selanjutnya adalah membagi dataset kita menjadi atribut dan labelnya. Untuk melakukannya, gunakan kode berikut:

X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 4].values

The Xvariabel berisi empat kolom pertama dataset (yaitu atribut) sedangkan yberisi label.

Perpecahan Uji Kereta

Untuk menghindari over-fitting, kami akan membagi dataset kami menjadi pelatihan dan pengujian, yang memberi kami ide yang lebih baik tentang bagaimana kinerja algoritme kami selama fase pengujian. Dengan cara ini algoritme kami diuji pada data yang tidak terlihat, seperti halnya dalam aplikasi produksi.

Untuk membuat pemisahan pelatihan dan pengujian, jalankan skrip berikut:

from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.20)

Skrip di atas membagi dataset menjadi 80% data latih dan 20% data uji. Ini berarti bahwa dari total 150 record, training set akan berisi 120 record dan test set berisi 30 record tersebut.

Penskalaan Fitur

Sebelum membuat prediksi aktual, selalu merupakan praktik yang baik untuk menskalakan fitur sehingga semuanya dapat dievaluasi secara seragam. Wikipedia menjelaskan alasannya dengan cukup baik:

Karena rentang nilai data mentah sangat bervariasi, dalam beberapa algoritme pembelajaran mesin, fungsi objektif tidak akan berfungsi dengan baik tanpa normalisasi. Misalnya, mayoritas pengklasifikasi menghitung jarak antara dua titik dengan jarak Euclidean. Jika salah satu fitur memiliki rentang nilai yang luas, jarak akan diatur oleh fitur khusus ini. Oleh karena itu, jangkauan semua fitur harus dinormalisasi sehingga setiap fitur berkontribusi kira-kira secara proporsional terhadap jarak akhir.

Algoritme penurunan gradien (yang digunakan dalam pelatihan jaringan saraf dan algoritme pembelajaran mesin lainnya) juga menyatu lebih cepat dengan fitur yang dinormalisasi.

Skrip berikut melakukan penskalaan fitur:

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X_train)

X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

Pelatihan dan Prediksi

Sangat mudah untuk melatih algoritma KNN dan membuat prediksi dengannya, terutama saat menggunakan Scikit-Learn.

from sklearn.neighbors import KNeighborsClassifier
classifier = KNeighborsClassifier(n_neighbors=5)
classifier.fit(X_train, y_train)

Langkah pertama adalah mengimpor KNeighborsClassifierkelas dari sklearn.neighborsperpustakaan. Pada baris kedua, kelas ini diinisialisasi dengan satu parameter, yaitu n_neigboursIni pada dasarnya adalah nilai untuk K. Tidak ada nilai ideal untuk K dan dipilih setelah pengujian dan evaluasi, namun untuk memulai, 5 tampaknya menjadi nilai yang paling umum digunakan untuk algoritma KNN.

Langkah terakhir adalah membuat prediksi pada data pengujian kami. Untuk melakukannya, jalankan skrip berikut:

y_pred = classifier.predict(X_test)

Mengevaluasi Algoritma

Untuk mengevaluasi suatu algoritme, matriks kebingungan, presisi, ingatan, dan skor f1 adalah metrik yang paling umum digunakan. The confusion_matrixdan classification_reportmetode sklearn.metricsdapat digunakan untuk menghitung metrik ini. Perhatikan skrip berikut:

from sklearn.metrics import classification_report, confusion_matrix
print(confusion_matrix(y_test, y_pred))
print(classification_report(y_test, y_pred))

Output dari skrip di atas terlihat seperti ini:

[[11  0  0]
   0 13  0]
   0  1  6]]
                 precision   recall   f1-score   support

    Iris-setosa       1.00     1.00       1.00        11
Iris-versicolor       1.00     1.00       1.00        13
 Iris-virginica       1.00     1.00       1.00         6

    avg / total       1.00     1.00       1.00        30

Hasilnya menunjukkan bahwa algoritme KNN kami mampu mengklasifikasikan semua 30 catatan dalam set uji dengan akurasi 100%, yang sangat baik. Meskipun algoritme bekerja sangat baik dengan kumpulan data ini, jangan berharap hasil yang sama dengan semua aplikasi. Seperti disebutkan sebelumnya, KNN tidak selalu berkinerja baik dengan fitur berdimensi tinggi atau kategoris.

Membandingkan Error Rate dengan Nilai K

Di bagian pelatihan dan prediksi kami mengatakan bahwa tidak ada cara untuk mengetahui terlebih dahulu nilai K mana yang memberikan hasil terbaik pada langkah pertama. Kami secara acak memilih 5 sebagai nilai K dan kebetulan menghasilkan akurasi 100%.

Salah satu cara untuk membantu Anda menemukan nilai K terbaik adalah dengan memplot grafik nilai K dan tingkat kesalahan yang sesuai untuk kumpulan data.

Di bagian ini, kami akan memplot kesalahan rata-rata untuk nilai prediksi set uji untuk semua nilai K antara 1 dan 40.

Untuk melakukannya, pertama-tama mari kita hitung rata-rata kesalahan untuk semua nilai prediksi di mana K berkisar dari 1 dan 40. Jalankan skrip berikut:

error = []

# Calculating error for K values between 1 and 40
for i in range(1, 40):
    knn = KNeighborsClassifier(n_neighbors=i)
    knn.fit(X_train, y_train)
    pred_i = knn.predict(X_test)
    error.append(np.mean(pred_i != y_test))

Skrip di atas mengeksekusi loop dari 1 hingga 40. Dalam setiap iterasi, kesalahan rata-rata untuk nilai prediksi set pengujian dihitung dan hasilnya ditambahkan ke errordaftar.

Langkah selanjutnya adalah memplot errornilai terhadap nilai K. Jalankan skrip berikut untuk membuat plot:

plt.figure(figsize=(12, 6))
plt.plot(range(1, 40), error, color='red', linestyle='dashed', marker='o',
         markerfacecolor='blue', markersize=10)
plt.title('Error Rate K Value')
plt.xlabel('K Value')
plt.ylabel('Mean Error')

Grafik keluaran terlihat seperti ini:

Dari output kita dapat melihat bahwa mean error adalah nol ketika nilai K berada di antara 5 dan 18. Saya menyarankan Anda untuk bermain-main dengan nilai K untuk melihat bagaimana pengaruhnya terhadap keakuratan prediksi.

Kesimpulan

KNN adalah algoritma klasifikasi yang sederhana namun kuat. Ini tidak memerlukan pelatihan untuk membuat prediksi, yang biasanya merupakan salah satu bagian tersulit dari algoritme pembelajaran mesin. Algoritma KNN telah banyak digunakan untuk mencari kesamaan dokumen dan pengenalan pola. Ini juga telah digunakan untuk mengembangkan sistem rekomendasi dan untuk pengurangan dimensi dan langkah-langkah pra-pemrosesan untuk visi komputer, khususnya tugas pengenalan wajah.

Dari sini, saya akan menyarankan Anda untuk mengimplementasikan algoritma KNN untuk dataset klasifikasi yang berbeda. Variasikan ukuran pengujian dan pelatihan bersama dengan nilai K untuk melihat bagaimana hasil Anda berbeda dan bagaimana Anda dapat meningkatkan akurasi algoritme Anda. Koleksi kumpulan data klasifikasi yang bagus tersedia di sini untuk Anda mainkan.


 



Implementasi Praktis dari Algoritma Faster R-CNN untuk Deteksi Objek (Bagian 2 – dengan kode Python)

  Pengantar Tujuan di balik seri tulisan ini adalah untuk menunjukkan betapa bermanfaatnya berbagai jenis algoritma R-CNN.  Dalam artikel in...