Я пытался удалить выбросы из своего набора данных, который я использую. Тем не менее, мой набор данных содержит много столбцов, которые имеют выбросы в них. Я искал лучший подход для удаления выбросов из моего набора данных.
Используемый мной набор данных - vehicle.csv
![enter image description here](https://i.stack.imgur.com/iIpPk.png)
В настоящее время я использовал подход 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)]
Любая помощь приветствуется.