Optimasi Konsumsi Energi di Industri Baja Menggunakan Machine Learning: Studi Kasus dengan Model…
Industri baja merupakan salah satu sektor dengan konsumsi energi yang sangat tinggi. Tantangan besar bagi industri ini adalah bagaimana…
Optimasi Konsumsi Energi di Industri Baja Menggunakan Machine Learning: Studi Kasus dengan Model Prediktif

Ilustrasi Industri Baja
Industri baja merupakan salah satu sektor dengan konsumsi energi yang sangat tinggi. Tantangan besar bagi industri ini adalah bagaimana mengurangi konsumsi energi tanpa mengorbankan kualitas produk. Di sini, kita akan membahas bagaimana machine learning dapat digunakan untuk memprediksi dan mengoptimalkan konsumsi energi dalam proses produksi baja. Menggunakan model prediktif yang dikembangkan, kita akan melihat bagaimana optimasi parameter produksi dapat memberikan dampak signifikan terhadap efisiensi energi.
Dataset yang digunakan untuk pemodelan didapat dari Korea Electric Power Corporation dan bisa diakses di sini. Perusahaan ini memproduksi berbagai jenis kumparan, plat baja, dan plat besi. Dataset mencakup 35.040 baris dan 11 kolom:
- Date: Data waktu berkelanjutan diambil pada tanggal pertama setiap bulan
- Usage_kWh: Konsumsi Energi Industri kWh
- Lagging Current: Daya reaktif (Lagging) kVarh
- Leading Current: Daya reaktif (Leading) kVarh
- CO2: Dalam ppm
- NSM: Jumlah Detik dari tengah malam (s)
- Week: Kategorikal (Weekend (0) or a Weekday (1))
- Day of week: Kategorikal (Sunday, Monday: Saturday)
- Load Type: Kategorikal (Light Load, Medium Load, Maximum Load)
Dan yang akan menjadi target adalah kolom Usage_kWh atau konsumsi energi dari industri tersebut. Hal pertama yang perlu kita lakukan adalah melakukan Exploratory Data Analysis terlebih dahulu. Dataset tersebut tidak memiliki data duplikat dan missing value. Berikut distribusi kolom numerik dari dataset.

Distribusi Numerical Feature
Dari histogram di atas sudah jelas terlihat bagaimana distribusinya, setelah dilakukan uji statistik pun menggunakan metode D’Agostino-Pearson Statistic, didapat semua kolom numerik tidak terdistribusi normal. Karena Target memiliki nilai 0, dan jumlah (1) & proporsinya cukup kecil (0,000029%), maka data akan di-drop supaya perhitungan metric MAPE tidak terdapat nilai infinite.

Korelasi Numerical Feature dengan Target
Terlihat bahwa feature yang berkorelasi kuat dengan target (Usage_kWh) adalah feature CO2(tCO2), dan sisanya berkorelasi lemah dengan target. Hal ini bisa mengindikasikan bahwa kolom ini dapat menjadi feature yang dapat memengaruhi prediksi Target di pemodelan. CO2(tCO2) mengacu pada jumlah emisi karbon dioksida (CO₂) yang dihasilkan selama proses produksi, diukur dalam metrik ton (t).
Kita akan langsung masuk ke pembangunan pemodelan, di mana akan dilakukan model benchmarking dari beberapa model untuk menentukan model mana yang cocok bagi karakteristik dataset kita. Dataset akan dibagi menjadi data train dan data test. Outlier akan dipertahankan karena saya anggap hal ini menjadi karakteristik dari dataset. Model dievaluasi dengan metrik seperti Mean Absolute Percentage Error (MAPE), dan Root Mean Squared Error (RMSE) untuk menilai akurasi prediksi.
Urutan preprocessing secara garis besar sama di setiap model di mana kolom kategorikal akan dilakukan Encoding (One-Hot) dan semua feature akan dilakukan scaling agar menyesuaikan rentang fitur agar semua feature memiliki skala yang serupa.

Alur Pre-processing dan Pemodelan
Berikut adalah hasil benchmarking pertama untuk setiap model dari data train.

Fitting to train set
Setelah disortir berdasarkan nilai MAPE (Mean Absolute Percentage Error), didapat 3 model terbaik (Random Forest, Decision Tree, dan XGB) pada data train di mana error-nya di bawah 3%. Dan ini merupakan score yang cukup baik. Hasil pada prediksi ke data test pun tidak terlalu jauh berbeda, sehingga akan dilakukan Hyperparameter Tuning untuk ketiga model tersebut.

