{"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 pyarrow.parquet as pq\n\n# Input data files are available in the \"../input/\" directory.\n# For example, running this (by clicking run or pressing Shift+Enter) will list the files in the input directory\n\nimport os\nprint(os.listdir(\"../input\"))\n\n# Any results you write to the current directory are saved as output.","execution_count":1,"outputs":[{"output_type":"stream","text":"['test.parquet', 'sample_submission.csv', 'metadata_train.csv', 'train.parquet', 'metadata_test.csv']\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"train_data = pq.read_pandas('../input/train.parquet').to_pandas()\ntrain_metadata = pd.read_csv('../input/metadata_train.csv')","execution_count":2,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"train = train_data[:100]\ntarget = train_metadata.target[:100]","execution_count":3,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"#import matplotlib.pyplot as plt\n#train.corr().style.format(\"{:.2}\").background_gradient(cmap='PuBu', axis=1)\ntrain.info()","execution_count":4,"outputs":[{"output_type":"stream","text":"<class 'pandas.core.frame.DataFrame'>\nRangeIndex: 100 entries, 0 to 99\nColumns: 8712 entries, 0 to 8711\ndtypes: int8(8712)\nmemory usage: 850.9 KB\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.decomposition import PCA\npca = PCA(n_components=0.5, whiten=True)\n\nX_pca = pca.fit_transform(train)\n\nprint('Número original de atributos:', train.shape[1])\nprint('Número reduzido de atributos:', X_pca.shape[1])","execution_count":5,"outputs":[{"output_type":"stream","text":"Número original de atributos: 8712\nNúmero reduzido de atributos: 10\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.model_selection import train_test_split\nfrom sklearn.linear_model import LogisticRegression\nfrom sklearn.metrics import accuracy_score\n\nX_train, X_test, y_train, y_test = train_test_split(train, target, test_size=0.33, random_state=42)\n\nmodel = LogisticRegression(solver='lbfgs', multi_class='multinomial', max_iter=2000)\n\nmodel.fit(X_train, y_train)\ny_pred = model.predict(X_test)\n\nprint('Acurácia nos dados originais:', accuracy_score(y_test, y_pred))\n\n#######\n\nX_train, X_test, y_train, y_test = train_test_split(X_pca, target, test_size=0.33, random_state=42)\n\nmodel = LogisticRegression(solver='lbfgs', multi_class='multinomial', max_iter=2000)\n\nmodel.fit(X_train, y_train)\ny_pred = model.predict(X_test)\n\nprint('Acurácia nos dados reduzidos:', accuracy_score(y_test, y_pred))\n\nX_train, X_test, y_train, y_test = train_test_split(train, target, test_size=0.33, random_state=42)\n\npca = PCA(n_components=0.5, whiten=True)\n\nX_train = pca.fit_transform(X_train)\nX_test = pca.transform(X_test)\n\nmodel = LogisticRegression(solver='lbfgs', multi_class='multinomial', max_iter=2000)\n\nmodel.fit(X_train, y_train)\ny_pred = model.predict(X_test)\n\nprint('Acurácia nos dados originais:', accuracy_score(y_test, y_pred))","execution_count":6,"outputs":[{"output_type":"stream","text":"Acurácia nos dados originais: 0.9696969696969697\nAcurácia nos dados reduzidos: 0.9696969696969697\nAcurácia nos dados originais: 0.9696969696969697\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"from sklearn.preprocessing import StandardScaler\nfrom sklearn.feature_selection import SelectKBest\nfrom sklearn.feature_selection import f_classif\n\nX_train, X_test, y_train, y_test = train_test_split(train, target, test_size=0.33, random_state=42)\n\n#sc = StandardScaler()\n#X_std = sc.fit_transform(X_train)\n\nfvalue_selector = SelectKBest(f_classif, k=20)\nX_kbest = fvalue_selector.fit_transform(X_train, y_train)\n\nprint('Número original de atributos:', train.shape[1])\nprint('Número reduzido de atributos:', X_kbest.shape[1])\n\nmodel = LogisticRegression(solver='lbfgs', multi_class='multinomial', max_iter=2000)\nmodel.fit(X_train, y_train)\ny_pred = model.predict(X_test)\nprint('Acurácia nos dados originais:', accuracy_score(y_test, y_pred))\n\nmodel = LogisticRegression(solver='lbfgs', multi_class='multinomial', max_iter=2000)\nmodel.fit(X_kbest, y_train)\nX_test_kbest = fvalue_selector.transform(X_test)\ny_pred = model.predict(X_test_kbest)\nprint('Acurácia nos dados Kbest:', accuracy_score(y_test, y_pred))","execution_count":7,"outputs":[{"output_type":"stream","text":"Número original de atributos: 8712\nNúmero reduzido de atributos: 20\nAcurácia nos dados originais: 0.9696969696969697\nAcurácia nos dados Kbest: 1.0\n","name":"stdout"}]},{"metadata":{"trusted":true},"cell_type":"code","source":"submission = pd.DataFrame()\nsubmission['target'] = y_pred\nsubmission.to_csv('submission.csv', index=False)\nsubmission.head()","execution_count":8,"outputs":[{"output_type":"execute_result","execution_count":8,"data":{"text/plain":"   target\n0       0\n1       0\n2       0\n3       0\n4       0","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>target</th>\n    </tr>\n  </thead>\n  <tbody>\n    <tr>\n      <th>0</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>1</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>2</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>3</th>\n      <td>0</td>\n    </tr>\n    <tr>\n      <th>4</th>\n      <td>0</td>\n    </tr>\n  </tbody>\n</table>\n</div>"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3","language":"python","name":"python3"},"language_info":{"name":"python","version":"3.6.4","mimetype":"text/x-python","codemirror_mode":{"name":"ipython","version":3},"pygments_lexer":"ipython3","nbconvert_exporter":"python","file_extension":".py"}},"nbformat":4,"nbformat_minor":1}