{"cells":[{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.preprocessing import LabelEncoder,OneHotEncoder\nfrom sklearn import preprocessing","execution_count":null,"outputs":[]},{"metadata":{"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","trusted":true},"cell_type":"code","source":"def get_train_data():\n    # load dataset\n    dataset_train = pandas.read_csv(\"../input/train.csv\")\n    dataset_test = pandas.read_csv(\"../input/test.csv\")\n    #['id' 'molecule_name' 'atom_index_0' 'atom_index_1' 'type' 'scalar_coupling_constant']\n    cat_columns =['molecule_name', 'type']\n    label_encoders = {}\n    for col in cat_columns:\n        new_le = LabelEncoder()\n        dataset_train[col] = new_le.fit_transform(dataset_train[col])\n        dataset_test[col] = new_le.fit_transform(dataset_test[col])\n    X_train = pandas.DataFrame(dataset_train, columns=['molecule_name','atom_index_0','atom_index_1','type'])\n    X_test = pandas.DataFrame(dataset_test, columns=['id','molecule_name','atom_index_0','atom_index_1','type'])\n    Y_train = dataset_train['scalar_coupling_constant']\n    return X_train,X_test,Y_train\n\nmin_max_scaler = preprocessing.MinMaxScaler()\nX_train,X_test_with_id,Y_train = get_train_data()\nX_train = min_max_scaler.fit_transform(X_train)\nX_test = pandas.DataFrame(X_test_with_id, columns=['molecule_name','atom_index_0','atom_index_1','type'])\nX_test = min_max_scaler.fit_transform(X_test)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"x_train, x_test, y_train, y_test = train_test_split(X_train, Y_train, test_size=0.1, random_state=42)\nprint(x_train[0:5])\nprint(x_test[0:5])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Regression\n'''\nfrom sklearn.linear_model import LinearRegression  \nregressor = LinearRegression()  \nregressor.fit(x_train, y_train) \n\ny_pred = regressor.predict(x_test)\nprint(regressor.score(x_test,y_test))\ny_out = y_pred = regressor.predict(X_test)\n'''","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"## Random_forest\n'''\nfrom sklearn.ensemble import RandomForestRegressor\nfrom sklearn.metrics import mean_absolute_error\n\nforest_model = RandomForestRegressor(random_state=1)\nforest_model.fit(x_train, y_train)\nprint(forest_model.score(x_test,y_test))\nmelb_preds = forest_model.predict(x_test)\ny_out = forest_model.predict(X_test)\n'''","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"'''\nfrom sklearn.ensemble import GradientBoostingRegressor\nmodel=GradientBoostingRegressor()\nmodel= model.fit(x_train,y_train)\nprint(model.score(x_test,y_test))\ny_out = model.predict(X_test)\n'''","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#Parameters for LightGBM Model\nparams_lgb = {'num_leaves': 128,\n          'min_child_samples': 79,\n          'objective': 'regression',\n          'max_depth': 9,\n          'learning_rate': 0.1,\n          \"boosting_type\": \"gbdt\",\n          \"subsample_freq\": 1,\n          \"subsample\": 0.9,\n          \"bagging_seed\": 47,\n          \"metric\": 'mae',\n          \"verbosity\": -1,\n          'reg_alpha': 0.1302650970728192,\n          'reg_lambda': 0.3603427518866501,\n          'colsample_bytree': 1.0,\n          'n_estimators':10000\n         }\n\n\nimport lightgbm as lgb\nlgtrain = lgb.Dataset(x_train, label=y_train)\nlgval = lgb.Dataset(x_test, label=y_test)\nmodel_lgb = lgb.train(params_lgb, lgtrain, 10000, \n                  valid_sets=[lgtrain, lgval], \n                  verbose_eval=500)\ny_out = model_lgb.predict(X_test)\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"'''\n#CatBoost Model\nfrom catboost import CatBoostRegressor\n\nmodel_cat = CatBoostRegressor(iterations=15000,\n                             learning_rate=0.03,\n                             depth=2,\n                             eval_metric='MAE',\n                             random_seed = 47,\n                             od_wait=5000)\nmodel_cat.fit(x_train,y_train, verbose=500)\ny_out = model_cat.predict(X_test)\n'''","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_out = model_cat.predict(X_test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"my_submission = pandas.DataFrame({'id': X_test_with_id.id, 'scalar_coupling_constant': y_out})\n# you could use any filename. We choose submission here\nmy_submission.to_csv('submission.csv', index=False)","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}