{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport csv\nfrom sklearn.ensemble import RandomForestClassifier, ExtraTreesClassifier, VotingClassifier, GradientBoostingClassifier\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.tree import DecisionTreeClassifier\nfrom sklearn.neural_network import MLPClassifier\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.model_selection import cross_val_score\nfrom category_encoders  import OneHotEncoder, OrdinalEncoder\n\nif (0==1):\n    train= pd.read_csv(\"../input/cat-in-the-dat-ii/train.csv\")\n    test= pd.read_csv(\"../input/cat-in-the-dat-ii/test.csv\")\n\n    y_train= train[\"target\"].values\n    train = train.drop([\"target\"], axis=1)\n    \n    print(\"loaded\")\n    map_ord_1 = {'Novice':1, \n            'Contributor':2, \n            'Expert':3, \n            'Master':4, \n            'Grandmaster':5}\n    map_ord_2 = {'Freezing':1, \n            'Cold':2, \n            'Warm':3, \n            'Hot':4, \n            'Boiling Hot':5, \n            'Lava Hot':6}\n    \n    train.fillna(train.mode().iloc[0], inplace=True)\n    test.fillna(test.mode().iloc[0], inplace=True)\n    \n    oe = OrdinalEncoder(cols=['bin_3','bin_4'],handle_unknown='impute')\n    train = oe.fit_transform(train)\n    oh = OneHotEncoder(cols=['nom_0','nom_1','nom_2','nom_3','nom_4'],handle_unknown='impute')\n    train = oh.fit_transform(train)\n    train.drop(['nom_0_1','nom_1_1','nom_2_1','nom_3_1','nom_4_1'], axis=1, inplace=True)\n    train.ord_1 = train.ord_1.map(map_ord_1)\n    train.ord_2 = train.ord_2.map(map_ord_2)\n    train['ord_3'].fillna('0', inplace=True)\n    train['ord_3']=train['ord_3'].apply(lambda x: ord(x)-ord('a'))\n    train['ord_4'].fillna('0', inplace=True)\n    train['ord_4']=train['ord_4'].apply(lambda x: ord(x)-ord('A'))\n    train['ord_5f'] = train['ord_5'].str[0]\n    train['ord_5f'].fillna('`', inplace=True)\n    train['ord_5f']=train['ord_5f'].apply(lambda x: ord(x)-ord('A'))\n    train.drop('ord_5', axis=1, inplace=True)\n    train[['nom_5','nom_6','nom_7','nom_8','nom_9']] = train[['nom_5','nom_6','nom_7','nom_8','nom_9']].applymap(lambda x:int(x,16))\n\n    train.to_csv(\"train_labeled.csv\")\n    \n    test = oe.transform(test)\n    test = oh.transform(test)\n    test.drop(['nom_0_1','nom_1_1','nom_2_1','nom_3_1','nom_4_1'], axis=1, inplace=True)\n    test.ord_1 = test.ord_1.map(map_ord_1)\n    test.ord_2 = test.ord_2.map(map_ord_2)\n    test['ord_3'].fillna('0', inplace=True)\n    test['ord_3']=test['ord_3'].apply(lambda x: ord(x)-ord('a'))\n    test['ord_4'].fillna('0', inplace=True)\n    test['ord_4']=test['ord_4'].apply(lambda x: ord(x)-ord('A'))\n    test['ord_5f'] = test['ord_5'].str[0]\n    test['ord_5f'].fillna('`', inplace=True)\n    test['ord_5f']=test['ord_5f'].apply(lambda x: ord(x)-ord('A'))\n    test.drop('ord_5', axis=1, inplace=True)\n    test[['nom_5','nom_6','nom_7','nom_8','nom_9']] = test[['nom_5','nom_6','nom_7','nom_8','nom_9']].applymap(lambda x:int(x,16))\n\n\n    test.to_csv(\"test_labeled.csv\")\n    \nelse:\n    train= pd.read_csv(\"train_labeled.csv\")\n    test= pd.read_csv(\"test_labeled.csv\")\n\n#train.drop(['nom_5','nom_6','nom_7','nom_8','nom_9'], axis=1, inplace=True)\n#test.drop(['nom_5','nom_6','nom_7','nom_8','nom_9'], axis=1, inplace=True)\n\n\nx_train = train.drop([\"id\"], axis=1).values\nx_test = test.drop([\"id\"], axis=1).values\n\nprint(x_train.shape)\n\nestimators =[\n    ('rf', RandomForestClassifier(n_estimators=30, max_depth=8)),\n    ('et', ExtraTreesClassifier(n_estimators=30, max_depth=8)),\n    ('ld', LinearDiscriminantAnalysis())\n]\n#clf = VotingClassifier(estimators)\n#clf = RandomForestClassifier()\n#clf = GradientBoostingClassifier(n_estimators=30, learning_rate=0.1)\nclf = LinearDiscriminantAnalysis()\n#clf=LogisticRegression(C=0.123456789, solver=\"lbfgs\", max_iter=50)\n#clf = DecisionTreeClassifier()\n#clf = MLPClassifier(max_iter=10000, activation='relu', solver='adam', alpha=0.0001, early_stopping=True, verbose=1)\n\nscores = cross_val_score(clf, x_train, y_train, cv=3, verbose=1, scoring='roc_auc')\nprint(np.mean(scores))\n\nclf.fit(x_train, y_train)\n\nif (1==1):\n    pred_test = clf.predict(x_test)\n    #print(pred_test[:100])\n    with open(\"predicted_data.csv\", \"w\") as f:\n        writer = csv.writer(f, lineterminator='\\n')\n        writer.writerow([\"id\", \"terget\"])\n        for pid, survived in zip(test['id'].astype(int), pred_test.astype(int)):\n            writer.writerow([pid, survived])\n\nprint(\"finished\")","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nimport csv\nimport matplotlib.pyplot as plt\nimport seaborn as sns\nfrom sklearn.ensemble import RandomForestClassifier, ExtraTreesClassifier, VotingClassifier\nfrom sklearn.discriminant_analysis import LinearDiscriminantAnalysis\nfrom sklearn.model_selection import cross_val_score\nfrom sklearn.preprocessing import OrdinalEncoder\n\ntrain= pd.read_csv(\"../input/cat-in-the-dat-ii/train.csv\")\ntest= pd.read_csv(\"../input/cat-in-the-dat-ii/test.csv\")\n\nprint(train.head(10))\n\n#test.fillna(test.mode().iloc[0], inplace=True)\nmap_ord_1 = {'Novice':1, \n            'Contributor':2, \n            'Expert':4, \n            'Master':5, \n            'Grandmaster':6}\ntrain.ord_1 = train.ord_1.map(map_ord_1)\nmap_ord_2 = {'Freezing':1, \n            'Cold':2, \n            'Warm':3, \n            'Hot':4, \n            'Boiling Hot':5, \n            'Lava Hot':6}\ntrain.ord_2 = train.ord_2.map(map_ord_2)\ntrain['ord_3'].fillna('0', inplace=True)\ntrain['ord_3']=train['ord_3'].apply(lambda x: ord(x)-ord('a'))\ntrain['ord_4'].fillna('0', inplace=True)\ntrain['ord_4']=train['ord_4'].apply(lambda x: ord(x)-ord('A'))\ntrain['ord_5f'] = train['ord_5'].str[0]\ntrain['ord_5b'] = train['ord_5'].str[1]\ntrain['ord_5f'].fillna('`', inplace=True)\ntrain['ord_5b'].fillna('`', inplace=True)\ntrain['ord_5f']=train['ord_5f'].apply(lambda x: ord(x)-ord('A'))\ntrain['ord_5b']=train['ord_5b'].apply(lambda x: ord(x)-ord('A'))\n\n\ntrain.fillna(0, inplace=True)\nprint(train.head(10))\n\ng = sns.catplot(x=\"ord_5b\", y=\"target\",  data=train, height=6, kind=\"bar\", palette=\"muted\")\n#train[['']]\n#train['nom_5'] = train['nom_5'].str.lower()\ntrain['nom_6f'] = train['nom_6'].str[8].int(16)\n#train[['ord_1','ord_2','ord_3','ord_4','ord_5']] = oe.fit_transform(train[['ord_1','ord_2','ord_3','ord_4','ord_5']].values)\n\n\n#g.despine(left=True)\n#g = g.set_ylabels(\"survival probability\")\n\n'''\nfor col in ['bin_3','bin_4','nom_0','nom_1','nom_2','nom_3','nom_4','ord_1','ord_2','ord_3','ord_4','ord_5']:\n    train_vals = set(train[col].unique())\n    test_vals  = set(test[col].unique())\n   \n    xor_cat_vals=train_vals ^ test_vals\n    print(col, xor_cat_vals)\n'''\n        ","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"import numpy as np\nimport pandas as pd\nfrom sklearn import preprocessing as pp\nimport category_encoders as ce\ntrain= pd.read_csv(\"../input/cat-in-the-dat-ii/train.csv\")\ntrain=train.head(5)\n    \ntrain.fillna(train.mode().iloc[0], inplace=True)\n\nprint(train[\"nom_5\"])\na = train[['nom_5','nom_6','nom_7','nom_8','nom_9']].applymap(lambda x:list(\"{:0=36b}\".format(int(x,16))))\na = a['nom_5'].apply(pd.Series)\n#train[['nom_5']] = train[['nom_5']].applymap(lambda x:int(x,16))\ntrain[[str(i) for i in range[36]]]=a\n\nprint(train)\ng = sns.catplot(x=\"ord_5b\", y=\"target\",  data=a, height=6, kind=\"bar\", palette=\"muted\")\n\nprint(a)\n#print(df_session_ce_onehot[[\"nom_1\"]])","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}