Python: Ubuntu 24.04 Tensorflow analisa UMKM Target OMZET

From OnnoWiki
Jump to navigation Jump to search

Dataset ini memiliki kolom "OMZET" yang ingin Anda klasifikasikan. Untuk memulai klasifikasi dengan TensorFlow, kita perlu melakukan beberapa langkah:

  1. Preprocessing Data: Melakukan encoding untuk data kategorikal dan normalisasi data numerik.
  2. Defining Target Classes: Menetapkan kategori untuk kolom "OMZET".
  3. Building a Neural Network Model: Menggunakan TensorFlow untuk membangun model klasifikasi.
  4. Training and Evaluating the Model.

Berikut adalah kode untuk memulai klasifikasi data "OMZET":

import pandas as pd
import tensorflow as tf
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import LabelEncoder, StandardScaler
from tensorflow.keras import layers

# Load the dataset
file_path = '/mnt/data/UMKM-Sample Kota Bekasi.xlsx'
data = pd.read_excel(file_path)

# Step 1: Data Preprocessing
# Dropping non-informative columns
data = data.drop(['No', 'PROVINSI', 'KABUPATEN', 'KECAMATAN', 'KELURAHAN'], axis=1)

# Encoding categorical variables
label_encoders = {}
for column in data.select_dtypes(include=['object']).columns:
    if column != 'OMZET':  # Exclude target column
        label_encoders[column] = LabelEncoder()
        data[column] = label_encoders[column].fit_transform(data[column].astype(str))

# Defining classes for OMZET
# Adjust thresholds as necessary for your classification needs
data['OMZET'] = pd.cut(data['OMZET'], bins=[0, 5000000, 10000000, float('inf')], labels=[0, 1, 2])

# Splitting into features and target
X = data.drop('OMZET', axis=1)
y = data['OMZET']

# Standardizing numerical features
scaler = StandardScaler()
X = scaler.fit_transform(X)

# Splitting the data
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Step 2: Building the Model
model = tf.keras.Sequential([
    layers.Dense(64, activation='relu', input_shape=(X_train.shape[1],)),
    layers.Dense(32, activation='relu'),
    layers.Dense(3, activation='softmax')  # 3 classes for OMZET
])

# Compiling the model
model.compile(optimizer='adam', loss='sparse_categorical_crossentropy', metrics=['accuracy'])

# Step 3: Training the Model
model.fit(X_train, y_train, epochs=50, batch_size=8, validation_split=0.2)

# Step 4: Evaluating the Model
loss, accuracy = model.evaluate(X_test, y_test)
print(f"Model Accuracy: {accuracy * 100:.2f}%")

Penjelasan Kode

  • Preprocessing: Melakukan encoding untuk data kategorikal dan normalisasi data numerik.
  • Pembagian Kelas OMZET: Mengelompokkan omzet ke dalam tiga kategori berdasarkan ambang batas yang ditentukan.
  • Model Neural Network: Menggunakan model dengan dua hidden layer dan tiga output neurons untuk tiga kelas OMZET.
  • Evaluasi Model: Mengukur akurasi model pada data uji.

Anda bisa menyesuaikan ambang batas untuk klasifikasi sesuai dengan kebutuhan klasifikasi "OMZET."

Pranala Menarik