EricoR/Indian_Airplane_Price_Prediction
0
1{2 "cells": [3 {4 "cell_type": "code",5 "execution_count": 1,6 "id": "e54e1526",7 "metadata": {},8 "outputs": [],9 "source": [10 "import numpy as np\n",11 "import pandas as pd\n",12 "import pickle\n",13 "import json"14 ]15 },16 {17 "cell_type": "code",18 "execution_count": 2,19 "id": "a66241c1",20 "metadata": {},21 "outputs": [22 {23 "name": "stderr",24 "output_type": "stream",25 "text": [26 "c:\\Users\\muham\\anaconda3\\Lib\\site-packages\\sklearn\\base.py:376: InconsistentVersionWarning: Trying to unpickle estimator StandardScaler from version 1.5.2 when using version 1.5.1. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",27 "https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",28 " warnings.warn(\n",29 "c:\\Users\\muham\\anaconda3\\Lib\\site-packages\\sklearn\\base.py:376: InconsistentVersionWarning: Trying to unpickle estimator Pipeline from version 1.5.2 when using version 1.5.1. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",30 "https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",31 " warnings.warn(\n",32 "c:\\Users\\muham\\anaconda3\\Lib\\site-packages\\sklearn\\base.py:376: InconsistentVersionWarning: Trying to unpickle estimator RobustScaler from version 1.5.2 when using version 1.5.1. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",33 "https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",34 " warnings.warn(\n",35 "c:\\Users\\muham\\anaconda3\\Lib\\site-packages\\sklearn\\base.py:376: InconsistentVersionWarning: Trying to unpickle estimator OneHotEncoder from version 1.5.2 when using version 1.5.1. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",36 "https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",37 " warnings.warn(\n",38 "c:\\Users\\muham\\anaconda3\\Lib\\site-packages\\sklearn\\base.py:376: InconsistentVersionWarning: Trying to unpickle estimator OrdinalEncoder from version 1.5.2 when using version 1.5.1. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",39 "https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",40 " warnings.warn(\n",41 "c:\\Users\\muham\\anaconda3\\Lib\\site-packages\\sklearn\\base.py:376: InconsistentVersionWarning: Trying to unpickle estimator ColumnTransformer from version 1.5.2 when using version 1.5.1. This might lead to breaking code or invalid results. Use at your own risk. For more info please refer to:\n",42 "https://scikit-learn.org/stable/model_persistence.html#security-maintainability-limitations\n",43 " warnings.warn(\n",44 "c:\\Users\\muham\\anaconda3\\Lib\\site-packages\\xgboost\\core.py:158: UserWarning: [12:31:32] WARNING: C:\\buildkite-agent\\builds\\buildkite-windows-cpu-autoscaling-group-i-0015a694724fa8361-1\\xgboost\\xgboost-ci-windows\\src\\data\\../common/error_msg.h:80: If you are loading a serialized model (like pickle in Python, RDS in R) or\n",45 "configuration generated by an older version of XGBoost, please export the model by calling\n",46 "`Booster.save_model` from that version first, then load it back in current version. See:\n",47 "\n",48 " https://xgboost.readthedocs.io/en/stable/tutorials/saving_model.html\n",49 "\n",50 "for more details about differences between saving model and serializing.\n",51 "\n",52 " warnings.warn(smsg, UserWarning)\n"53 ]54 }55 ],56 "source": [57 "with open('best_xgb_model.pkl', 'rb') as file_1:\n",58 " best_xgb = pickle.load(file_1)\n",59 "with open('selected_features.txt', 'r') as file_2:\n",60 " features = json.load(file_2)"61 ]62 },63 {64 "cell_type": "code",65 "execution_count": 3,66 "id": "d1ddaf69",67 "metadata": {},68 "outputs": [69 {70 "name": "stdout",71 "output_type": "stream",72 "text": [73 "features: ['airline', 'source_city', 'stops', 'arrival_time', 'destination_city', 'class', 'duration', 'days_left']\n"74 ]75 }76 ],77 "source": [78 "print(\"features:\", features)"79 ]80 },81 {82 "cell_type": "code",83 "execution_count": 4,84 "id": "9c89c829",85 "metadata": {},86 "outputs": [87 {88 "name": "stdout",89 "output_type": "stream",90 "text": [91 " airline flight source_city departure_time stops arrival_time \\\n",92 "0 IndiGo UK-963 Delhi Afternoon zero Afternoon \n",93 "1 IndiGo UK-945 Mumbai Morning one Morning \n",94 "2 AirAsia SG-9927 Bangalore Early_Morning zero Morning \n",95 "3 Akasa Air 6E-533 Chennai Early_Morning one Afternoon \n",96 "4 Akasa Air I5-737 Delhi Afternoon zero Night \n",97 "\n",98 " destination_city class duration days_left \n",99 "0 Bangalore Business 2.12 50 \n",100 "1 Bangalore Business 2.35 45 \n",101 "2 Bangalore Business 3.40 12 \n",102 "3 Chennai Economy 2.86 10 \n",103 "4 Kolkata Economy 2.47 41 \n"104 ]105 }106 ],107 "source": [108 "import pandas as pd\n",109 "import numpy as np\n",110 "\n",111 "# Daftar data untuk diacak\n",112 "airlines = ['SpiceJet', 'AirAsia', 'Vistara', 'IndiGo', 'Akasa Air']\n",113 "flight_numbers = [f'SG-{np.random.randint(1000, 9999)}' for _ in range(5)] + \\\n",114 " [f'I5-{np.random.randint(100, 999)}' for _ in range(5)] + \\\n",115 " [f'UK-{np.random.randint(900, 999)}' for _ in range(5)] + \\\n",116 " [f'6E-{np.random.randint(100, 999)}' for _ in range(5)] + \\\n",117 " [f'QP-{np.random.randint(100, 999)}' for _ in range(5)]\n",118 "source_cities = ['Delhi', 'Mumbai', 'Bangalore', 'Kolkata', 'Chennai']\n",119 "destination_cities = ['Mumbai', 'Delhi', 'Bangalore', 'Kolkata', 'Chennai']\n",120 "departure_times = ['Early_Morning', 'Morning', 'Afternoon', 'Evening', 'Night']\n",121 "arrival_times = ['Early_Morning', 'Morning', 'Afternoon', 'Evening', 'Night']\n",122 "stops = ['zero', 'one', 'two_or_more']\n",123 "classes = ['Economy', 'Business']\n",124 "durations = np.round(np.random.uniform(1.5, 4.0, 5), 2)\n",125 "days_left = np.random.randint(1, 60, 5)\n",126 "\n",127 "# Membuat DataFrame\n",128 "data = {\n",129 " 'airline': np.random.choice(airlines, 5),\n",130 " 'flight': np.random.choice(flight_numbers, 5),\n",131 " 'source_city': np.random.choice(source_cities, 5),\n",132 " 'departure_time': np.random.choice(departure_times, 5),\n",133 " 'stops': np.random.choice(stops, 5),\n",134 " 'arrival_time': np.random.choice(arrival_times, 5),\n",135 " 'destination_city': np.random.choice(destination_cities, 5),\n",136 " 'class': np.random.choice(classes, 5),\n",137 " 'duration': durations,\n",138 " 'days_left': days_left,\n",139 "}\n",140 "\n",141 "df = pd.DataFrame(data)\n",142 "\n",143 "print(df)"144 ]145 },146 {147 "cell_type": "code",148 "execution_count": 5,149 "id": "4e7f2d77",150 "metadata": {},151 "outputs": [],152 "source": [153 "predict_data = df[features]\n",154 "predictions = best_xgb.predict(predict_data)"155 ]156 },157 {158 "cell_type": "code",159 "execution_count": 6,160 "id": "e771e484",161 "metadata": {},162 "outputs": [163 {164 "name": "stdout",165 "output_type": "stream",166 "text": [167 "Prediction of the model: [23936.363 28678.451 25645.736 8989.014 3126.9387]\n"168 ]169 }170 ],171 "source": [172 "print(\"Prediction of the model:\", predictions)"173 ]174 }175 ],176 "metadata": {177 "kernelspec": {178 "display_name": "base",179 "language": "python",180 "name": "python3"181 },182 "language_info": {183 "codemirror_mode": {184 "name": "ipython",185 "version": 3186 },187 "file_extension": ".py",188 "mimetype": "text/x-python",189 "name": "python",190 "nbconvert_exporter": "python",191 "pygments_lexer": "ipython3",192 "version": "3.12.4"193 }194 },195 "nbformat": 4,196 "nbformat_minor": 5197}198 