Python: Ubuntu 24.04 Tensorflow analisa UMKM

From OnnoWiki
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

  1. Memproses Data: Mengubah data kategorikal menjadi numerik dan menangani nilai yang hilang.
  2. Membangun Model: Menggunakan TensorFlow untuk klasifikasi.
  3. Melatih Model: Menggunakan data pelatihan.
  4. 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.

Pranala Menarik