1242 lines (1242 with data), 107.8 kB
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"name": "Data Mining.ipynb",
"provenance": [],
"collapsed_sections": []
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"accelerator": "GPU"
},
"cells": [
{
"cell_type": "code",
"metadata": {
"id": "UxfB6oC1J7Jw",
"colab_type": "code",
"colab": {}
},
"source": [
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"from sklearn.base import BaseEstimator, TransformerMixin\n",
"from sklearn.utils.validation import check_X_y, check_array, check_is_fitted\n",
"from sklearn.utils.multiclass import unique_labels\n",
"import scipy.stats as st\n",
"\n",
"from sklearn import tree\n",
"from sklearn import naive_bayes\n",
"from sklearn.neural_network import MLPClassifier\n",
"from sklearn.neighbors import KNeighborsClassifier\n",
"from sklearn.ensemble import AdaBoostClassifier\n",
"from sklearn.pipeline import Pipeline\n",
"from sklearn.model_selection import GridSearchCV\n",
"from sklearn.model_selection import cross_val_score\n",
"from sklearn.model_selection import KFold\n",
"from tempfile import mkdtemp\n",
"import sys\n",
"sys.path.append('/content/drive/My Drive/Colab/Data-Mining Project')\n",
"from TScoreSelection import TScoreSelection\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")\n",
"\n"
],
"execution_count": 152,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "fuEAqu6DKG7P",
"colab_type": "code",
"colab": {}
},
"source": [
"def load_data():\n",
" '''\n",
" Load data from CSV file\n",
" returns X,Y and random seeds\n",
" '''\n",
" dataFrame = pd.read_csv('/content/drive/My Drive/Colab/Data-Mining Project/pp5i_train.gr.csv')\n",
" dataFrame.set_index('SNO', inplace=True)\n",
" dataFrame = dataFrame.transpose()\n",
" dataFrame.reset_index(drop=True, inplace=True)\n",
"\n",
" y = pd.read_csv('/content/drive/My Drive/Colab/Data-Mining Project/pp5i_train_class.txt')\n",
" dataFrame = pd.concat([dataFrame, y], axis=1)\n",
" myRndSeeds = 72\n",
" dataFrame = dataFrame.sample(\n",
" frac=1, random_state=myRndSeeds).reset_index(drop=True)\n",
" print(dataFrame.shape)\n",
" print(dataFrame.head())\n",
"\n",
" X = dataFrame.drop('Class', axis=1)\n",
"\n",
" y = dataFrame['Class']\n",
"\n",
" return X, y, myRndSeeds"
],
"execution_count": 153,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "0K_06IGSKOGp",
"colab_type": "code",
"colab": {}
},
"source": [
"def clean_data(X):\n",
" '''\n",
" Thresholding both train and test data \n",
" to a minimum value of 20, maximum of 16,000.\n",
" '''\n",
" X.clip(upper=16000, lower=20, inplace=True)\n",
" print(X.shape)\n",
" X = X.loc[:, X.max() - X.min() > 2]\n",
" print(X.shape)\n",
" return X"
],
"execution_count": 154,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "BEK3QyDJKauc",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 204
},
"outputId": "58a2137e-c25f-4d44-afd9-90ba72e30aa6"
},
"source": [
"# Loading Dataset\n",
"X, y, myRndSeeds = load_data()\n",
"\n",
"# Cleaning Dataset\n",
"X = clean_data(X)\n",
"\n",
"# Feature selection using Ttest\n",
"cachedir = mkdtemp()\n",
"pipe = Pipeline([('featureSelection', TScoreSelection(w=10)),\n",
" ('classify', KNeighborsClassifier(n_neighbors=1))],\n",
" memory=cachedir)\n",
"\n",
"# Top Gene Selection\n",
"N_GENES = [2, 4, 6, 8, 10, 12, 15, 20, 25, 30]\n",
"N_LAYERS = [(32,), (64,), (128,)]\n",
"\n",
"# Hyperparameter Optimization\n",
"tuned_parameters = [\n",
" # KNN Classifier(2,3,4)\n",
" {'featureSelection__w': N_GENES,\n",
" 'classify': [KNeighborsClassifier()],\n",
" 'classify__n_neighbors': [2, 3, 4]\n",
" },\n",
" # Decision Tree Classifier(J48 algorithm)\n",
" {'featureSelection__w': N_GENES,\n",
" 'classify': [tree.DecisionTreeClassifier()],\n",
" 'classify__criterion':['gini', 'entropy'],\n",
" 'classify__min_samples_leaf': [1, 3, 5],\n",
" 'classify__max_depth': [3, 6, 9],\n",
" 'classify__presort': [True]\n",
" },\n",
" # Neural Network Multi-label Classifier\n",
" {'featureSelection__w': N_GENES,\n",
" 'classify': [MLPClassifier()],\n",
" 'classify__hidden_layer_sizes': N_LAYERS,\n",
" 'classify__activation': ['logistic'],\n",
" 'classify__alpha':[0.05, 0.01, 0.005, 0.001],\n",
" 'classify__max_iter':[1000],\n",
" 'classify__solver': ['lbfgs'],\n",
" 'classify__verbose': [True]\n",
" },\n",
" # Naïve Bayes Classifier\n",
" {'featureSelection__w': N_GENES,\n",
" 'classify': [naive_bayes.GaussianNB()]\n",
" },\n",
" # AdaBoost Classifier\n",
" {'featureSelection__w': N_GENES,\n",
" 'classify': [AdaBoostClassifier()]\n",
" }\n",
"]\n",
"\n",
"# Model Selection using Pipeline and Cross validation\n",
"kfolds = KFold(n_splits=5, shuffle=True, random_state=myRndSeeds)\n",
"model = GridSearchCV(pipe, tuned_parameters, cv=kfolds,\n",
" return_train_score=True)\n",
"model.fit(X, y)\n",
"results = pd.DataFrame(model.cv_results_)"
],
"execution_count": 155,
"outputs": [
{
"output_type": "stream",
"text": [
"(69, 7071)\n",
" A28102_at AB000114_at AB000115_at ... M71243_f_at Z78285_f_at Class\n",
"0 26 26 14 ... 26 -2 MED\n",
"1 23 24 9 ... 35 -4 MED\n",
"2 11 54 5 ... 28 15 MED\n",
"3 35 27 19 ... 36 -20 RHB\n",
"4 68 21 35 ... 27 -1 JPA\n",
"\n",
"[5 rows x 7071 columns]\n",
"(69, 7070)\n",
"(69, 6746)\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "5K0veHvBmoDh",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 419
},
"outputId": "7894d95f-78a9-41c5-ba5b-948e1583e4ec"
},
"source": [
"results[['mean_train_score','mean_test_score']]"
],
"execution_count": 167,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_train_score</th>\n",
" <th>mean_test_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>0.963766</td>\n",
" <td>0.842857</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>0.974610</td>\n",
" <td>0.885714</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>0.981883</td>\n",
" <td>0.884615</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>0.978247</td>\n",
" <td>0.870330</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0.978182</td>\n",
" <td>0.884615</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>345</th>\n",
" <td>0.787338</td>\n",
" <td>0.531868</td>\n",
" </tr>\n",
" <tr>\n",
" <th>346</th>\n",
" <td>0.996429</td>\n",
" <td>0.753846</td>\n",
" </tr>\n",
" <tr>\n",
" <th>347</th>\n",
" <td>0.996429</td>\n",
" <td>0.752747</td>\n",
" </tr>\n",
" <tr>\n",
" <th>348</th>\n",
" <td>0.996429</td>\n",
" <td>0.767033</td>\n",
" </tr>\n",
" <tr>\n",
" <th>349</th>\n",
" <td>0.996429</td>\n",
" <td>0.752747</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>350 rows × 2 columns</p>\n",
"</div>"
],
"text/plain": [
" mean_train_score mean_test_score\n",
"0 0.963766 0.842857\n",
"1 0.974610 0.885714\n",
"2 0.981883 0.884615\n",
"3 0.978247 0.870330\n",
"4 0.978182 0.884615\n",
".. ... ...\n",
"345 0.787338 0.531868\n",
"346 0.996429 0.753846\n",
"347 0.996429 0.752747\n",
"348 0.996429 0.767033\n",
"349 0.996429 0.752747\n",
"\n",
"[350 rows x 2 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 167
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "WgVyNWOll4-2",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 309
},
"outputId": "7bb5bf10-ff15-45e4-ba8d-b7ffef50a924"
},
"source": [
" results.sort_values(by='mean_test_score', ascending=False).head()"
],
"execution_count": 168,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_classify</th>\n",
" <th>param_classify__n_neighbors</th>\n",
" <th>param_featureSelection__w</th>\n",
" <th>param_classify__criterion</th>\n",
" <th>param_classify__max_depth</th>\n",
" <th>param_classify__min_samples_leaf</th>\n",
" <th>param_classify__presort</th>\n",
" <th>param_classify__activation</th>\n",
" <th>param_classify__alpha</th>\n",
" <th>param_classify__hidden_layer_sizes</th>\n",
" <th>param_classify__max_iter</th>\n",
" <th>param_classify__solver</th>\n",
" <th>param_classify__verbose</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>split3_test_score</th>\n",
" <th>split4_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>split3_train_score</th>\n",
" <th>split4_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>236</th>\n",
" <td>2.850588</td>\n",
" <td>0.282767</td>\n",
" <td>0.015304</td>\n",
" <td>0.004962</td>\n",
" <td>MLPClassifier(activation='logistic', alpha=0.0...</td>\n",
" <td>NaN</td>\n",
" <td>15</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>logistic</td>\n",
" <td>0.05</td>\n",
" <td>(128,)</td>\n",
" <td>1000</td>\n",
" <td>lbfgs</td>\n",
" <td>True</td>\n",
" <td>{'classify': MLPClassifier(activation='logisti...</td>\n",
" <td>0.857143</td>\n",
" <td>1.000000</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.942857</td>\n",
" <td>0.053452</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>226</th>\n",
" <td>2.157164</td>\n",
" <td>0.243395</td>\n",
" <td>0.012608</td>\n",
" <td>0.000673</td>\n",
" <td>MLPClassifier(activation='logistic', alpha=0.0...</td>\n",
" <td>NaN</td>\n",
" <td>15</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>logistic</td>\n",
" <td>0.05</td>\n",
" <td>(64,)</td>\n",
" <td>1000</td>\n",
" <td>lbfgs</td>\n",
" <td>True</td>\n",
" <td>{'classify': MLPClassifier(activation='logisti...</td>\n",
" <td>0.857143</td>\n",
" <td>1.000000</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.942857</td>\n",
" <td>0.053452</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284</th>\n",
" <td>1.280823</td>\n",
" <td>0.180511</td>\n",
" <td>0.008757</td>\n",
" <td>0.001920</td>\n",
" <td>MLPClassifier(activation='logistic', alpha=0.0...</td>\n",
" <td>NaN</td>\n",
" <td>10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>logistic</td>\n",
" <td>0.005</td>\n",
" <td>(64,)</td>\n",
" <td>1000</td>\n",
" <td>lbfgs</td>\n",
" <td>True</td>\n",
" <td>{'classify': MLPClassifier(activation='logisti...</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.942857</td>\n",
" <td>0.028571</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>266</th>\n",
" <td>3.159941</td>\n",
" <td>0.339470</td>\n",
" <td>0.015841</td>\n",
" <td>0.005731</td>\n",
" <td>MLPClassifier(activation='logistic', alpha=0.0...</td>\n",
" <td>NaN</td>\n",
" <td>15</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>logistic</td>\n",
" <td>0.01</td>\n",
" <td>(128,)</td>\n",
" <td>1000</td>\n",
" <td>lbfgs</td>\n",
" <td>True</td>\n",
" <td>{'classify': MLPClassifier(activation='logisti...</td>\n",
" <td>0.785714</td>\n",
" <td>1.000000</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.928571</td>\n",
" <td>0.078246</td>\n",
" <td>4</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.057533</td>\n",
" <td>0.000547</td>\n",
" <td>0.007271</td>\n",
" <td>0.000269</td>\n",
" <td>KNeighborsClassifier(algorithm='auto', leaf_si...</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>{'classify': KNeighborsClassifier(algorithm='a...</td>\n",
" <td>0.857143</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.928571</td>\n",
" <td>0.045175</td>\n",
" <td>4</td>\n",
" <td>0.981818</td>\n",
" <td>0.981818</td>\n",
" <td>0.981818</td>\n",
" <td>0.981818</td>\n",
" <td>0.964286</td>\n",
" <td>0.978312</td>\n",
" <td>0.007013</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time ... mean_train_score std_train_score\n",
"236 2.850588 0.282767 ... 1.000000 0.000000\n",
"226 2.157164 0.243395 ... 1.000000 0.000000\n",
"284 1.280823 0.180511 ... 1.000000 0.000000\n",
"266 3.159941 0.339470 ... 1.000000 0.000000\n",
"12 0.057533 0.000547 ... 0.978312 0.007013\n",
"\n",
"[5 rows x 33 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 168
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "LvZ3N5g1iqLU",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 309
},
"outputId": "eaa8d786-1e1b-458c-c04a-d57bf6ae2a86"
},
"source": [
" results.sort_values(by='mean_test_score', ascending=False).head()"
],
"execution_count": 169,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>mean_fit_time</th>\n",
" <th>std_fit_time</th>\n",
" <th>mean_score_time</th>\n",
" <th>std_score_time</th>\n",
" <th>param_classify</th>\n",
" <th>param_classify__n_neighbors</th>\n",
" <th>param_featureSelection__w</th>\n",
" <th>param_classify__criterion</th>\n",
" <th>param_classify__max_depth</th>\n",
" <th>param_classify__min_samples_leaf</th>\n",
" <th>param_classify__presort</th>\n",
" <th>param_classify__activation</th>\n",
" <th>param_classify__alpha</th>\n",
" <th>param_classify__hidden_layer_sizes</th>\n",
" <th>param_classify__max_iter</th>\n",
" <th>param_classify__solver</th>\n",
" <th>param_classify__verbose</th>\n",
" <th>params</th>\n",
" <th>split0_test_score</th>\n",
" <th>split1_test_score</th>\n",
" <th>split2_test_score</th>\n",
" <th>split3_test_score</th>\n",
" <th>split4_test_score</th>\n",
" <th>mean_test_score</th>\n",
" <th>std_test_score</th>\n",
" <th>rank_test_score</th>\n",
" <th>split0_train_score</th>\n",
" <th>split1_train_score</th>\n",
" <th>split2_train_score</th>\n",
" <th>split3_train_score</th>\n",
" <th>split4_train_score</th>\n",
" <th>mean_train_score</th>\n",
" <th>std_train_score</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>236</th>\n",
" <td>2.850588</td>\n",
" <td>0.282767</td>\n",
" <td>0.015304</td>\n",
" <td>0.004962</td>\n",
" <td>MLPClassifier(activation='logistic', alpha=0.0...</td>\n",
" <td>NaN</td>\n",
" <td>15</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>logistic</td>\n",
" <td>0.05</td>\n",
" <td>(128,)</td>\n",
" <td>1000</td>\n",
" <td>lbfgs</td>\n",
" <td>True</td>\n",
" <td>{'classify': MLPClassifier(activation='logisti...</td>\n",
" <td>0.857143</td>\n",
" <td>1.000000</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.942857</td>\n",
" <td>0.053452</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>226</th>\n",
" <td>2.157164</td>\n",
" <td>0.243395</td>\n",
" <td>0.012608</td>\n",
" <td>0.000673</td>\n",
" <td>MLPClassifier(activation='logistic', alpha=0.0...</td>\n",
" <td>NaN</td>\n",
" <td>15</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>logistic</td>\n",
" <td>0.05</td>\n",
" <td>(64,)</td>\n",
" <td>1000</td>\n",
" <td>lbfgs</td>\n",
" <td>True</td>\n",
" <td>{'classify': MLPClassifier(activation='logisti...</td>\n",
" <td>0.857143</td>\n",
" <td>1.000000</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.942857</td>\n",
" <td>0.053452</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>284</th>\n",
" <td>1.280823</td>\n",
" <td>0.180511</td>\n",
" <td>0.008757</td>\n",
" <td>0.001920</td>\n",
" <td>MLPClassifier(activation='logistic', alpha=0.0...</td>\n",
" <td>NaN</td>\n",
" <td>10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>logistic</td>\n",
" <td>0.005</td>\n",
" <td>(64,)</td>\n",
" <td>1000</td>\n",
" <td>lbfgs</td>\n",
" <td>True</td>\n",
" <td>{'classify': MLPClassifier(activation='logisti...</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.942857</td>\n",
" <td>0.028571</td>\n",
" <td>1</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>266</th>\n",
" <td>3.159941</td>\n",
" <td>0.339470</td>\n",
" <td>0.015841</td>\n",
" <td>0.005731</td>\n",
" <td>MLPClassifier(activation='logistic', alpha=0.0...</td>\n",
" <td>NaN</td>\n",
" <td>15</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>logistic</td>\n",
" <td>0.01</td>\n",
" <td>(128,)</td>\n",
" <td>1000</td>\n",
" <td>lbfgs</td>\n",
" <td>True</td>\n",
" <td>{'classify': MLPClassifier(activation='logisti...</td>\n",
" <td>0.785714</td>\n",
" <td>1.000000</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.928571</td>\n",
" <td>0.078246</td>\n",
" <td>4</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>1.000000</td>\n",
" <td>0.000000</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>0.057533</td>\n",
" <td>0.000547</td>\n",
" <td>0.007271</td>\n",
" <td>0.000269</td>\n",
" <td>KNeighborsClassifier(algorithm='auto', leaf_si...</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" <td>{'classify': KNeighborsClassifier(algorithm='a...</td>\n",
" <td>0.857143</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>0.928571</td>\n",
" <td>1.0</td>\n",
" <td>0.928571</td>\n",
" <td>0.045175</td>\n",
" <td>4</td>\n",
" <td>0.981818</td>\n",
" <td>0.981818</td>\n",
" <td>0.981818</td>\n",
" <td>0.981818</td>\n",
" <td>0.964286</td>\n",
" <td>0.978312</td>\n",
" <td>0.007013</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" mean_fit_time std_fit_time ... mean_train_score std_train_score\n",
"236 2.850588 0.282767 ... 1.000000 0.000000\n",
"226 2.157164 0.243395 ... 1.000000 0.000000\n",
"284 1.280823 0.180511 ... 1.000000 0.000000\n",
"266 3.159941 0.339470 ... 1.000000 0.000000\n",
"12 0.057533 0.000547 ... 0.978312 0.007013\n",
"\n",
"[5 rows x 33 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 169
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "ORuEka2RevvT",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 272
},
"outputId": "abc2607a-88e9-4438-f563-131b88df06d2"
},
"source": [
"best_estimator_ = model.best_estimator_\n",
"best_estimator_"
],
"execution_count": 170,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"Pipeline(memory='/tmp/tmpwbxnzfh7',\n",
" steps=[('featureSelection', TScoreSelection(w=15)),\n",
" ('classify',\n",
" MLPClassifier(activation='logistic', alpha=0.05,\n",
" batch_size='auto', beta_1=0.9, beta_2=0.999,\n",
" early_stopping=False, epsilon=1e-08,\n",
" hidden_layer_sizes=(64,),\n",
" learning_rate='constant',\n",
" learning_rate_init=0.001, max_fun=15000,\n",
" max_iter=1000, momentum=0.9, n_iter_no_change=10,\n",
" nesterovs_momentum=True, power_t=0.5,\n",
" random_state=None, shuffle=True, solver='lbfgs',\n",
" tol=0.0001, validation_fraction=0.1,\n",
" verbose=True, warm_start=False))],\n",
" verbose=False)"
]
},
"metadata": {
"tags": []
},
"execution_count": 170
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "HWEjIJIB3gLb",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 35
},
"outputId": "47cab34e-69ad-4d28-a9f2-04af307b5926"
},
"source": [
" name=str(best_estimator_.named_steps['classify']).split('(')[0]\n",
" name"
],
"execution_count": 177,
"outputs": [
{
"output_type": "execute_result",
"data": {
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "string"
},
"text/plain": [
"'MLPClassifier'"
]
},
"metadata": {
"tags": []
},
"execution_count": 177
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "fryz-QA8UA1f",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 34
},
"outputId": "5067bbbb-2d9e-4fe9-adf0-74413d6880c8"
},
"source": [
"model.best_score_"
],
"execution_count": 178,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"0.9428571428571428"
]
},
"metadata": {
"tags": []
},
"execution_count": 178
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "aPWzDdyskT81",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 376
},
"outputId": "e424cbf1-c8a4-48a2-e3e4-65c6b83e9eec"
},
"source": [
"grid=model\n",
"alphas=np.arange(0,results.shape[0],1)\n",
"plt.title(name+\" Error Rate Graph \")\n",
"plt.xlabel('Number of Genes')\n",
"plt.plot(alphas, 1-grid.cv_results_['mean_train_score'], label='Train')\n",
"plt.ylabel('Error Rate')\n",
"plt.plot(alphas, 1-grid.cv_results_['mean_test_score'], label='Test')\n",
"plt.legend()\n",
"plt.show()"
],
"execution_count": 179,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAe8AAAFnCAYAAACPasF4AAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOydd7wU5b3/P1O2nsapIAiCKCJYQSWWKBpQbImaaEgUbmKMUUwUjUmMxqgxoFdjifWnudcWNWoIJioqmChcG2JBFFSqdE7bU7fPzszvj9lndmZ2ZnfPYffs7jnfd155ydky+8yW+TzfzqmqqoIgCIIgiLKBL/YCCIIgCILoGyTeBEEQBFFmkHgTBEEQRJlB4k0QBEEQZQaJN0EQBEGUGSTeBEEQBFFmiMVeAEHkk4MOOginnXYa7rvvPtPtN9xwAxYtWoT169frj1uxYgVGjBhhetzixYvxhz/8Qb9dURRMnjwZN954I+rq6gAALS0tuOuuu7B69WpwHAe/34+5c+fivPPOy3jsveGuu+7CyJEj8YMf/ADPPPMMHnroIVx00UUIh8P67f3luuuuw/LlyzFs2DDT7TNnzsQvf/nLvV26Ix988AF+8pOfYN999wUAsKrV888/H5dccknW57/66qs48cQTUVlZ2afX3bp1K+6++26sX78eHMeB53mcccYZuOyyyyCK+bskzpkzB9/73vfwne98J2/HJAgGiTcx6Fi/fj2CwaB+UY/H4/j8889zfv4RRxyBJ554AoAm3rfeeituvfVW3HPPPQiFQrjoootw9tln47bbboMgCNi8eTMuvfRSJBIJXHDBBYU4JZOILlu2DPPnz8f555+ft+PPnTsX8+bNy9vxcmWfffbB66+/rv/d3t6OCy64AAcffDCOP/74jM+97777MGXKlD6Jd0tLCy666CJcddVV+POf/wyO47B79278/Oc/RzwexzXXXNPvcyGIgYTEmxh0TJs2DW+88QbOPfdcAMA777yDQw89VLe6+wLP87jwwgvxwx/+EADwz3/+E/X19bjyyiv1x4wfPx4PPvggXC5X2vMffPBBvPTSS5BlGePHj8edd96J6upqbNiwATfeeCOCwSAkScLcuXNx0UUXOd5+3XXXYcyYMQgGg/j000+xefNmNDc3Y9euXRgzZgzmzZuHTZs24eabb0ZbWxvcbjcWLlyIQw89FB988AHuueceDB8+HKIo4q677urTezBnzhxMmTIFy5Ytw4IFC/DCCy+gpqYG7733HubNm4dTTjkFCxYswAcffACe53HSSSfhV7/6FQRBwCmnnILzzjsPL7/8Mh5//HGMHDky42s1NDTgiCOOwJdffonjjz8eW7ZswQ033ICuri4kEglcddVVOOuss/Db3/4WX3/9NebMmYPbbrsNEyZMwK233orPPvsMiUQC8+bNw3e/+9204z/xxBM47rjjTBufkSNH4umnn4bX6wUA2/fr73//Ox577DHIsozGxkbccccdGDVqFO6//37s2rULnZ2d2LBhA4YPH44HH3wQ9fX1AICdO3dizpw52Lp1K44++mj86U9/As9TtJLYe+hbRAw6Tj/9dLzyyiv630uWLMGsWbP6fbxEIgG32w0AWLVqFU466aS0x0ycOBHjx4833bZ27Vo888wz+Mc//oFly5YhHo/j6aefBgA88MADmD17NpYsWYLnnnsO7733HuLxuOPtjF//+tc47LDD8Ktf/Qq/+MUv9NsVRcEVV1yB73znO1i6dCluvvlmzJs3D4lEAgDwxRdfYPbs2X0WbuO5LFmyBFOmTAEAvP/++1i0aBFOP/10PPnkk2hubsaSJUvw4osv4qOPPjK9/y0tLVi6dGlW4QaAzZs3Y+XKlTjyyCMBAHfccQdOPvlkvPbaa1i4cCFuuOEGSJKE2267DQDw17/+FUcddRRuv/128DyP1157DX//+99x//33Y8OGDWnH//DDD20/P7/fbxJV4/sVCATwhz/8AY8//jiWLVuGMWPG4KGHHtIfu2zZMvzud7/DW2+9hdGjR+ORRx7R71u1ahX+8pe/4PXXX8cHH3yATz75JOt7QBC5QJY3Meg45phj8Jvf/AaBQAB+vx+rV6/Gf//3f/frWPF4HI8//jhmzpwJAOju7kZDQ0NOzz3kkEOwfPlyXfiPPPJI7NixAwBQX1+PpUuXYsKECZg0aZIuBk63Z2PLli0IBAL43ve+BwCYOnUq6urqsHr1agCA1+vFscce6/j8p556Ci+99JLptj/+8Y846qijAAAnnXSSSdyOPfZYeDweAMDy5ctx8cUXQxRFiKKIs88+G++++64e650+fbrj6+7Zs0ffWAWDQXi9Xtxwww2YOnUqAOChhx7SY+FTp05FLBZD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\n",
"text/plain": [
"<Figure size 576x396 with 1 Axes>"
]
},
"metadata": {
"tags": []
}
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "7FFbSGT1k6l7",
"colab_type": "code",
"colab": {}
},
"source": [
"testSet = pd.read_csv('/content/drive/My Drive/Colab/Data-Mining Project/pp5i_test.gr.csv')"
],
"execution_count": 180,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "XA7_PPH4lFzQ",
"colab_type": "code",
"colab": {}
},
"source": [
"testSet.set_index('SNO', inplace=True)\n",
"testX = testSet.transpose()\n",
"testX.reset_index(drop=True, inplace=True)"
],
"execution_count": 181,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "_RbNHBd4lJIx",
"colab_type": "code",
"colab": {}
},
"source": [
"finalResult = pd.DataFrame()\n",
"finalResult['predicted'] = model.predict(testX)"
],
"execution_count": 182,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "GgG58AwjlL61",
"colab_type": "code",
"colab": {
"base_uri": "https://localhost:8080/",
"height": 762
},
"outputId": "08425739-1470-480c-87fc-60c938602c9c"
},
"source": [
"finalResult"
],
"execution_count": 183,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>predicted</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>MGL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>MGL</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>EPD</td>\n",
" </tr>\n",
" <tr>\n",
" <th>5</th>\n",
" <td>RHB</td>\n",
" </tr>\n",
" <tr>\n",
" <th>6</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>7</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>8</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>9</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>11</th>\n",
" <td>EPD</td>\n",
" </tr>\n",
" <tr>\n",
" <th>12</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>13</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>14</th>\n",
" <td>RHB</td>\n",
" </tr>\n",
" <tr>\n",
" <th>15</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>16</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>17</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>18</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>19</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>20</th>\n",
" <td>MED</td>\n",
" </tr>\n",
" <tr>\n",
" <th>21</th>\n",
" <td>RHB</td>\n",
" </tr>\n",
" <tr>\n",
" <th>22</th>\n",
" <td>RHB</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" predicted\n",
"0 MGL\n",
"1 MED\n",
"2 MGL\n",
"3 MED\n",
"4 EPD\n",
"5 RHB\n",
"6 MED\n",
"7 MED\n",
"8 MED\n",
"9 MED\n",
"10 MED\n",
"11 EPD\n",
"12 MED\n",
"13 MED\n",
"14 RHB\n",
"15 MED\n",
"16 MED\n",
"17 MED\n",
"18 MED\n",
"19 MED\n",
"20 MED\n",
"21 RHB\n",
"22 RHB"
]
},
"metadata": {
"tags": []
},
"execution_count": 183
}
]
}
]
}