{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"# This Python 3 environment comes with many helpful analytics libraries installed\n# It is defined by the kaggle/python docker image: https://github.com/kaggle/docker-python\n# For example, here's several helpful packages to load in \n\nimport numpy as np # linear algebra\nimport pandas as pd # data processing, CSV file I/O (e.g. pd.read_csv)\nimport matplotlib.pyplot as plt\nimport seaborn as sns\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list all files under the input directory\n\nimport os\nfor dirname, _, filenames in os.walk('/kaggle/input'):\n    for filename in filenames:\n        print(os.path.join(dirname, filename))\n\n# Any results you write to the current directory are saved as output.","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import category_encoders as ce   \nfrom sklearn.preprocessing import LabelEncoder","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":true},"cell_type":"code","source":"train = pd.read_csv('/kaggle/input/cat-in-the-dat-ii/train.csv')\ntest =  pd.read_csv('/kaggle/input/cat-in-the-dat-ii/test.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = train.drop({'id'},axis =1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i, key in enumerate(train.columns):\n    print(key , i , len(train[key].unique()))\n    print(train[key].unique())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = train.drop({'nom_5','nom_6', 'nom_7', 'nom_8' , 'nom_9'},axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i, key in enumerate(train.columns):\n    print(key , i , len(train[key].unique()))\n    print(train[key].unique())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_d = train\ntrain_d = train.sort_values(by=['target'])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_d = train_d.reset_index().drop({'index'},axis =1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i in range(len(train_d['target'])):\n    if train_d.iloc[i,-1] == 1:\n        print(i)\n        break","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_d.iloc[487678,-1]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_d_1 = train_d.iloc[487677:,:]\ntrain_d_0 = train_d.iloc[:487677,:]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"replaces_0=[]\nreplaces_1=[]\nfor col in train_d_1.columns:\n    replaces_1.append(train_d_1[col].value_counts().idxmax())\nfor col in train_d_0.columns:\n    replaces_0.append(train_d_0[col].value_counts().idxmax())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for col in range(len(train_d_1.columns)):\n    train_d_1.iloc[:,col] = train_d_1.iloc[:,col].fillna(replaces_1[col])\nfor col in range(len(train_d_0.columns)):\n    train_d_0.iloc[:,col] = train_d_0.iloc[:,col].fillna(replaces_0[col])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_d = pd.concat([train_d_0,train_d_1])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_d.info()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for i, key in enumerate(train_d.columns):\n    print(key , i , len(train_d[key].unique()))\n    print(train_d[key].unique())","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_f = train_d","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"concat_data = np.zeros(shape = (190,19))\nconcat_data = pd.DataFrame(concat_data, columns= train_f.columns)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"ord_0 = [ 'Novice','Contributor', 'Expert','Master', 'Grandmaster' ]\nord_1 = [ 'Freezing','Cold','Warm','Hot', 'Boiling Hot','Lava Hot'  ]\nconcat_data.iloc[:5,11] = ord_0\nconcat_data.iloc[:6,12] = ord_1\nconcat_data.iloc[:15,13]  = sorted(train_f['ord_3'].unique(), reverse =True)\nconcat_data.iloc[:26,14]  = sorted(train_f['ord_4'].unique(), reverse =True)\nconcat_data.iloc[:190,15]  = sorted(train_f['ord_5'].unique(), reverse =True)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_f = pd.concat([concat_data,train_f])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"ce_ord = ce.OrdinalEncoder(cols = ['ord_1','ord_2','ord_3','ord_4','ord_5'])\ntrain_f = ce_ord.fit_transform(train_f)\nce_one_hot = ce.OneHotEncoder(cols = ['bin_3','bin_4','nom_0','nom_1','nom_2','nom_3','nom_4'])\ntrain_f = ce_one_hot.fit_transform(train_f)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_f = train_f[190:]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test = test.drop({'id','nom_5','nom_6', 'nom_7', 'nom_8' , 'nom_9'},axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test.info()","execution_count":null,"outputs":[]},{"metadata":{"_kg_hide-output":true,"trusted":true},"cell_type":"code","source":"concat_data = concat_data.drop({'target'},axis=1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"for col in test.columns:\n    test[col]=test[col].fillna(method='ffill')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"test = pd.concat([concat_data,test],)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"ce_ord = ce.OrdinalEncoder(cols = ['ord_1','ord_2','ord_3','ord_4','ord_5'])\ntest = ce_ord.fit_transform(test)\nce_one_hot = ce.OneHotEncoder(cols = ['bin_3','bin_4','nom_0','nom_1','nom_2','nom_3','nom_4'])\ntest = ce_one_hot.fit_transform(test)\ntest = test[190:]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"target = train_f['target']\ntrain_f = train_f.drop({'target'},axis =1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.linear_model import LogisticRegression\nlg = LogisticRegression()\nlg.fit(train_f,target)\ny_pred = lg.predict(test)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission = pd.read_csv('/kaggle/input/cat-in-the-dat-ii/sample_submission.csv')","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission['target'] = y_pred","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission.to_csv('submission.csv',index=False)","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":1}