agrisensa-api / scripts /train_model.py
yandri918's picture
Initial commit for Railway deployment
a18ac6d
Raw
History Blame Contribute Delete
1.39 kB
# train_model.py
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC # Kita akan gunakan Support Vector Classifier
from sklearn.metrics import accuracy_score
import joblib # Untuk menyimpan model
# 1. Muat Dataset
print("Memuat dataset...")
dataset = pd.read_csv('bwd_dataset.csv')
# 2. Pisahkan Fitur (X) dan Target (y)
X = dataset[['avg_hue_value']] # Fitur input
y = dataset['bwd_score'] # Label yang ingin diprediksi
# 3. Pisahkan Data Training dan Data Testing
# 80% untuk melatih model, 20% untuk menguji akurasinya
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
print(f"Jumlah data training: {len(X_train)}, Jumlah data testing: {len(X_test)}")
# 4. Inisialisasi dan Latih Model Machine Learning
print("Melatih model SVM...")
# SVC adalah model klasifikasi yang kuat dan cocok untuk dataset kecil
model = SVC(kernel='linear', probability=True)
model.fit(X_train, y_train)
# 5. Uji Akurasi Model
print("Menguji akurasi model...")
predictions = model.predict(X_test)
accuracy = accuracy_score(y_test, predictions)
print(f"Akurasi model pada data test: {accuracy * 100:.2f}%")
# 6. Simpan Model yang Sudah Terlatih
# Ini langkah terpenting. Kita simpan model ke sebuah file.
joblib.dump(model, 'bwd_model.pkl')
print("Model berhasil dilatih dan disimpan sebagai bwd_model.pkl")