Dasar-Dasar Yang Harus Di Pelajari Untuk Machine Learning Developer

Dasar-Dasar Yang Harus Di Pelajari Untuk Machine learning Developer

Contoh Aplikasi Machine Learning Developer Lengkap

Sekarang setelah Anda memiliki gambaran tentang seperti apa proyek machine learning, berikut adalah contoh keseluruhan prosesnya.

Mengambil Data

Bisa dibilang bagian tersulit dari proyek machine learning adalah mendapatkan data. Anda dapat menggunakan banyak sumber daya online untuk mendapatkan kumpulan data untuk machine learning, berikut adalah daftar beberapa di antaranya.

Dalam contoh ini, kita akan menggunakan dataset kualitas anggur putih dan mencoba memprediksi kepadatan anggur.

Dalam kebanyakan kasus, data tidak begitu bersih saat diterima dan Anda harus menggunakannya untuk mendapatkan data dalam format yang diinginkan.

Tetapi bahkan dengan data seperti itu, kami masih harus melakukan pembersihan.

Read More

Pilih Fungsi

Kami akan memilih beberapa fitur untuk memprediksi kepadatan anggur. Fitur yang akan kami gunakan antara lain: Mass , pH , Alcohol , Fixed Acidity , dan Total Sulphur Dioxide.

Ini bisa berupa kombinasi dari fungsi yang tersedia, yang saya pilih secara sewenang-wenang. Jangan ragu untuk menggunakan apa pun sebagai pengganti fungsi-fungsi ini, atau gunakan semuanya!

Pemilihan Algoritma

Sekarang setelah Anda mengetahui masalah yang ingin Anda selesaikan dan data yang harus Anda tangani, saatnya untuk mulai mengerjakan algoritme.

Karena kami mencoba memprediksi nilai berkelanjutan berdasarkan banyak fitur, kemungkinan besar ini adalah masalah regresi. Jika kami mencoba untuk memprediksi nilai diskrit, seperti jenis anggur, itu mungkin masalah klasifikasi.

Inilah sebabnya mengapa sangat penting untuk memahami data sebelum melompat ke alat machine learning.

Ini dapat membantu Anda mempersempit jumlah algoritme yang dapat Anda pilih untuk masalah Anda. Algoritma regresi berganda adalah titik awal kami. Metode ini sering digunakan ketika Anda berurusan dengan beberapa parameter yang akan mempengaruhi hasil akhir.

Algoritme regresi berganda mirip dengan algoritme regresi biasa, tetapi dapat memiliki banyak masukan. Persamaan di belakangnya adalah:

y = theta_0 + sum(theta_n * X_n)

Kami menginisialisasi keduanya theta_0 (istilah bias) dan theta_n istilah ke beberapa nilai, biasanya 1 atau 0, kecuali jika Anda memiliki informasi lain yang menjadi dasar nilai-nilai ini.

Setelah menetapkan nilai awal, kami mencoba mengoptimalkannya agar sesuai dengan masalah. Kami melakukan ini dengan memecahkan persamaan penurunan gradien:

theta_0 = theta_0 - alpha * (1 / m) * sum(y_n - y_i)

theta_n = theta_n - alpha * (1 / m) * sum(y_n - y_i) * X_n

dimana y_n adalah nilai prediksi yang dihitung dari algoritma dan y_i merupakan nilai atau nilai yang diharapkan yang kita dapatkan dari data.

Kami ingin margin kesalahan antara nilai prediksi dan aktual menjadi sekecil mungkin. Inilah sebabnya kami mencoba mengoptimalkan nilai theta. Dengan cara ini kita dapat meminimalkan fungsi biaya yang digunakan untuk memprediksi nilai output.

Berikut adalah persamaan fungsi biaya:

J(theta_n) = (1 / 2m) * sum(y_n - y_i)^2

Itu saja matematika yang kita butuhkan untuk membangun dan melatih model kita, jadi mari kita mulai.


Data Machine Learning Developer Yang Telah Diproses Sebelumnya

Hal pertama yang harus Anda lakukan adalah melihat dan melihat data kami. Saya telah membuat beberapa modifikasi pada kumpulan data kualitas anggur ini sehingga dapat digunakan dengan algoritme kami.

Anda dapat mengunduhnya di sini  : 

Yang harus anda lakukan adalah mengambil file asli, menghapus fitur yang tidak diperlukan, memindahkan kepadatan hingga akhir dan membersihkan format.

Sekarang kita bisa sampai ke bagian preprocessing yang sebenarnya! Buat file baru bernama multivariate-wine.py . File harus berada di folder yang sama dengan dataset.

Hal pertama yang kita lakukan dalam file ini adalah mengimpor beberapa paket dan melihat seperti apa dataset itu.

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

df = pd.read_csv('./wine-quality-data.csv', header=None)

print(df.head())

Anda akan melihat sesuatu seperti ini di terminal.

Dasar-Dasar Yang Harus Di Pelajari Untuk Machine learning Developer

Data terlihat bagus untuk algoritma regresi berganda, jadi kita bisa mulai membangun modelnya. Kami mendukung Anda untuk mencoba memulai dengan dataset anggur putih asli dan melihat apakah Anda dapat menemukan cara untuk memformatnya dengan benar.

Pemodelan

Kami perlu menambahkan istilah bias ke data karena seperti yang Anda lihat dalam deskripsi algoritme, kami membutuhkannya karena itu istilahnya adalah theta_0.

df = pd.concat([pd.Series(1, index=df.index, name='00'), df], axis=1)

Karena data sudah siap, kita dapat mendefinisikan variabel independen dan dependen untuk algoritma.

X = df.drop(columns=5)
y = df.iloc[:, 6]

Sekarang, normalkan data dengan membagi setiap kolom dengan nilai maksimum di kolom itu.

