{"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":"code","source":"import pandas as pd \nimport numpy as np\nimport matplotlib.pyplot as plt\nfrom sklearn.feature_extraction.text import TfidfVectorizer\nfrom lightgbm import LGBMClassifier\nfrom catboost import CatBoostClassifier","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = pd.read_csv('../input/feedback-prize-effectiveness/train.csv')\ntest = pd.read_csv('../input/feedback-prize-effectiveness/test.csv')\n","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"vectorizer = TfidfVectorizer()\nvectorizer.fit(train.discourse_text)\nX_train = vectorizer.transform(train.discourse_text)\nX_test = vectorizer.transform(test.discourse_text)\ny_train = train.discourse_effectiveness.replace({'Adequate':0, 'Effective':1,'Ineffective':-1})","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"lgbm = LGBMClassifier(verbose=-1)\nlgbm.fit(X_train.astype('float32'), y_train)\ny_lgbm = lgbm.predict_proba (X_test.astype('float32'))","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"cbc = CatBoostClassifier(verbose=False)\ncbc.fit(X_train.astype('float32'), y_train)\ny_cbc = cbc.predict_proba (X_test.astype('float32'))","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_lgbm = pd.DataFrame(y_lgbm)\ny_cbc = pd.DataFrame(y_cbc)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission1 = pd.read_csv('../input/feedback-prize-effectiveness/sample_submission.csv')\nsubmission2 = submission1[['Ineffective','Adequate','Effective']]\nsubmission1 = submission1.rename(columns={'Ineffective':'Ineffective1','Adequate':'Adequate1','Effective':'Effective1'})\nsubmission2 = submission2.rename(columns={'Ineffective':'Ineffective2','Adequate':'Adequate2','Effective':'Effective2'})\nsubmission1[['Ineffective1','Adequate1','Effective1']] = y_lgbm\nsubmission2[['Ineffective2','Adequate2','Effective2']] = y_cbc\nsubmission = pd.concat([submission1, submission2], axis=1)\nsubmission['Ineffective'] = (submission['Ineffective1'] + submission['Ineffective2'])/2\nsubmission['Adequate'] = (submission['Adequate1'] + submission['Adequate2'])/2\nsubmission['Effective'] = (submission['Effective1'] + submission['Effective2'])/2\nsubmission = submission[['discourse_id','Ineffective','Adequate','Effective']]","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"submission.to_csv('submission.csv', index=False)","metadata":{},"execution_count":null,"outputs":[]}]}