Delete File Tugas/DecisionTree.ipynb
This commit is contained in:
parent
9c3b6dd4df
commit
3faa263ba5
@ -1,173 +0,0 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"id": "e29b569c-b6a4-4eff-898d-ba939193228d",
|
||||
"metadata": {},
|
||||
"outputs": [
|
||||
{
|
||||
"name": "stdout",
|
||||
"output_type": "stream",
|
||||
"text": [
|
||||
"Sedang memproses data...\n",
|
||||
"Sedang melatih model Decision Tree...\n",
|
||||
"\n",
|
||||
"========================================\n",
|
||||
"HASIL EVALUASI (DECISION TREE)\n",
|
||||
"========================================\n",
|
||||
"1. Single Split Test:\n",
|
||||
" - R2 Score (Akurasi) : 0.8059 (80.59%)\n",
|
||||
" - RMSE (Error Kuadrat): 1.0580\n",
|
||||
" - MAE (Rata-rata Error): 0.7046 poin\n",
|
||||
"\n",
|
||||
"2. Cross Validation (5-Fold):\n",
|
||||
" - Skor per fold : [0.5092657 0.74560943 0.78916584 0.80808243 0.81677625]\n",
|
||||
" - Rata-rata R2 : 0.7338\n",
|
||||
" - Kestabilan : +/- 0.1149\n",
|
||||
"\n",
|
||||
"========================================\n",
|
||||
"Contoh Prediksi:\n",
|
||||
" - Rating Asli : 7.0\n",
|
||||
" - Prediksi Model : 6.19\n"
|
||||
]
|
||||
}
|
||||
],
|
||||
"source": [
|
||||
"import pandas as pd\n",
|
||||
"import numpy as np\n",
|
||||
"from sklearn.model_selection import train_test_split, cross_val_score\n",
|
||||
"from sklearn.tree import DecisionTreeRegressor\n",
|
||||
"from sklearn.metrics import mean_squared_error, r2_score, mean_absolute_error\n",
|
||||
"from sklearn.preprocessing import LabelEncoder\n",
|
||||
"\n",
|
||||
"# ==========================================\n",
|
||||
"# 1. LOAD DATA & PREPROCESSING\n",
|
||||
"# ==========================================\n",
|
||||
"print(\"Sedang memproses data...\")\n",
|
||||
"\n",
|
||||
"df = pd.read_csv('Latest 2025 movies Datasets.csv')\n",
|
||||
"\n",
|
||||
"# Membersihkan data: pastikan kolom penting tidak kosong\n",
|
||||
"required_cols = ['release_date', 'vote_average', 'popularity', 'vote_count', 'original_language']\n",
|
||||
"df = df.dropna(subset=required_cols)\n",
|
||||
"\n",
|
||||
"# Konversi release_date ke datetime\n",
|
||||
"df['release_date'] = pd.to_datetime(df['release_date'], errors='coerce')\n",
|
||||
"df = df.dropna(subset=['release_date']) # hapus yang gagal konversi\n",
|
||||
"\n",
|
||||
"# Feature Engineering\n",
|
||||
"df['release_year'] = df['release_date'].dt.year\n",
|
||||
"df['release_month'] = df['release_date'].dt.month\n",
|
||||
"\n",
|
||||
"# Encoding original_language\n",
|
||||
"le = LabelEncoder()\n",
|
||||
"df['original_language_encoded'] = le.fit_transform(df['original_language'])\n",
|
||||
"\n",
|
||||
"# Menentukan Fitur & Target\n",
|
||||
"features = ['popularity', 'vote_count', 'release_year', 'release_month', 'original_language_encoded']\n",
|
||||
"X = df[features]\n",
|
||||
"y = df['vote_average']\n",
|
||||
"\n",
|
||||
"# Split Data (80% train, 20% test)\n",
|
||||
"X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)\n",
|
||||
"\n",
|
||||
"# ==========================================\n",
|
||||
"# 2. TRAINING MODEL (DECISION TREE)\n",
|
||||
"# ==========================================\n",
|
||||
"print(\"Sedang melatih model Decision Tree...\")\n",
|
||||
"\n",
|
||||
"model = DecisionTreeRegressor(max_depth=5, random_state=42)\n",
|
||||
"model.fit(X_train, y_train)\n",
|
||||
"\n",
|
||||
"# ==========================================\n",
|
||||
"# 3. EVALUASI LENGKAP & CROSS VALIDATION\n",
|
||||
"# ==========================================\n",
|
||||
"print(\"\\n\" + \"=\"*40)\n",
|
||||
"print(\"HASIL EVALUASI (DECISION TREE)\")\n",
|
||||
"print(\"=\"*40)\n",
|
||||
"\n",
|
||||
"# A. Evaluasi Single Split (Test Set)\n",
|
||||
"y_pred = model.predict(X_test)\n",
|
||||
"\n",
|
||||
"r2 = r2_score(y_test, y_pred)\n",
|
||||
"rmse = np.sqrt(mean_squared_error(y_test, y_pred))\n",
|
||||
"mae = mean_absolute_error(y_test, y_pred)\n",
|
||||
"\n",
|
||||
"print(f\"1. Single Split Test:\")\n",
|
||||
"print(f\" - R2 Score (Akurasi) : {r2:.4f} ({r2*100:.2f}%)\")\n",
|
||||
"print(f\" - RMSE (Error Kuadrat): {rmse:.4f}\")\n",
|
||||
"print(f\" - MAE (Rata-rata Error): {mae:.4f} poin\")\n",
|
||||
"\n",
|
||||
"# B. Cross Validation (5-Fold)\n",
|
||||
"print(f\"\\n2. Cross Validation (5-Fold):\")\n",
|
||||
"cv_scores = cross_val_score(model, X, y, cv=5, scoring='r2')\n",
|
||||
"print(f\" - Skor per fold : {cv_scores}\")\n",
|
||||
"print(f\" - Rata-rata R2 : {cv_scores.mean():.4f}\")\n",
|
||||
"print(f\" - Kestabilan : +/- {cv_scores.std():.4f}\")\n",
|
||||
"\n",
|
||||
"# C. Contoh Prediksi\n",
|
||||
"print(\"\\n\" + \"=\"*40)\n",
|
||||
"sample_index = y_test.index[0] # pastikan index asli\n",
|
||||
"print(f\"Contoh Prediksi:\")\n",
|
||||
"print(f\" - Rating Asli : {y_test.loc[sample_index]}\")\n",
|
||||
"print(f\" - Prediksi Model : {y_pred[0]:.2f}\")\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"id": "e15a4120-6a82-4d24-a90b-a0b6df3e59db",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "5d8d987a-7a3a-4601-a22c-7ed3b486d288",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "1ce678cc-f5cb-461f-aaad-b9a25ce0ec40",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"id": "2c7ad7ba-191e-472a-97a9-3870b5ee7f93",
|
||||
"metadata": {},
|
||||
"outputs": [],
|
||||
"source": []
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"kernelspec": {
|
||||
"display_name": "Python 3 (ipykernel)",
|
||||
"language": "python",
|
||||
"name": "python3"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": {
|
||||
"name": "ipython",
|
||||
"version": 3
|
||||
},
|
||||
"file_extension": ".py",
|
||||
"mimetype": "text/x-python",
|
||||
"name": "python",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython3",
|
||||
"version": "3.12.0"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 5
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user