{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np  \nimport pandas as pd\ndf = pd.read_csv('/kaggle/input/ashrae-energy-prediction/train.csv')\nbuilding = pd.read_csv('/kaggle/input/ashrae-energy-prediction/building_metadata.csv')\nweather = pd.read_csv('/kaggle/input/ashrae-energy-prediction/weather_train.csv')\nbuilding.loc[:,'primary_use'] = building['primary_use'].replace({'Entertainment/public assembly':'public',\n     'Public services':'service','Lodging/residential':'resident','Healthcare':'resident',\n     'Parking':'parking','Warehouse/storage': 'parking','Manufacturing/industrial': 'manufact',\n     'Retail':'service', 'Services':'service', 'Technology/science':'Office',\n     'Food sales and service':'service','Utility':'service','Religious worship':'public'})\nusage = building['primary_use'].unique()\nbuilding.loc[:,'primary_use'] = building['primary_use'].replace(dict(zip(usage,range(len(usage)))))\n\ndf = df.join(building, on='building_id', lsuffix='_1', rsuffix='_2')\ndf.loc[:,'square_feet'] = df['square_feet'].apply(np.log1p)\ndf.loc[:,'floor_count'] = df['floor_count'].fillna(df['floor_count'].mean())\ndf.loc[:,'year_built'] = df['year_built'].fillna(df['year_built'].median())\ndef process_year(x):\n     return 1- (x-1900)/(2017-1900)\n        \ndf.loc[:,'year_built'] = df['year_built'].apply(process_year)\n\nfor col in ['meter_reading','square_feet','year_built','floor_count']:\n     df[col] = df[col].astype(np.float16)\n\nfor col in ['building_id_1','meter','floor_count']:\n     df[col] = df[col].astype(np.int16)\n\ndf.pop('building_id_2')    \n\ndf = df.join(weather, lsuffix='_1', rsuffix='_2')\ndf = df[['building_id_1', 'meter', 'site_id_1', 'primary_use',\n       'square_feet', 'year_built', 'floor_count', 'air_temperature',\n       'cloud_coverage', 'dew_temperature', 'precip_depth_1_hr', \n       'sea_level_pressure', 'wind_direction', 'wind_speed','meter_reading']]\ndf.fillna(0, inplace=True)\nfor col in ['air_temperature','cloud_coverage','dew_temperature','precip_depth_1_hr',\n            'sea_level_pressure','wind_direction','wind_speed'] :\n       df[col] = df[col].astype(np.float16)\n\ndf.to_csv('dump.csv',index=False)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"df = pd.read_csv('dump.csv')\nfrom sklearn.model_selection import train_test_split\nimport xgboost as xgb\nfrom sklearn.metrics import mean_squared_error\nimport statistics\n\nX, y = df[df.columns[:-1]], df['meter_reading']\n   \nX_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.3)\nmodel = xgb.XGBRegressor(n_estimators=10,max_depth=10,reg_lambda=0.5)\n\nmodel.fit(X_train, y_train, early_stopping_rounds=50, eval_set=[(X_val, y_val)], verbose=True)\ny_prediction = model.predict(X_val)\n\nprint(mean_squared_error(y_val,y_prediction))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"X","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i in X.columns:\n    print(X[X[i].isna()])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"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":4,"nbformat_minor":4}