nirdizati_light.confusion_matrix_feedback.randomise_features
1import random 2 3from pandas import Series, DataFrame 4 5 6def randomise_features(feedback, train_df) -> DataFrame: 7 randomised_df = train_df.copy() 8 9 for classes in feedback: 10 for single_feedback in feedback[classes]: 11 target_columns = [column_name for column_name, _ in single_feedback] 12 13 possible_values = {column: list(set(train_df[column].values)) for column in target_columns} 14 15 randomised_df = randomised_df.apply( 16 lambda row: 17 row if row['label'] != classes and any([row[column] != value for column, value in single_feedback]) 18 else Series({ 19 column: 20 random.choice(possible_values[column]) if column in target_columns 21 else value 22 for column, value in row.items() 23 }), 24 axis=1 25 ) 26 27 randomised_df = randomised_df[train_df.columns] 28 29 return randomised_df
def
randomise_features(feedback, train_df) -> pandas.core.frame.DataFrame:
7def randomise_features(feedback, train_df) -> DataFrame: 8 randomised_df = train_df.copy() 9 10 for classes in feedback: 11 for single_feedback in feedback[classes]: 12 target_columns = [column_name for column_name, _ in single_feedback] 13 14 possible_values = {column: list(set(train_df[column].values)) for column in target_columns} 15 16 randomised_df = randomised_df.apply( 17 lambda row: 18 row if row['label'] != classes and any([row[column] != value for column, value in single_feedback]) 19 else Series({ 20 column: 21 random.choice(possible_values[column]) if column in target_columns 22 else value 23 for column, value in row.items() 24 }), 25 axis=1 26 ) 27 28 randomised_df = randomised_df[train_df.columns] 29 30 return randomised_df