{"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 numpy as np\nimport pandas as pd\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn.feature_selection import SelectKBest\nfrom sklearn.feature_selection import chi2\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.decomposition import PCA\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import confusion_matrix\nfrom sklearn.metrics import accuracy_score\nfrom sklearn.metrics import classification_report\nfrom sklearn.metrics import roc_curve\nfrom sklearn.metrics import auc\nfrom sklearn.metrics import roc_auc_score\nfrom sklearn.metrics import mean_squared_error\nfrom imblearn.over_sampling import SMOTE\nfrom collections import Counter\nfrom math import sqrt\nfrom xgboost import XGBClassifier\nfrom __future__ import absolute_import, division, print_function, unicode_literals\nimport tensorflow as tf\nfrom tensorflow import keras\nfrom sklearn.preprocessing import StandardScaler\nfrom sklearn import preprocessing","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train = pd.read_csv('creditcard_train.csv')\ntest = pd.read_csv('creditcard_test.csv')","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.head()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.head()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"train.shape","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test.shape","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_data = train.iloc[:,0:30]\ny_data = train.iloc[:,-1]","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_standard_scaled_df = ((X_data - X_data.mean())/X_data.std())\ntest_standard_scaled_off_df = ((test - X_data.mean())/X_data.std())","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_standard_scaled_df","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"n = 10","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pca = PCA(n)\n\npca_selected = pca.fit_transform(X_standard_scaled_df)\npca_test_selected = pca.fit_transform(test_standard_scaled_off_df)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"pca_selected_df = pd.DataFrame(data=pca_selected[:,:])\npca_test_selected_df = pd.DataFrame(data = pca_test_selected[:,:])","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"ready_data = pca_selected_df.join(y_data)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"data_class_0 = ready_data[ready_data['Class']==0]\ndata_class_1 = ready_data[ready_data['Class']==1]","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_0 = data_class_0.iloc[:,0:-1] \ny_0 = data_class_0.iloc[:,-1]   \n\nX_1 = data_class_1.iloc[:,0:-1]  \ny_1 = data_class_1.iloc[:,-1]    \n\nX_train_0, X_test_0, y_train_0, y_test_0 = train_test_split(X_0, y_0, test_size=0.33, random_state=123)\nX_train_1, X_test_1, y_train_1, y_test_1 = train_test_split(X_1, y_1, test_size=0.33, random_state=123)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train_0.head()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"X_train = pd.concat([X_train_0, X_train_1])\ny_train = pd.concat([y_train_0, y_train_1])\nX_test = pd.concat([X_test_0 , X_test_1])\ny_test = pd.concat([y_test_0 , y_test_1])","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"sm = SMOTE(random_state=123)\nX_train, y_train = sm.fit_resample(X_train, y_train)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train.shape","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_train.sum()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"len(y_train)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"classifier = keras.Sequential()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"classifier.add(keras.layers.Dense(units =32 , kernel_initializer = 'uniform', activation = 'relu', input_dim =n))","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"classifier.add(keras.layers.Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"classifier.compile(optimizer = 'adam', loss = 'binary_crossentropy', metrics = ['AUC'])","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"model = classifier.fit(X_train.values, y_train.values, batch_size = 128, epochs = 5)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"lr_probs = classifier.predict_proba(X_test)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"lr_probs = lr_probs[:, 0]","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"lr_auc = roc_auc_score(y_test, lr_probs)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"lr_auc","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_pred = classifier.predict(X_test)\ny_pred = np.where(y_pred > 0.5, 1, 0)\nscore = classifier.evaluate(X_test, y_test)\nscore","metadata":{"scrolled":true},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"y_pred.sum()/len(y_pred)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_pred = classifier.predict(pca_test_selected_df)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_pred = np.where(test_pred > 0.5, 1, 0)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_pred = test_pred.reshape((-1))","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_pred[:50]","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_pred.sum()","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"test_pred.sum()/len(test_pred)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"#pd.DataFrame({'Predicted': test_pred}).to_csv('solution2.csv', index_label='Id')","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"len(test_pred)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"len(data_class_1)/len(train)","metadata":{},"execution_count":null,"outputs":[]},{"cell_type":"code","source":"","metadata":{},"execution_count":null,"outputs":[]}]}