Python: Ubuntu 24.04 Tensorflow analisa UMKM Target OMZET
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...")
Dataset ini memiliki kolom "OMZET" yang ingin Anda klasifikasikan. Untuk memulai klasifikasi dengan TensorFlow, kita perlu melakukan beberapa langkah:
- Preprocessing Data: Melakukan encoding untuk data kategorikal dan normalisasi data numerik.
- Defining Target Classes: Menetapkan kategori untuk kolom "OMZET".
- Building a Neural Network Model: Menggunakan TensorFlow untuk membangun model klasifikasi.
- 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."