INNER CODE UNIT · Python
median_absolute_deviation
ashishpatel26/Amazing-Feature-Engineering · feature_cleaning/outlier.py:80
median_absolute_deviation = np.median([np.abs(y - median) for y in data[col]])
modified_z_scores = pd.Series([0.6745 * (y - median) / median_absolute_deviation for y in data[col]])
outlier_index = np.abs(modified_z_scores) > threshold
print('Num of outlier detected:',outlier_index.value_counts()[1])
print('Proportion of outlier detected',outlier_index.value_counts()[1]/len(outlier_index))
return outlier_index
# 2018.11.10 outlier treatment
def impute_outlier_with_arbitrary(data,outlier_index,value,col=[]):
"""
impute outliers with arbitrary value
"""
data_copy = data.copy(deep=True)
for i in col:
data_copy.loc[outlier_index,i] = value
return data_copy