Пример #1
0
def ahmad_health_indicator_ahmad_classifier_ffnn_rul_prediction():
    training_set = read_feature_dfs(LEARNING_SET)
    training_labels = pop_labels(training_set)
    training_set = construct_ahmad_health_indicator(training_set)
    training_set = [
        pd.merge(training_set[i],
                 training_labels[i],
                 left_index=True,
                 right_index=True) for i in range(len(training_labels))
    ]
    cut_dfs, fpts = cut_fpts(training_set,
                             fpt_method=ahmad_et_al_2019,
                             signal_key='ahmad_health_indicator')
    plot_fpts(fpts,
              df_list=training_set,
              classification_indicator='ahmad_health_indicator')

    training_set = concat_dfs(training_set)
    training_labels = training_set.pop('RUL')
    ffnn, trainin_history = fit_ffnn(training_set,
                                     training_labels,
                                     dropout=True,
                                     epochs=30,
                                     hidden_layers=3,
                                     hidden_units=128)

    comparison_set = read_feature_dfs(FULL_TEST_SET)
    comparison_set, first_prediction_times = cut_fpts(comparison_set)

    # Remove label
    label_data = pop_labels(comparison_set)
    plot_rul_comparisons(comparison_set,
                         label_data=label_data,
                         prediction_model=ffnn)
Пример #2
0
def isomap_features_no_classifier_ffnn_rul_prediction(training_data,
                                                      comparison_set):
    # Read Training data
    isomap_training_data = training_data

    # Remove labels
    isomap_training_data = concat_dfs(isomap_training_data)
    labels = isomap_training_data.pop('RUL')
    model_training_data, isomap = isomap_embedded_data_frame(
        isomap_training_data, verbose=False)

    ffnn, training_history = fit_ffnn(model_training_data, labels, epochs=100)

    plot_trainings_history(training_history)
    # Visualize predicted RUL in comparison to real RUL
    #   comparison_set = read_raw_dfs(FULL_TEST_SET)
    # Remove label
    label_data = pop_labels(comparison_set)
    # Apply autoencoder
    comparison_set = [
        pd.DataFrame(isomap.transform(X=df)) for df in comparison_set
    ]

    plot_rul_comparisons(comparison_set,
                         label_data=label_data,
                         prediction_model=ffnn)
def all_features_pca_combination_no_classifier_ffnn_rul_prediction():
    # Read Training data
    feature_list = ALL_FEATURES
    training_data = read_feature_dfs(data_set_sub_set=LEARNING_SET, features=feature_list)
    learning_set = concat_dfs(training_data)
    training_labes = learning_set.pop('RUL')

    # Remove labels
    model_training_data, pca = pca_embedded_data_frame(learning_set, verbose=False)

    model_training_data = pd.DataFrame(model_training_data)
    ffnn, training_history = fit_ffnn(model_training_data, training_labes, epochs=60)  # TODO dropout=True

    plot_trainings_history(training_history)

    # Visualize predicted RUL in comparison to real RUL of training set
    # Remove label
    training_label_data = pop_labels(training_data)
    # Apply PCA
    transformed_training_set = []
    for df in tqdm(training_data, desc="Transforming validation set.", position=0, leave=True):
        transformed_training_set += [pd.DataFrame(pca.transform(X=df))]
    plot_rul_comparisons(transformed_training_set, label_data=training_label_data, prediction_model=ffnn)

    # Visualize predicted RUL in comparison to real RUL of validation set
    comparison_set = read_feature_dfs(data_set_sub_set=FULL_TEST_SET, features=feature_list)
    # Remove label
    label_data = pop_labels(comparison_set)
    # Apply PCA
    transformed_comparison_set = []
    for df in tqdm(comparison_set, desc="Transforming validation set.", position=0, leave=True):
        transformed_comparison_set += [pd.DataFrame(pca.transform(X=df))]

    plot_rul_comparisons(transformed_comparison_set, label_data=label_data, prediction_model=ffnn)
Пример #4
0
def all_features_and_autoencoder_li_2019_classifier_ffnn_rul_prediction():
    # Input features: statistical features
    learning_feature_df_list = read_feature_dfs(LEARNING_SET,
                                                FEATURES_CSV_NAME)

    # Two-Stage: lei et al 2019
    cut_dfs, first_prediction_times = cut_fpts(learning_feature_df_list)
    # Visualize FPTs
    # plot_fpts(first_prediction_times, learning_feature_df_list, 'root_mean_square')

    # Concatenate trainings data
    all_bearings = concat_dfs(cut_dfs)
    labels = all_bearings.pop('RUL')
    all_bearings, pca = pca_embedded_data_frame(all_bearings)

    # RUL prediction: FFNN
    trainings_history, ffnn = fit_ffnn(X=all_bearings,
                                       y=labels,
                                       dropout=True,
                                       epochs=150)

    # Visualize training history and later validation history
    plot_trainings_history(trainings_history)
    # Visualize predicted RUL in comparison to real RUL
    comparison_set = read_feature_dfs(FULL_TEST_SET, FEATURES_CSV_NAME)
    comparison_set, first_prediction_times = cut_fpts(comparison_set)
    # Remove label
    label_data = pop_labels(comparison_set)
    # Apply PCA
    comparison_set = [pd.DataFrame(pca.transform(df)) for df in comparison_set]

    plot_rul_comparisons(comparison_set,
                         label_data=label_data,
                         prediction_model=ffnn)
