Esempio n. 1
0
	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)