Python: Ubuntu 24.04 Tensorflow analisa UMKM Target OMZET
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:
- 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."