Python: Ubuntu 24.04 Tensorflow analisa UMKM
Jump to navigation
Jump to search
Data yang diunggah memiliki banyak kolom, termasuk informasi seperti Modal Pendirian, Bulan dan Tahun Mulai Beroperasi, Jenis Kelamin, Skala Usaha, Kategori KBLI, Metode Pemasaran, Penggunaan Teknologi, dan Omzet.
Untuk membuat model klasifikasi sederhana, kita dapat memilih kolom target (misalnya, Skala Usaha untuk klasifikasi berdasarkan ukuran usaha) dan beberapa kolom sebagai fitur, seperti Modal Pendirian, Omzet, dan Metode Pemasaran.
Berikut adalah contoh kode Python dan TensorFlow untuk mengklasifikasikan Skala Usaha berdasarkan beberapa fitur.
Langkah-langkahnya
- Memproses Data: Mengubah data kategorikal menjadi numerik dan menangani nilai yang hilang.
- Membangun Model: Menggunakan TensorFlow untuk klasifikasi.
- Melatih Model: Menggunakan data pelatihan.
- Evaluasi Model: Mengukur akurasi model.
Berikut kode untuk melakukannya:
import pandas as pd import numpy as np from sklearn.model_selection import train_test_split from sklearn.preprocessing import LabelEncoder, StandardScaler import tensorflow as tf from tensorflow.keras.models import Sequential from tensorflow.keras.layers import Dense # Load data file_path = '/mnt/data/UMKM-Sample Kota Bekasi.xlsx' data = pd.read_excel(file_path) # Preprocess data data = data'MODAL PENDIRIAN', 'OMZET', 'METODE PEMASARAN', 'Skala Usaha' # Fill missing values data = data.fillna(method='ffill') # Encode categorical features label_encoder = LabelEncoder() data['METODE PEMASARAN'] = label_encoder.fit_transform(data['METODE PEMASARAN']) data['Skala Usaha'] = label_encoder.fit_transform(data['Skala Usaha']) # Separate features and target X = data'MODAL PENDIRIAN', 'OMZET', 'METODE PEMASARAN' y = data['Skala Usaha'] # Scale features scaler = StandardScaler() X = scaler.fit_transform(X) # Split data X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # Build model model = Sequential([ Dense(32, input_dim=X_train.shape[1], activation='relu'), Dense(16, activation='relu'), Dense(1, activation='sigmoid') ])
# Compile model model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy']) # Train model model.fit(X_train, y_train, epochs=50, batch_size=10, validation_data=(X_test, y_test)) # Evaluate model loss, accuracy = model.evaluate(X_test, y_test) print(f"Model Accuracy: {accuracy * 100:.2f}%")
Penjelasan Kode:
- Preprocessing: Menggunakan `LabelEncoder` untuk mengubah fitur kategorikal.
- Scaling: Menggunakan `StandardScaler` agar nilai fitur berada dalam rentang yang sama.
- Model: Dibangun dengan dua lapisan tersembunyi menggunakan fungsi aktivasi ReLU, dan lapisan output dengan aktivasi sigmoid untuk klasifikasi biner.
- Training: Dilakukan selama 50 epoch dengan ukuran batch 10.
- Evaluasi: Mengukur akurasi pada data uji.
Model ini memberikan klasifikasi dasar untuk Skala Usaha. Jika Anda ingin klasifikasi multikategori, kita perlu menyesuaikan fungsi aktivasi dan loss.