Predict to test set
A. Random Forest Regressor
Best parameter:
- max_depth: 38,
- max_features: ‘auto’,
- min_samples_leaf: 1,
- min_samples_split: 2,
- n_estimators: 237,
- ‘scaler’: StandardScaler()
Score:
MAPE pada train set: -0.0127

Score (Random Forest) pada test set
B. Decision Tree Regressor
Best parameter:
- criterion: ‘absolute_error’,
- max_depth: 26,
- min_samples_leaf: 1,
- min_samples_split: 2,
- ‘scaler’: MinMaxScaler()
Score:
MAPE pada train set: -0.0188

Score (Decision Tree) pada test set
C. Extreme Gradient Boosting Regressor
Best parameter:
- colsample_bytree: 0.39,
- learning_rate: 0.55,
- max_depth’: 6,
- n_estimators: 15000,
- reg_alpha: 10,
- subsample: 0.99,
- scaler: RobustScaler()
Score:
MAPE pada train set: -0.0258

Score (XGBoost) pada test set
Note:
n_estimators = 15000 belum menjadi best parameter pada model Extreme Gradient Boosting ini, karena masalah waktu komputasi yang cukup tinggi, maka akan diselesaikan pada titik parameter tersebut.
Dari hasil Hyperparameter Tuning tersebut, terlihat bahwa model terbaik untuk dataset kita kali ini adalah Random Forest Regressor, dilihat dari setiap metric evaluasi: RMSE, MAE, maupun MAPE, memiliki nilai yang paling rendah. Artinya error yang semakin rendah.
Untuk cara kerja/proses Random Forest Regressor, dapat dilihat pada dokumentasi berikut.
EVALUASI MODEL

Learning Curve Display
Training Score (ditunjukkan dengan garis biru): Skor ini menunjukkan kinerja model pada data train. Kurva ini menunjukkan penurunan yang stabil saat jumlah sampel dalam train set meningkat, menandakan bahwa model semakin baik dalam menyesuaikan data pelatihan dengan bertambahnya data.
Validation Score (ditunjukkan dengan garis oranye): Skor ini menunjukkan kinerja model pada data test, yang merupakan data yang tidak digunakan selama train. Kurva ini juga menurun seiring dengan bertambahnya jumlah sampel dalam set pelatihan, tetapi pada tingkat yang lebih tinggi daripada skor pelatihan. Ini menunjukkan bahwa meskipun model semakin baik dalam menyesuaikan data pelatihan, model masih mengalami sedikit kesulitan dalam generalisasi terhadap data yang tidak terlihat.
Secara keseluruhan, grafik ini menunjukkan bahwa dengan meningkatnya jumlah sampel train set, baik skor train maupun skor test menurun, artinya ada perbaikan dalam kinerja model. Namun, perbedaan (gap) antara skor train dan test menunjukkan bahwa masih ada ruang untuk peningkatan lebih lanjut dalam hal generalisasi.
Residual Plot
Penyebaran Residual: Residual tersebar cukup merata di sekitar garis nol (garis putus-putus merah). Hal ini menunjukkan bahwa model tidak memiliki pola sistematis dalam error prediksinya, artinya ini menjadi indikasi model yang baik.
Homoskedastisitas: Penyebaran error tampak konsisten sepanjang rentang nilai prediksi, tanpa pola yang jelas atau peningkatan variasi yang signifikan. Ini mengindikasikan bahwa asumsi homoskedastisitas (variasi error konstan) terpenuhi, yang merupakan karakteristik penting dalam kasus regresi linier.
Outliers: Ada beberapa titik yang jauh di luar kisaran utama dari residual (di bawah -30). Titik-titik ini dapat dianggap sebagai outliers, yang mungkin menunjukkan beberapa prediksi yang sangat salah. Keberadaan outliers bisa menunjukkan bahwa model mungkin kesulitan menangani beberapa data tertentu atau ada data yang tidak sesuai dengan distribusi umum. Artinya masih ada ruang untuk mengoptimalkan kinerja model, seperti contohnya mungkin kita bisa melakukan handling outlier yang lebih cocok dari dataset yang kita miliki.
Secara keseluruhan, residual plot ini menunjukkan bahwa model mungkin memiliki performa yang baik karena tidak menunjukkan pola residual yang jelas, meskipun kehadiran outliers mungkin memerlukan perhatian lebih lanjut.

