{"cells":[{"metadata":{"_uuid":"8f2839f25d086af736a60e9eeb907d3b93b6e0e5","_cell_guid":"b1076dfc-b9ad-4769-8c92-a6c4dae69d19","trusted":true},"cell_type":"code","source":"import pandas as pd\nimport numpy as np\nfrom keras.models import Sequential\nfrom keras.layers import LSTM, Dense, Dropout, Flatten\nfrom keras.utils import to_categorical\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.metrics import accuracy_score, classification_report","execution_count":null,"outputs":[]},{"metadata":{"_uuid":"d629ff2d2480ee46fbb7e2d37f6b5fab8052498a","collapsed":true,"_cell_guid":"79c7e3d0-c299-4dcb-8224-4455121ee9b0","trusted":false},"cell_type":"markdown","source":"# Imports des données"},{"metadata":{"trusted":true},"cell_type":"code","source":"df = pd.read_csv('../input/different-anomalies-in-ecgs/train.csv', header=None)\ndf.describe()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Préprocessing des données "},{"metadata":{"trusted":true},"cell_type":"code","source":"X = df.values[:,:-1]\ny = df.values[:, -1].astype(int)\nX_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42, test_size=0.2)\n\nX_train_rf, X_test_rf = X_train.reshape((X_train.shape[0], X_train.shape[1], 1)), X_test.reshape((X_test.shape[0], X_test.shape[1], 1))\ny_train_oe, y_test_oe = to_categorical(y_train), to_categorical(y_test)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"# Construction du RNN "},{"metadata":{"trusted":true},"cell_type":"code","source":"model = Sequential()\nmodel.add(LSTM(1, input_shape=(187,1), return_sequences=True))\nmodel.add(Flatten())\nmodel.add(Dense(16,))\nmodel.add(Dropout(0.25))\nmodel.add(Dense(5, activation = \"softmax\"))\n\nmodel.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])\n\nmodel.summary()","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"history = model.fit(X_train.reshape((70043,187,1)), y_train_oe, epochs=10, batch_size=128, validation_split=0.2)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"y_pred = model.predict(X_test.reshape((17511,187,1)))\nprint(classification_report(y_test_oe.argmax(axis=1), y_pred.argmax(axis=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":1}