| import pandas as pd | |
| import matplotlib.pyplot as plt | |
| import numpy as np | |
| import seaborn as sns | |
| from sklearn import svm, datasets | |
| import sklearn.model_selection as model_selection | |
| from sklearn.metrics import accuracy_score | |
| from sklearn.metrics import f1_score | |
| from sklearn.metrics import confusion_matrix | |
| from sklearn.preprocessing import StandardScaler | |
| import umap | |
| import umap.plot | |
| from umap.parametric_umap import ParametricUMAP | |
| from sklearn.impute import SimpleImputer | |
| from sklearn.pipeline import make_pipeline | |
| from sklearn.preprocessing import QuantileTransformer | |
| from mne.datasets import eegbci | |
| def compute_Linear_Kernel(df): | |
| stats_frame = df[ | |
| ['Subject', 'Task', 'Electrode', 'Lentr', 'TT', 'L', 'RR', 'LAM', 'DET'] | |
| ] | |
| stats_frame.melt(id_vars=['Subject', 'Task', 'Electrode'], var_name='RQA_feature', value_name='feature_value') | |
| stats1 = stats_frame.pivot_table(index=['Subject', 'Task'], columns='Electrode', | |
| values=['TT', 'RR', 'DET', 'LAM', 'L', 'Lentr']).reset_index() | |
| y = stats1.Task.values | |
| stats_data = stats1[['TT', 'RR', 'DET', 'LAM', 'L', 'Lentr']].values | |
| X_train, X_test, y_train, y_test = model_selection.train_test_split(stats_data, y, train_size=0.80, test_size=0.20, | |
| random_state=101) | |
| lin = svm.SVC(kernel='linear').fit(X_train, y_train) | |
| lin_pred = lin.predict(X_test) | |
| lin_accuracy = accuracy_score(y_test, lin_pred) | |
| print('Accuracy (Linear Kernel): ', "%.2f" % (lin_accuracy * 100)) | |
| cm = confusion_matrix(y_test, lin_pred) | |
| cm = cm.astype('float') / cm.sum(axis=1)[:, np.newaxis] | |
| class_acuracy = cm.diagonal() | |
| print('Accuracy (open): ', "%.2f" % (class_acuracy[0] * 100)) | |
| print('Accuracy (close): ', "%.2f" % (class_acuracy[1] * 100)) |