Anda sebenarnya tidak harus melakukan langkah ini, tetapi ini akan membantu mempercepat waktu pelatihan algoritme. Ini juga membantu mencegah satu fungsi menjadi lebih dominan daripada yang lain.

for i in range(1, len(X.columns)):
	X[i-1] = X[i-1]/np.max(X[i-1])

Mari kita lihat data sejak normalisasi.

print(X.head())

Anda akan melihat sesuatu seperti ini di terminal.

Dasar-Dasar Yang Harus Di Pelajari Untuk Machine learning Developer

Setelah data siap, kita dapat menginisialisasi parameter theta. Itu berarti kita akan membuat array dengan jumlah kolom yang sama dengan variabel input X.

theta = np.array([1]*len(X.columns))

Jika Anda mencetaknya di terminal akan terlihat seperti ini

[1 1 1 1 1 1]

Kemudian, kita akan mengatur jumlah training point yang akan diambil dari data tersebut. Kami akan meninggalkan 500 titik data sehingga kami dapat menggunakannya untuk pengujian nanti. Ini akan menjadi nilai m dalam persamaan penurunan gradien yang telah kita bahas sebelumnya .

m = len(df) - 500

Sekarang, mari kita mulai menulis fungsi-fungsi yang perlu dilatih setelah membangun model. Kita akan mulai dengan fungsi hipotetis, yang hanya merupakan variabel input dikalikan dengan argumen theta_n.

def hypothesis(theta, X):
	return theta * X

Selanjutnya, kita akan menentukan model biaya yang akan memberi kita margin kesalahan antara nilai aktual dan prediksi.

def calculateCost(X, y, theta):
    y1 = hypothesis(theta, X)
    y1 = np.sum(y1, axis=1)

    return (1 / 2 * m) * sum(np.sqrt((y1 - y) ** 2))

Fungsi terakhir yang kita butuhkan sebelum kita siap menjalankan model adalah fungsi yang menghitung nilai penurunan gradien.

def gradientDescent(X, y, theta, alpha, i):
    J = [] # cost function for each iteration
    k = 0
    while k < i:
        y1 = hypothesis(theta, X)
        y1 = np.sum(y1, axis=1)
        for c in range(1, len(X.columns)):
            theta[c] = theta[c] - alpha * (1 / m) * (sum((y1 - y) * X.iloc[:, c]))
        j = calculateCost(X, y, theta)
        J.append(j)
        k += 1
    return J, j, theta

Dengan tiga fitur ini dan membersihkan data, kami akhirnya dapat melatih membuat modelnya.

Latihan Membuat Model

Bagian pelatihan adalah bagian yang menyenangkan dan bagian termudah. Jika Anda telah mengatur algoritme dengan benar yang harus Anda lakukan adalah mengambil parameter yang dioptimalkan yang diberikannya kepada Anda dan membuat prediksi.

Kami akan mengembalikan biaya untuk setiap iterasi, biaya akhir, dan daftar nilai theta yang dioptimalkan untuk fungsi penurunan gradien. Jadi, kita akan mendapatkan nilai theta yang dioptimalkan dan menggunakannya untuk pengujian.

J, j, theta = gradientDescent(X, y, theta, 0.1, 10000)

Setelah melakukan semua pekerjaan pengaturan fitur dan data dengan benar, one-liner ini melatih model dan memberi kami nilai theta yang kami butuhkan untuk mulai memprediksi dan menguji akurasi model.

Uji Model Machine Learning Developer

Sekarang, kita dapat menguji model dengan menggunakan data untuk membuat prediksi.

y_hat = hypothesis(theta, X)
y_hat = np.sum(y_hat, axis=1)

Setelah memeriksa beberapa nilai, Anda akan tahu apakah modelnya cukup akurat. Atau jika Anda perlu melakukan lebih banyak penyesuaian pada nilai theta.

Jika Anda puas dengan hasil pengujian, Anda dapat melanjutkan dan mulai menggunakan model ini dalam proyek Anda.

Gunakan Model Machine Learning Developer

Nilai theta yang dioptimalkan benar-benar semua yang Anda butuhkan untuk memulai model Anda. Bahkan dalam produksi, Anda akan terus menggunakan persamaan yang sama, tetapi dengan nilai theta optimal yang akan memberi Anda prediksi paling akurat.

Anda bahkan dapat terus melatih model dan mencoba menemukan nilai theta yang lebih baik.

Kesimpulan

Ada banyak lapisan untuk machine learning developer, tetapi tidak ada yang terlalu rumit. Memulai sangat mudah jika Anda bersedia meluangkan waktu untuk membaca tentang perpustakaan dan alat machine learning. Anda tidak perlu mengetahui matematika dan statistik tingkat lanjut untuk mempelajari konsep-konsep ini atau bahkan memecahkan masalah dunia nyata.

Tolkit ini lebih canggih dari sebelumnya, sehingga Anda dapat menjadi insinyur machine learning tanpa mengetahui banyak matematika di baliknya.

Hal utama yang perlu Anda ketahui adalah bagaimana menangani data. Ini adalah bagian yang tidak suka dibicarakan oleh siapa pun. Algoritme ini menyenangkan dan mengasyikkan, tetapi terkadang Anda bahkan perlu menulis prosedur SQL untuk mendapatkan data mentah yang Anda butuhkan sebelum mulai memprosesnya.

Machine learning memiliki berbagai aplikasi, dari video game, kedokteran hingga otomatisasi manufaktur.

Jika Anda tertarik dengan machine learning, luangkan waktu dan buat model kecil. Saat Anda mulai merasa lebih nyaman, tambahkan model dan terus belajar

Related posts

Leave a Reply

Your email address will not be published. Required fields are marked *