def __init__(self,num_filters): self.featExtractor = Classifiers.IMU_CNN_3D_FEATURE_EXTRACTOR(suffix="40Hz",num_filters=num_filters,patience=250,layers=3,kern_size=32,divide_kernel_size=True) self.featExtractor.loadBestWeights() #Output of grid search: #{'bootstrap': False, 'max_depth': 142, 'max_features': 'auto', 'min_samples_leaf': 2, 'min_samples_split': 2, 'n_estimators': 60} #Initializing RF self.clf_RF = RandomForestClassifier(n_estimators=60,min_samples_split=2,min_samples_leaf=2,max_features='auto',max_depth=142,bootstrap=False)
tr_uuids, num_threads) print("Loading Validation set") (X_vld, y_vld) = UCI_HAPT.get_all_data_multi_thread_resampling_3D( vl_uuids, num_threads) print("Loading test set") (X_test, y_test) = UCI_HAPT.get_all_data_multi_thread_resampling_3D( test_uuids, num_threads) classes = [ "WALKING", "W. UPSTAIRS", "W. DOWNSTAIRS", "SITTING", "STANDING", "LAYING", "TRANSITION" ] clf = Classifiers.IMU_CNN_3D_FEATURE_EXTRACTOR(patience=500, num_filters=nfilters, layers=n_layers, kern_size=k, divide_kernel_size=True, suffix="40Hz_") y_train_inv = [np.argmax(y) for y in y_train] class_weights = class_weight.compute_class_weight('balanced', np.unique(y_train_inv), y_train_inv) d_class_weights = dict(enumerate(class_weights)) clf.fit_class_weights(X_train, y_train, X_vld, y_vld, batch_size=32, class_weight=d_class_weights, epochs=6000)