Actual vs Prediction
Garis Merah (Actual Line): Ini adalah garis identitas atau garis yang menunjukkan di mana nilai prediksi sama dengan nilai aktual. Jika prediksi model sempurna, semua titik data harusnya berada di garis ini/disekitarnya.
Titik Biru (Prediction): Mewakili pasangan nilai prediksi dan nilai aktual. Sebagian besar titik berada di dekat garis merah, menunjukkan bahwa prediksi model sangat dekat dengan nilai aktual, yang berarti model memiliki kinerja yang baik.
Distribusi Titik: Sebagian besar titik tersebar rapat di sepanjang garis merah, menandakan kesesuaian yang kuat antara prediksi dan nilai aktual. Namun, ada beberapa titik yang cukup jauh dari garis, menunjukkan beberapa error dalam prediksi. Titik-titik ini menunjukkan prediksi yang kurang akurat dan bisa dianggap sebagai outliers yang telah disebutkan sebelumnya.
Grafik ini menunjukkan bahwa model memiliki kinerja yang baik secara keseluruhan, dengan sebagian besar prediksi yang sangat dekat dengan nilai aktual. Namun, ada beberapa outliers yang menunjukkan bahwa model kadang-kadang membuat kesalahan yang signifikan. Ini mungkin menunjukkan adanya data yang tidak biasa atau kompleksitas yang belum ditangkap sepenuhnya oleh model.

Feature Importance
Dari grafik diatas terlihat bahwa CO2(tCO2) adalah fitur yang paling penting, dengan tingkat kepentingan mendekati 1 (atau 100%), menunjukkan bahwa fitur ini sangat dominan dalam model. Sesuai dengan hipotesis pertama kita di korelasi terhadap target.

Feature Importances Value
Fitur lain seperti Lagging_Current_Reactive.Power_kVarh, Lagging_Current_Power_Factor, Leading_Current_Power_Factor, NSM, dan lainnya memiliki nilai kepentingan yang sangat kecil, hampir mendekati nol. Ini menunjukkan bahwa mereka berkontribusi sedikit terhadap prediksi atau output model.

Local Explanation
Warna hijau menunjukkan kontribusi positif terhadap hasil prediksi, sedangkan warna merah menunjukkan kontribusi negatif. Nilai sumbu x menggambarkan seberapa besar setiap fitur memengaruhi hasil prediksi lokal ini.
WeekStatus_Weekend ≤ 0.00: Kontribusi terbesar dan positif terhadap prediksi, dengan nilai sekitar +0.3.
Load_Type_Maximum_Load > 0.00: Memberikan kontribusi negatif yang cukup besar, sekitar -0.2.
2.30 < Lagging_Current_Reactive.Power_kVarh ≤ 5.00 dan 0.00 < Leading_Current_Reactive_Power_kVarh ≤ 1.98: Keduanya memberikan kontribusi positif sedang terhadap prediksi.
Load_Type_Medium_Load ≤ 0.00: Memberikan kontribusi negatif, tetapi lebih kecil dibandingkan dua fitur sebelumnya.
Sisanya seperti Day_of_week_Saturday, Day_of_week_Friday, dan beberapa fitur lainnya, memiliki kontribusi yang lebih kecil baik positif maupun negatif.
Feature Importance dan Local Explanation ini bisa kita gunakan sebagai patokan feature selection pada remodeling. Masih ada ruang untuk kita mengoptimalkan model yang sudah dibuat.
Conclusion
Dengan menggunakan Machine Learning pada dataset Steel Industry Energy Consumption kita bisa mencapai beberapa tujuan analisis dan prediksi, seperti:
- Prediksi Konsumsi Energi, untuk memprediksi konsumsi energi masa depan berdasarkan pola historis dan kondisi saat ini
- Deteksi Anomali: Menilai anomali dalam konsumsi energi yang mungkin menunjukkan masalah operasional atau kebutuhan perawatan
- Optimasi Energi: Mengidentifikasi pola dan faktor yang mempengaruhi konsumsi energi untuk mengoptimalkan penggunaan energi dan mengurangi biaya
- Perencanaan dan Anggaran: Membantu dalam perencanaan anggaran energi dengan prediksi yang lebih akurat dan analisis tren konsumsi energi untuk perencanaan masa depan.
메타데이터
- post_id
- 0976b67461e5
- slug
- optimasi-konsumsi-energi-di-industri-baja-menggunakan-machine-learning-studi-kasus-dengan-model-0976b67461e5
- url
- https://medium.com/@RakaID/optimasi-konsumsi-energi-di-industri-baja-menggunakan-machine-learning-studi-kasus-dengan-model-0976b67461e5
- canonical_url
- https://medium.com/@RakaID/optimasi-konsumsi-energi-di-industri-baja-menggunakan-machine-learning-studi-kasus-dengan-model-0976b67461e5
- author_url
- https://medium.com/@RakaID
- status
- ok
- fetched_at
- 2026-07-22 23:32:06