def different_window_sizes(W_PRR, W_HISTORY): print(f'*** PRR={W_PRR}, HISTORY={W_HISTORY} ***') dataset = load_rutgers() print('Rutgers loaded ...') dataset = CustomInterpolation(source='rssi', strategy='constant', constant=0).fit_transform(dataset) print('Interpolation applied ...') dataset = SyntheticFeatures(source='rssi', window_size=W_HISTORY).fit_transform(dataset) print('Synthetic features created ...') dataset = PRR(source='received', window_size=W_PRR, ahead=1, target='prr').fit_transform(dataset) print('PRR created ...') dataset = CustomMerger().fit_transform(dataset) print('Datasets merged ...') dataset['class'] = dataset['prr'].apply(prr_to_label) print('Classification applied ...') dataset = dataset.dropna() X, y = dataset[features].copy(), dataset['class'].ravel() y_pred = model_selection.cross_val_predict(pipe, X, y, cv=cv, n_jobs=-1) return y, y_pred
def guassian(pipe): print('*** Gaussian interpolation ***') dataset = [] for df in load_rutgers(): df.loc[df['received'] == 0, 'rssi'] = np.nan dataset.append(df) print('Rutgers loaded ...') dataset = CustomInterpolation(source='rssi', strategy='gaussian').fit_transform(dataset) print('Interpolation applied ...') dataset = SyntheticFeatures(source='rssi', window_size=10).fit_transform(dataset) print('Synthetic features created ...') dataset = PRR(source='received', window_size=10, ahead=1, target='prr').fit_transform(dataset) print('PRR created ...') dataset = CustomMerger().fit_transform(dataset) print('Datasets merged ...') dataset['class'] = dataset['prr'].apply(prr_to_label) print('Classification applied ...') dataset = dataset.dropna() X, y = dataset[features].copy(), dataset['class'].ravel() y_pred = model_selection.cross_val_predict(pipe, X, y, cv=cv, n_jobs=-1) return y, y_pred
def prepare_data(): dataset = load_rutgers() print('Rutgers loaded ...') dataset = CustomInterpolation(source='rssi', strategy='constant', constant=0).fit_transform(dataset) print('Interpolation applied ...') dataset = SyntheticFeatures(source='rssi', window_size=10).fit_transform(dataset) print('Synthetic features created ...') dataset = PRR(source='received', window_size=10, ahead=1, target='prr').fit_transform(dataset) print('PRR created ...') for df in dataset: df['class_overall'] = prr_to_label( df['received'].astype(bool).sum() / 300. ) print('Created special feature `class_overall`') dataset = CustomMerger().fit_transform(dataset) print('Datasets merged ...') dataset['class'] = dataset['prr'].apply(prr_to_label) print('Classification applied ...') #dataset = dataset.dropna() dataset = dataset.sample(frac=1, random_state=SEED) return dataset
def prepare_data(): dataset = load_rutgers() print('Rutgers loaded ...') dataset = CustomInterpolation(source='rssi', strategy='constant', constant=0).fit_transform(dataset) print('Interpolation applied ...') dataset = SyntheticFeatures(source='rssi', window_size=20).fit_transform(dataset) print('Synthetic features created ...') dataset = PRR(source='received', window_size=20, ahead=1, target='prr').fit_transform(dataset) print('PRR created ...') dataset = CustomMerger().fit_transform(dataset) print('Datasets merged ...') dataset['class'] = dataset['prr'].apply(prr_to_label) print('Classification applied ...') dataset = dataset.dropna() dataset = dataset.drop(['noise', 'src', 'dst', 'received', 'prr'], axis=1) print('Drop useless features, drop lines with NaN') return dataset
def prepare_data(): dataset = load_rutgers() print('Rutgers loaded ...') dataset = CustomInterpolation(source='rssi', strategy='constant', constant=0).fit_transform(dataset) print('Interpolation applied ...') dataset = SyntheticFeatures(source='rssi', window_size=10).fit_transform(dataset) print('Synthetic features created ...') dataset = PRR(source='received', window_size=10, ahead=1, target='prr').fit_transform(dataset) print('PRR created ...') print('Apply discrete derivation (backward difference)') for i in range(len(dataset)): dataset[i]['drssi'] = dataset[i]['rssi'].diff() dataset = CustomMerger().fit_transform(dataset) print('Datasets merged ...') dataset['class'] = dataset['prr'].apply(prr_to_label) print('Classification applied ...') dataset = dataset.dropna() X, y = dataset[features].copy(), dataset['class'].ravel() return X, y
def prepare_data(): dataset = load_rutgers() print('Rutgers loaded ...') dataset = CustomInterpolation(source='rssi', strategy='constant', constant=0).fit_transform(dataset) print('Interpolation applied ...') dataset = SyntheticFeatures(source='rssi', window_size=10).fit_transform(dataset) print('Synthetic features created ...') dataset = PRR(source='received', window_size=10, ahead=1, target='prr').fit_transform(dataset) print('PRR created ...') print('Apply discrete derivation (backward difference)') for i in range(len(dataset)): dataset[i]['drssi'] = dataset[i]['rssi'].diff() dataset = CustomMerger().fit_transform(dataset) print('Datasets merged ...') dataset['class'] = dataset['prr'].apply(prr_to_label) print('Classification applied ...') dataset = dataset.dropna() dataset = dataset.drop(['noise', 'src', 'dst', 'received', 'prr'], axis=1) print('Drop useless features, drop lines with NaN') dataset = poly_features(dataset, include=['rssi', 'rssi_avg', 'rssi_std'], degree=4, include_bias=True) print('Polynomials applied ...') # Special synthetic features dataset['rssi^-1'] = 1. / dataset['rssi'] dataset['rssi^-2'] = 1. / dataset['rssi^2'] dataset['rssi^-3'] = 1. / dataset['rssi^3'] dataset['rssi^-4'] = 1. / dataset['rssi^4'] dataset['rssi_avg^-1'] = 1. / dataset['rssi_avg'] dataset['rssi_avg^-2'] = 1. / dataset['rssi_avg^2'] dataset['rssi_avg^-3'] = 1. / dataset['rssi_avg^3'] dataset['rssi_avg^-4'] = 1. / dataset['rssi_avg^4'] dataset['rssi_std^-1'] = 1. / dataset['rssi_std'] dataset['rssi_std^-2'] = 1. / dataset['rssi_std^2'] dataset['rssi_std^-3'] = 1. / dataset['rssi_std^3'] dataset['rssi_std^-4'] = 1. / dataset['rssi_std^4'] return dataset
def without(pipe): print('*** Without interpolation ***') #dataset =load_rutgers( dataset = [] for df in load_rutgers(): df.loc[df['received'] == 0, 'rssi'] = np.nan df.dropna() dataset.append(df) print('Rutgers loaded ...') #dataset = CustomInterpolation(on_column='rssi', strategy='gaussian').fit_transform(dataset) #print('Interpolation applied ...') dataset = SyntheticFeatures(source='rssi', window_size=10).fit_transform(dataset) print('Synthetic features created ...') dataset = PRR(source='received', window_size=10, ahead=1, target='prr').fit_transform(dataset) print('PRR created ...') print('Apply discrete derivation (backward difference)') for i in range(len(dataset)): dataset[i]['drssi'] = dataset[i]['rssi'].diff() dataset = CustomMerger().fit_transform(dataset) print('Datasets merged ...') dataset['class'] = dataset['prr'].apply(prr_to_label) print('Classification applied ...') dataset = dataset.dropna() X, y = dataset[features].copy(), dataset['class'].ravel() y_pred = model_selection.cross_val_predict(pipe, X, y, cv=cv, n_jobs=-1) return y, y_pred