def predict( predict_data_path, preprocessed_dir, feature_data_path, color_models, quality_models, mixed_models, output_result_path, ): if b_load_predict_feat: feat_df = _load_features(feature_data_home, "*prediction*.csv") else: feat_df = _calc_predict_features(predict_data_path, preprocessed_dir, feature_data_path) x_data = feat_df.drop(subjective_column_name, axis=1, level=0) color_df = pd.DataFrame(color_models.predict(x_data[hue_column_name])) quality_df = pd.DataFrame(quality_models.predict(x_data)) mixed_df = pd.DataFrame(mixed_models.predict(x_data)) all_df = pd.concat( [color_df, quality_df, mixed_df, feat_df[subjective_column_name]], axis=1, keys=[ color_models.__class__.__name__, quality_models.__class__.__name__, mixed_models.__class__.__name__, subjective_column_name, ], ) # store prediction result PublicSupport.save_dataframe( all_df, os.path.join(output_result_path, "prediction" + datetime.now().strftime("%Y-%m-%d %H.%M.%S")) )
def __calc_features(images_data, feature_name, feature_data_path): # feature extraction feat_df = pd.DataFrame([FeatureManager.compute_feats(img).append(info) for img, info in images_data]) PublicSupport.save_dataframe( feat_df, os.path.join(feature_data_path, feature_name + datetime.now().strftime("%Y-%m-%d %H.%M.%S")) ) return feat_df