def autoencoder_features_no_classifier_ffnn_rul_prediction():
    """
    VERY VERY Bad -> autoencoder hyperparams?
    :return: Void
    """
    # Read Training data
    autoencoder_training_data = read_raw_dfs(sub_set=LEARNING_SET)

    # Remove labels
    autoencoder_training_data = concat_dfs(autoencoder_training_data)
    labels = autoencoder_training_data.pop('RUL')
    autoencoder, encoder = fit_autoencoder(autoencoder_training_data,
                                           epochs=100,
                                           encoding_size=80)
def statistical_frequency_features_no_classifier_ffnn_rul_prediction():
    trainings_data = read_feature_dfs(LEARNING_SET)
    trainings_data = concat_dfs(trainings_data)
    trainings_labels = trainings_data.pop('RUL')
    filtered_cols: list = [
        column for column in trainings_data if column.startswith('frequency_')
    ]
    trainings_data = trainings_data[filtered_cols]
    ffnn, trainings_history = fit_ffnn(trainings_data,
                                       trainings_labels,
                                       dropout=True,
                                       epochs=100,
                                       hidden_units=1024,
                                       hidden_layers=4)
    # Visualize trainings history
    plot_trainings_history(trainings_history)
def pca_features_no_classifier_ffnn_rul_prediction(training_data,
                                                   comparison_set):
    hi = __name__
    # Read Training data
    # Remove labels
    pca_training_data = concat_dfs(training_data)
    labels = pca_training_data.pop('RUL')
    model_training_data, pca = pca_embedded_data_frame(pca_training_data,
                                                       n_components=300,
                                                       verbose=False)

    model_training_data = pd.DataFrame(model_training_data)
    ffnn, training_history = fit_ffnn(model_training_data,
                                      labels,
                                      epochs=60,
                                      dropout=True)

    plot_trainings_history(training_history)

    # Visualize predicted RUL in comparison to real RUL of training set
    # Remove label
    training_label_data = pop_labels(training_data)
    # Apply PCA
    transformed_training_set = []
    for df in tqdm(training_data,
                   desc="Transforming training set.",
                   position=0,
                   leave=True):
        transformed_training_set += [pd.DataFrame(pca.transform(X=df))]
    plot_rul_comparisons(transformed_training_set,
                         label_data=training_label_data,
                         prediction_model=ffnn)

    # Visualize predicted RUL in comparison to real RUL of validation set
    # Remove label
    label_data = pop_labels(comparison_set)
    # Apply PCA
    transformed_comparison_set = []
    for df in tqdm(comparison_set,
                   desc="Transforming validation set.",
                   position=0,
                   leave=True):
        transformed_comparison_set += [pd.DataFrame(pca.transform(X=df))]

    plot_rul_comparisons(transformed_comparison_set,
                         label_data=label_data,
                         prediction_model=ffnn)
Пример #8
0
def statistical_features_li_2019_classifier_ffnn_rul_prediction():
    # Input features: statistical features
    learning_feature_df_list = read_dfs(LEARNING_SET,
                                        FEATURES_CSV_NAME,
                                        features=BASIC_STATISTICAL_FEATURES)

    # Two-Stage: lei et al 2019
    cut_dfs, first_prediction_times = cut_fpts(learning_feature_df_list)
    # Visualize FPTs
    # plot_fpts(first_prediction_times, learning_feature_df_list, 'root_mean_square')

    # Concatenate trainings data
    all_bearings = concat_dfs(cut_dfs)
    labels = all_bearings.pop('RUL')

    # RUL prediction: FFNN
    trainings_history, ffnn = fit_ffnn(X=all_bearings,
                                       y=labels,
                                       dropout=True,
                                       epochs=100,
                                       hidden_layers=3,
                                       hidden_units=1024)
    # Visualize training history and later validation history
    plot_trainings_history(trainings_history)

    # Visualize predicted RUL in comparison to real RUL on trainings set
    label_data = pop_labels(cut_dfs)
    plot_rul_comparisons(cut_dfs, label_data=label_data, prediction_model=ffnn)

    # Visualize predicted RUL in comparison to real RUL on test set
    comparison_set = read_dfs(FULL_TEST_SET,
                              FEATURES_CSV_NAME,
                              features=BASIC_STATISTICAL_FEATURES)
    comparison_set, first_prediction_times = cut_fpts(comparison_set)

    # Remove label
    label_data = pop_labels(comparison_set)
    plot_rul_comparisons(comparison_set,
                         label_data=label_data,
                         prediction_model=ffnn)
def df_dict_to_df_dataframe(
        df_dict: Dict[str, pd.DataFrame]) -> (pd.DataFrame, pd.Series):
    data = concat_dfs(df_dict)
    labels = data.pop("RUL")
    return data, labels