Python: Ubuntu 24.04 Tensorflow analisa UMKM Target OMZET

From OnnoWiki
Revision as of 05:48, 9 November 2024 by Onnowpurbo (talk | contribs) (Created page with "Dataset ini memiliki kolom "OMZET" yang ingin Anda klasifikasikan. Untuk memulai klasifikasi dengan TensorFlow, kita perlu melakukan beberapa langkah: # '''Preprocessing Data...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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