{"cells":[{"metadata":{"_uuid":"375bb03c6f51a94e263fc262d1bd6815b5225bdd"},"cell_type":"markdown","source":"# Import Libraires "},{"metadata":{"trusted":true,"_uuid":"beb14957a1b76ea7646ec8741f66d1fd18df573b"},"cell_type":"code","source":"import os\nimport numpy as np\nimport pandas as pd\nimport seaborn as sns\nimport datetime as dt\nimport matplotlib.pyplot as plt\n%matplotlib inline\nfrom sklearn.ensemble import RandomForestRegressor\nfrom sklearn.linear_model import LinearRegression\nfrom sklearn.tree import DecisionTreeRegressor\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.metrics import mean_squared_error","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"021885fecc8bd1ea44b2ec7e800b8982d1e00d2d"},"cell_type":"markdown","source":"# 1 - Data Loading"},{"metadata":{"trusted":true,"_uuid":"f28757206cab0ac10a09baae40aa77863403ac75"},"cell_type":"code","source":"train = '../input/train.csv'\ntest = '../input/test.csv'\ndfTrain = pd.read_csv(train)\ndfTest = pd.read_csv(test)","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"507f1d8c6c69bc991ab3d0d64626928f937ab2b5"},"cell_type":"markdown","source":"# 2 - Data Exploration"},{"metadata":{"trusted":false,"_uuid":"d65f6988997f7012c5282de19db133a74dfe3dee"},"cell_type":"code","source":"dfTrain.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"08b2823a43f2ce7d5409d6109f14b426b00a8604"},"cell_type":"code","source":"dfTest.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"b1fd11b123d7bf43e92e328fc277e02195f44f27"},"cell_type":"code","source":"dfTrain.isna().sum()","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"69e09c9c13f08f3fdb782dd52f626cf5b6345af1"},"cell_type":"code","source":"dfTest.isna().sum()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"6194f5df95a88d3d968d31bb684339a309766f90"},"cell_type":"markdown","source":"## Outlier's distribution"},{"metadata":{"trusted":false,"_uuid":"8b4408d6e6b1b6d41385ceacfc636c1e9b4801e4"},"cell_type":"code","source":"plt.subplots(figsize=(18,7))\nplt.title(\"Outliers de train.csv\")\ndfTrain.boxplot();","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"40f73bce611efe4679ed65a9799599defdae031f"},"cell_type":"code","source":"print(dfTrain.loc[dfTrain['trip_duration'] > 350000])","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"de62798e38fc2dafb92ee0bf4ad09b0b3d7aac5a"},"cell_type":"markdown","source":"#### On a 4 outliers dans trip_duration, on peut se permettre de les effacés des (1458644) données du dataset"},{"metadata":{"trusted":false,"_uuid":"8514ba98fe8b4f133feea4c588642664a9d40842"},"cell_type":"code","source":"print(f\"{dfTrain.shape}\")\ndfTrain = dfTrain.loc[dfTrain['trip_duration']< 350000]\nprint(f\"{dfTrain.shape}\")","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"41f2298e939772b7cb2de27858ceb7043317e3a0"},"cell_type":"markdown","source":"### Correlation check "},{"metadata":{"trusted":false,"_uuid":"05a7eb7f9212d4f48ed143c7608252b63d0c807f"},"cell_type":"code","source":"sns.heatmap(dfTrain.corr())","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"e66553f5465470d301b35bd25b2ec90a57e043f4"},"cell_type":"markdown","source":"#### Aucune correlation apparente"},{"metadata":{"_uuid":"bc744d975170872fcc26dff8acb92a4e0675b151"},"cell_type":"markdown","source":"## Machine Learning"},{"metadata":{"trusted":false,"_uuid":"1eeee18edefd389b5aa63e9914e5166bba264a35"},"cell_type":"code","source":"dfTrain = dfTrain[dfTrain['passenger_count']>= 1]","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"a5ee5ceab949838468fc0a03706aa11cfc1f1ad9"},"cell_type":"code","source":"dfTrain['pickup_datetime'] = pd.to_datetime(dfTrain['pickup_datetime'])\ndfTest['pickup_datetime'] = pd.to_datetime(dfTest['pickup_datetime'])\n\ndfTrain['month'] = dfTrain['pickup_datetime'].dt.month\ndfTrain['day'] = dfTrain['pickup_datetime'].dt.day\ndfTrain['weekday'] = dfTrain['pickup_datetime'].dt.weekday\ndfTrain['hour'] = dfTrain['pickup_datetime'].dt.hour\ndfTrain['minute'] = dfTrain['pickup_datetime'].dt.minute\n\ndfTest['month'] = dfTest['pickup_datetime'].dt.month\ndfTest['day'] = dfTest['pickup_datetime'].dt.day\ndfTest['weekday'] = dfTest['pickup_datetime'].dt.weekday\ndfTest['hour'] = dfTest['pickup_datetime'].dt.hour\ndfTest['minute'] = dfTest['pickup_datetime'].dt.minute\n\ndfTrain['trip_duration'] = np.log1p(dfTrain['trip_duration'].values)\n\ndfTrain.head()","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"a7376f0fe3f2b215054db42a39258af3fb867c8c"},"cell_type":"code","source":"dfTrain.columns","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"ce1be0f7648e43ec5089b6fe1631d95f09746b2f"},"cell_type":"markdown","source":""},{"metadata":{"trusted":false,"_uuid":"353530465937792fa5a788d30f5ed7f6ed6fefcf"},"cell_type":"code","source":"selection_train = [\"passenger_count\", \"pickup_longitude\", \"pickup_latitude\", \"dropoff_longitude\",\"dropoff_latitude\",\"month\", \"day\", \"weekday\", \"hour\", \"minute\"]\nselection_test = [\"passenger_count\", \"pickup_longitude\", \"pickup_latitude\", \"dropoff_longitude\",\"dropoff_latitude\", \"month\", \"day\", \"weekday\", \"hour\", \"minute\"]\ny_train = dfTrain[\"trip_duration\"]\nX_train = dfTrain[selection_train] \nX_test = dfTest[selection_test]","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"162684c1f518febac6a95ad1a84fb74e54517610"},"cell_type":"code","source":"y_train.head()","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"b3789dde71c52fd39128dde17eebc09a8915cfe2"},"cell_type":"markdown","source":"## Training"},{"metadata":{"trusted":false,"_uuid":"306b6f71c163d53b1b23a71e77956590ae04b7ee"},"cell_type":"code","source":"print(\"Training ...\")\nm = RandomForestRegressor()\nm.fit(X_train, y_train)\n#m1.fit(XdfTrain, YdfTrain)\n#m2.fit(XdfTrain, YdfTrain)\n%timeit\nprint('Done!!!')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"16cca210730d459029964c1944582249101ebf67"},"cell_type":"markdown","source":"### Predictions"},{"metadata":{"trusted":false,"_uuid":"70a81fd52819d216cdb6617320f3bddcbb078a50"},"cell_type":"code","source":"pred = m.predict(X_test)\nprint('Done!!!')","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"3011841c9b63bc480d7582d54e2a0586a65222be"},"cell_type":"markdown","source":"### Submission"},{"metadata":{"trusted":false,"_uuid":"e8b60d349790b78c682436d51b3a302d31ba7db5"},"cell_type":"code","source":"pred = np.expm1(pred)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"fcf2e1991b66cad4d32fd0964b46d4bd3eb3b867"},"cell_type":"code","source":"my_submission = pd.DataFrame({'id':dfTest.id, 'trip_duration':pred})","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"936723c7d2f85c36a8a91c721487e8b150507b8e"},"cell_type":"code","source":"my_submission.head(10)","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"c7610b19fc7826588902b479d645fea825bebd17"},"cell_type":"code","source":"my_submission.to_csv(\"my_submission.csv\", index=False)\nprint(\"Done!!!\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":false,"_uuid":"2f3a62db7d836fcd198aafc87b4e589a8186ba3e"},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","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.7.1"}},"nbformat":4,"nbformat_minor":1}