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."