Как удалить выбросы из набора данных, используя IQR или Zscore? - PullRequest
0 голосов
/ 14 января 2020

Я пытался удалить выбросы из своего набора данных, который я использую. Тем не менее, мой набор данных содержит много столбцов, которые имеют выбросы в них. Я искал лучший подход для удаления выбросов из моего набора данных.

Используемый мной набор данных - vehicle.csv

enter image description here

В настоящее время я использовал подход IQR, но я все еще не уверен, если Я на правильном пути или нет. Я проверил наши многочисленные блоги, где упоминалось 2 подхода.

1. IQR

2. Zscore

Однако ниже приведен код, который я сейчас использую. Я бы попросил вас сообщить мне, если я на правильном пути?

#calculating interquartile range for finding outliers values
Q1 = data_vehicle_new.quantile(0.25)
Q3 = data_vehicle_new.quantile(0.75)
IQR = Q3 - Q1


#assigning the cyl column value to a new dataframe for finding outlier 
df_radius_ratio=data_vehicle_new['radius_ratio']
#calling the function to get outliers
radius_ratiooutliers=get_outliers(df_radius_ratio)
print("Total Number of outliers present in the radius_ratio column of the dataframe =", 
len(radius_ratiooutliers))
if len(radius_ratiooutliers)<=0:
  print("The outliers values that resides in the radius_ratio column are 0")
else:
  print("The outliers values that resides in the radius_ratio column are", radius_ratiooutliers)

Из приведенного выше кода я получаю указанные c выбросы. Теперь я перебираю каждый выброс и заменяю значение средним или медианным. Это правильный способ обработки?

Как насчет z-счета, я должен использовать следующий код:

from scipy import stats
train[(np.abs(stats.zscore(train)) < 3).all(axis=1)]

Любая помощь приветствуется.

...