{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Obesity Risk & Meal Planning berbasis AI\n", "\n", "Notebook awal untuk mengikuti tutorial machinelearning.co.id. Materi ini hanya untuk edukasi machine learning, bukan saran medis." ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import LabelEncoder\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.metrics import classification_report\n", "\n", "DATA_URL = \"https://autotrain.app/opendata92bd.html?file=ObesityDataSet_raw_and_data_sinthetic.csv\"\n", "df = pd.read_csv(DATA_URL)\n", "target_col = \"NObeyesdad\" if \"NObeyesdad\" in df.columns else df.columns[-1]\n", "X = df.drop(columns=[target_col]).copy()\n", "y = df[target_col]\n", "\n", "for col in X.columns:\n", " if X[col].dtype == \"object\":\n", " X[col] = LabelEncoder().fit_transform(X[col].astype(str))\n", "\n", "target_encoder = LabelEncoder()\n", "y_encoded = target_encoder.fit_transform(y.astype(str))\n", "X_train, X_test, y_train, y_test = train_test_split(X, y_encoded, test_size=0.2, random_state=42, stratify=y_encoded)\n", "model = RandomForestClassifier(n_estimators=200, random_state=42, class_weight=\"balanced\")\n", "model.fit(X_train, y_train)\n", "preds = model.predict(X_test)\n", "print(classification_report(y_test, preds, target_names=target_encoder.classes_, zero_division=0))" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "name": "python", "pygments_lexer": "ipython3" } }, "nbformat": 4, "nbformat_minor": 5 }