{"metadata":{"kernelspec":{"language":"python","display_name":"Python 3","name":"python3"},"language_info":{"pygments_lexer":"ipython3","nbconvert_exporter":"python","version":"3.6.4","file_extension":".py","codemirror_mode":{"name":"ipython","version":3},"name":"python","mimetype":"text/x-python"}},"nbformat_minor":4,"nbformat":4,"cells":[{"cell_type":"markdown","source":"# Import Packages","metadata":{}},{"cell_type":"code","source":"import numpy as np \nimport pandas as pd \nimport matplotlib.pyplot as plt\n\nfrom sklearn.model_selection import train_test_split\n\nfrom sklearn.feature_selection import SelectKBest, mutual_info_regression, VarianceThreshold\nfrom sklearn.preprocessing import StandardScaler, OrdinalEncoder\nfrom sklearn.impute import SimpleImputer\n\nfrom sklearn.linear_model import LinearRegression\n\nfrom sklearn.metrics import r2_score\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))","metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","execution":{"iopub.status.busy":"2022-08-09T09:13:59.548569Z","iopub.execute_input":"2022-08-09T09:13:59.549043Z","iopub.status.idle":"2022-08-09T09:13:59.560727Z","shell.execute_reply.started":"2022-08-09T09:13:59.549007Z","shell.execute_reply":"2022-08-09T09:13:59.559402Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Import Data","metadata":{}},{"cell_type":"code","source":"train = pd.read_csv('../input/mercedes-benz-greener-manufacturing/train.csv.zip')\ntest = pd.read_csv('../input/mercedes-benz-greener-manufacturing/test.csv.zip')","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:13:59.610432Z","iopub.execute_input":"2022-08-09T09:13:59.611148Z","iopub.status.idle":"2022-08-09T09:13:59.901190Z","shell.execute_reply.started":"2022-08-09T09:13:59.611110Z","shell.execute_reply":"2022-08-09T09:13:59.900165Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Check Data","metadata":{}},{"cell_type":"code","source":"train.info()","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:13:59.903066Z","iopub.execute_input":"2022-08-09T09:13:59.903629Z","iopub.status.idle":"2022-08-09T09:13:59.932708Z","shell.execute_reply.started":"2022-08-09T09:13:59.903596Z","shell.execute_reply":"2022-08-09T09:13:59.931119Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.head()","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:13:59.934282Z","iopub.execute_input":"2022-08-09T09:13:59.934611Z","iopub.status.idle":"2022-08-09T09:13:59.960996Z","shell.execute_reply.started":"2022-08-09T09:13:59.934581Z","shell.execute_reply":"2022-08-09T09:13:59.959926Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Divide Data into X and y","metadata":{}},{"cell_type":"code","source":"y = train['y']\nX = train.drop(['ID','y'], axis = 1)\n\nX_test = test.drop(['ID'], axis = 1)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:13:59.963723Z","iopub.execute_input":"2022-08-09T09:13:59.964090Z","iopub.status.idle":"2022-08-09T09:13:59.982356Z","shell.execute_reply.started":"2022-08-09T09:13:59.964058Z","shell.execute_reply":"2022-08-09T09:13:59.981045Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Get Numerical and Categorical Features ","metadata":{}},{"cell_type":"code","source":"numerical_features = X.select_dtypes(include = 'number').columns.values\nnumerical_features","metadata":{"scrolled":true,"execution":{"iopub.status.busy":"2022-08-09T09:13:59.984260Z","iopub.execute_input":"2022-08-09T09:13:59.985249Z","iopub.status.idle":"2022-08-09T09:14:00.007528Z","shell.execute_reply.started":"2022-08-09T09:13:59.985199Z","shell.execute_reply":"2022-08-09T09:14:00.005850Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"categorical_features = X.select_dtypes(exclude = 'number').columns.values\ncategorical_features","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:00.009844Z","iopub.execute_input":"2022-08-09T09:14:00.011166Z","iopub.status.idle":"2022-08-09T09:14:00.023814Z","shell.execute_reply.started":"2022-08-09T09:14:00.011120Z","shell.execute_reply":"2022-08-09T09:14:00.022219Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Train Test Split","metadata":{}},{"cell_type":"code","source":"X_train, X_val, y_train, y_val = train_test_split(X,y, test_size = 0.2, random_state = 35)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:00.026289Z","iopub.execute_input":"2022-08-09T09:14:00.027038Z","iopub.status.idle":"2022-08-09T09:14:00.047626Z","shell.execute_reply.started":"2022-08-09T09:14:00.026998Z","shell.execute_reply":"2022-08-09T09:14:00.046012Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Data Preprocessing","metadata":{}},{"cell_type":"markdown","source":"## Ordinal Encoding","metadata":{}},{"cell_type":"code","source":"enc_oe = OrdinalEncoder(handle_unknown = 'use_encoded_value', unknown_value = np.NaN)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:00.049531Z","iopub.execute_input":"2022-08-09T09:14:00.049956Z","iopub.status.idle":"2022-08-09T09:14:00.054839Z","shell.execute_reply.started":"2022-08-09T09:14:00.049918Z","shell.execute_reply":"2022-08-09T09:14:00.053860Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"enc_oe.fit(X_train[categorical_features])\n\n#tranform Train Data\nX_train[categorical_features] = enc_oe.transform(X_train[categorical_features])\n\n#tranform Val Data\nX_test[categorical_features] = enc_oe.transform(X_test[categorical_features])\n\n#tranform Val Data\nX_val[categorical_features] = enc_oe.transform(X_val[categorical_features])","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:00.056286Z","iopub.execute_input":"2022-08-09T09:14:00.056843Z","iopub.status.idle":"2022-08-09T09:14:00.111844Z","shell.execute_reply.started":"2022-08-09T09:14:00.056808Z","shell.execute_reply":"2022-08-09T09:14:00.110887Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Missing Values Treatment","metadata":{}},{"cell_type":"code","source":"imp = SimpleImputer(strategy = 'median')","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:00.113985Z","iopub.execute_input":"2022-08-09T09:14:00.114530Z","iopub.status.idle":"2022-08-09T09:14:00.119265Z","shell.execute_reply.started":"2022-08-09T09:14:00.114496Z","shell.execute_reply":"2022-08-09T09:14:00.118050Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"imp.fit(X_train)\n\n#tranform Train Data\nX_train = imp.transform(X_train)\n\n#tranform Val Data\nX_test = imp.transform(X_test)\n\n#tranform Val Data\nX_val = imp.transform(X_val)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:00.120734Z","iopub.execute_input":"2022-08-09T09:14:00.121397Z","iopub.status.idle":"2022-08-09T09:14:00.330375Z","shell.execute_reply.started":"2022-08-09T09:14:00.121359Z","shell.execute_reply":"2022-08-09T09:14:00.329002Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Select High Variance Features","metadata":{}},{"cell_type":"code","source":"selector = SelectKBest(mutual_info_regression, k = 30)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:00.333203Z","iopub.execute_input":"2022-08-09T09:14:00.333935Z","iopub.status.idle":"2022-08-09T09:14:00.340632Z","shell.execute_reply.started":"2022-08-09T09:14:00.333859Z","shell.execute_reply":"2022-08-09T09:14:00.338950Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"selector.fit(X_train, y_train)\n\n#tranform Train Data\nX_train = selector.transform(X_train)\n\n#tranform Val Data\nX_test = selector.transform(X_test)\n\n#tranform Val Data\nX_val = selector.transform(X_val)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:00.342568Z","iopub.execute_input":"2022-08-09T09:14:00.343006Z","iopub.status.idle":"2022-08-09T09:14:08.924040Z","shell.execute_reply.started":"2022-08-09T09:14:00.342970Z","shell.execute_reply":"2022-08-09T09:14:08.922602Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Normalize","metadata":{}},{"cell_type":"code","source":"#scaler = StandardScaler()\nfrom sklearn.preprocessing import MinMaxScaler\nscaler =MinMaxScaler()","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:08.925733Z","iopub.execute_input":"2022-08-09T09:14:08.926144Z","iopub.status.idle":"2022-08-09T09:14:08.932431Z","shell.execute_reply.started":"2022-08-09T09:14:08.926110Z","shell.execute_reply":"2022-08-09T09:14:08.930608Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Paused","metadata":{}},{"cell_type":"code","source":"scaler.fit(X_train, y_train)\n\n#tranform Train Data\nX_train = scaler.transform(X_train)\n\n#tranform Val Data\nX_test = scaler.transform(X_test)\n\n#tranform Val Data\nX_val = scaler.transform(X_val)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:08.934466Z","iopub.execute_input":"2022-08-09T09:14:08.935020Z","iopub.status.idle":"2022-08-09T09:14:08.950461Z","shell.execute_reply.started":"2022-08-09T09:14:08.934982Z","shell.execute_reply":"2022-08-09T09:14:08.948919Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"Paused","metadata":{}},{"cell_type":"markdown","source":"# Regression Model","metadata":{}},{"cell_type":"code","source":"#lr = LinearRegression()\nfrom sklearn.ensemble import RandomForestRegressor\nlr=RandomForestRegressor(max_depth=500,criterion=\"mse\",n_estimators=50,bootstrap=\"False\")","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:27:24.542369Z","iopub.execute_input":"2022-08-09T09:27:24.542794Z","iopub.status.idle":"2022-08-09T09:27:24.548624Z","shell.execute_reply.started":"2022-08-09T09:27:24.542762Z","shell.execute_reply":"2022-08-09T09:27:24.547406Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"lr.fit(X_train, y_train)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:27:32.266364Z","iopub.execute_input":"2022-08-09T09:27:32.266838Z","iopub.status.idle":"2022-08-09T09:27:32.520835Z","shell.execute_reply.started":"2022-08-09T09:27:32.266804Z","shell.execute_reply":"2022-08-09T09:27:32.519544Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Make Predictions","metadata":{}},{"cell_type":"code","source":"y_train_pred = lr.predict(X_train)\ny_val_pred = lr.predict(X_val)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:27:36.946820Z","iopub.execute_input":"2022-08-09T09:27:36.947310Z","iopub.status.idle":"2022-08-09T09:27:36.997262Z","shell.execute_reply.started":"2022-08-09T09:27:36.947274Z","shell.execute_reply":"2022-08-09T09:27:36.995969Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Check R Squared","metadata":{}},{"cell_type":"markdown","source":"### Train and Validation R Squared","metadata":{}},{"cell_type":"code","source":"print(r2_score(y_train, y_train_pred))\nprint(r2_score(y_val, y_val_pred))","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:27:40.579805Z","iopub.execute_input":"2022-08-09T09:27:40.580377Z","iopub.status.idle":"2022-08-09T09:27:40.590136Z","shell.execute_reply.started":"2022-08-09T09:27:40.580334Z","shell.execute_reply":"2022-08-09T09:27:40.588861Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"# Make Submission Data","metadata":{}},{"cell_type":"code","source":"y_test_pred = lr.predict(X_test)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:09.550260Z","iopub.execute_input":"2022-08-09T09:14:09.551520Z","iopub.status.idle":"2022-08-09T09:14:09.616518Z","shell.execute_reply.started":"2022-08-09T09:14:09.551430Z","shell.execute_reply":"2022-08-09T09:14:09.615346Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission = pd.DataFrame({\n    'ID' : test['ID'],\n    'y' : y_test_pred\n})\n\nsubmission.head()","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:09.618235Z","iopub.execute_input":"2022-08-09T09:14:09.618925Z","iopub.status.idle":"2022-08-09T09:14:09.633274Z","shell.execute_reply.started":"2022-08-09T09:14:09.618886Z","shell.execute_reply":"2022-08-09T09:14:09.631879Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"markdown","source":"## Export Submission","metadata":{}},{"cell_type":"code","source":"submission.to_csv('lr_basic_preprocessing_k30.csv', index = False)","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:14:09.634679Z","iopub.execute_input":"2022-08-09T09:14:09.636171Z","iopub.status.idle":"2022-08-09T09:14:09.655922Z","shell.execute_reply.started":"2022-08-09T09:14:09.636126Z","shell.execute_reply":"2022-08-09T09:14:09.654336Z"},"trusted":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"lr.feature_importances_","metadata":{"execution":{"iopub.status.busy":"2022-08-09T09:25:06.656464Z","iopub.execute_input":"2022-08-09T09:25:06.656946Z","iopub.status.idle":"2022-08-09T09:25:07.216165Z","shell.execute_reply.started":"2022-08-09T09:25:06.656909Z","shell.execute_reply":"2022-08-09T09:25:07.215004Z"},"trusted":true},"execution_count":null,"outputs":[]}]}