Professional Documents
Culture Documents
DATA SCIENCE Indeks Standar Pencemaran Udara (ISPU) PROVINSI DKI JAKARTA Tahun 2020
DATA SCIENCE Indeks Standar Pencemaran Udara (ISPU) PROVINSI DKI JAKARTA Tahun 2020
BPPMPV KPTK
ß
PROJECT PELATIHAN
DATA SCIENCE
Indeks Standar Pencemaran Udara
(ISPU) PROVINSI DKI JAKARTA
Tahun 2020
1. Tujuan
so2 : Sulfida (dalam bentuk SO2) salah satu parameter yang diukur
max : Nilai ukur paling tinggi dari seluruh parameter yang diukur dalam waktu yang
sama
Pada proyek ini dataset dipahami dan dicoba dengan menggunakan tools dalam bentuk
bahasa pemrograman python dengan menggunakan google colab. Melalui langkah-
langkah berikut:
d. Menelaah Data
1) Melihat data pada dataset yang telah di margin
# Tampilkan hasil merging
print(df.head())
df['categori'].value_counts()
e. Data Cleaning
1) Meng copy dataset awal dengan yg baru agar dataset awal tidak berubah
df_clean = df.copy()
Terjadi eror ketika merubah type data pada variable independent karena terdapat
data “---” maka kita perlu cleaning dengan mengubah data menjadi NaN
# Mengganti nilai non-numerik menjadi null pada kolom
df_clean['pm10'] = pd.to_numeric(df_clean['pm10'],
errors='coerce')
df_clean['so2'] = pd.to_numeric(df_clean['so2'],
errors='coerce')
df_clean['co'] = pd.to_numeric(df_clean['co'],
errors='coerce')
df_clean['o3'] = pd.to_numeric(df_clean['o3'],
errors='coerce')
df_clean['no2'] = pd.to_numeric(df_clean['no2'],
errors='coerce')
df_clean['pm10'] = df_clean['pm10'].astype(float)
df_clean['so2'] = df_clean['so2'].astype(float)
df_clean[['pm10','so2','co','o3','no2']] =
imputer.fit_transform(df_clean[['pm10','so2','co','o3'
,'no2']])
df_clean.info()
f. Visualisasi Data
1) Count plot ‘categori’
Berdasarkan ‘pm10’
df_clean.hist(bins=10,figsize=(10,10))
plt.show()
b. LogisticRegression
5. Hasil Pemodelan
Dari pemodelan yang dilakukan yaitu menggunakan Decision Tree Classifier dan
LogisticRegressionmaka dihasilkan model sebagai berikut:
a. Decision Tree Classifier
# Classification Report
print("Classification Report is:\n",
classification_report(y_test, y_pred))
# F1 Score
f1 = f1_score(y_test, y_pred, average='weighted')
print("\nF1 Score:", f1)
# Precision Score
precision = precision_score(y_test, y_pred,
average='weighted')
print("Precision Score:", precision)
# Recall Score
recall = recall_score(y_test, y_pred, average='weighted')
print("Recall Score:", recall)
# Confusion Matrix
b. LogisticRegression
# Classification Report
print("Classification Report is:\n",
classification_report(y_test, y_pred))
# F1 Score
print("\n F1 Score:\n", f1_score(y_test, y_pred,
average='weighted'))
# Precision Score
# Recall Score
print("\n Recall Score is:\n", recall_score(y_test, y_pred,
average='weighted'))
# Confusion Matrix
cm = confusion_matrix(y_test, y_pred)
sns.heatmap(cm, annot=True, fmt='d', cmap='Blues')
# Menampilkan plot
plt.title('Confusion Matrix')
plt.xlabel('Predicted')
plt.ylabel('Actual')
plt.show()
Secara keseluruhan, model Decision Tree lebih unggul dalam hal akurasi dan
kemampuan untuk mengklasifikasikan kualitas udara dengan presisi yang tinggi
untuk setiap kelas. Model Logistic Regression, meskipun memiliki akurasi yang
masih dapat diterima, menunjukkan keterbatasan dalam mengidentifikasi beberapa
kelas dengan baik. Dalam konteks pemodelan kualitas udara di Provinsi DKI Jakarta,
model Decision Tree dapat menjadi pilihan yang lebih baik dalam memprediksi dan
menganalisis kualitas udara.