НүүрPythonOutlier утгуудыг илрүүлэх аргачлал

Outlier утгуудыг илрүүлэх аргачлал

“Data Analyst болон Data Scientist – ууд нийт ажлынхаа 60 орчим хувийг датагаа цэвэрлэх, хувиргах болон боловсруулах ажилд зарцуулдаг”

Тэгвэл дата цэвэрлэх үед тулгардаг Outlier утгуудыг Нормал тархалт болон Стандарт хазайлтын тусламжтайгаар хэрхэн өгөгдлөөс утсгах аргачлалыг авч үзье. Хэт өндөр утгуудыг шинжилгээнд ашигласнаар дунджийг хиймлээр өсгөх болон загварын үр дүнд муугаар нөлөөлдөг. Иймд өгөгдлөөс Outlier утгуудыг илрүүлэх, тэдгээрийг засах нь ач холбогдолтой байдаг.

Нормал тархалттай хэмжигдэхүүний 99.7% нь дунджаас доош болон дээш 3 стандарт хазайлттай тэнцэх зайд багтдаг.

Тэгвэл аливаа дата – ны доод болон дээд 5% буюу [Mean – 2*SD] – с доош, [Mean + 2*SD] -с дээш зайд байгаа утгуудыг арилгах замаар Outlier – г засах арга өгөгдөл цэвэрлэх явцад түгээмэл хэрэглэгддэг. Үүнийг Python дээр хэрхэн хийхийг авч үзье.

Шаардлагатай сангуудыг импорт хийх.

import pandas as pd
import matplotlib.pyplot as plt
import seabird as sns
import numpy as np
from scipy.stats import norm
from script import stats
%matplotlib inline

Өгөгдсөн дата: 1000 харилцагчийн зээлийн мэдээлэл.

data['Credit amount'].describe()
# count     1000.000000
# mean      3271.258000
# std       2822.736876
# min        250.000000
# 25%       1365.500000
# 50%       2319.500000
# 75%       3972.250000
# max      18424.000000
# Name: Credit amount, dtype: float64

Зээлийн дүнд Outlier утгуудыг байгаа эсэхийг Distribution plot болон Box Plot байгуулан харъя.

sns.distplot(data['Credit amount'], fit=norm);
res = stats.probplot(data['Credit amount'], plot=plt);
fig = sns.boxplot(x='Purpose', y="Credit amount", hue = 'Risk', data=data).set_title('Муу болон сайн зээлүүд, зээл авсан зорилгоор');

Тархалтын график, Q-Q plot болон Box Plot – с харвал ‘Credit amount’ хувьсагчид Outlier утгууд байгааг харж болохоор байна.

Зээлийн дүнгийн тархалт. Хар – Нормал тархалтын муруй

Outlier утгуудаас болж Q-Q plot – ын улаан шугам диагонал дээр байрлаж чадахгүй байна.

Q-Q plot. Улаан шугам тэгш өнцөгтийг голоор нь хувааж байвал нормал тархалттай байна гэж үздэг.

Box Plot – ийн дээд болон доод хязгаараас илүү гарсан утгуудыг Outlier утгууд гэж үзэж болно.

Дундаж болон стандарт хазайлт ашиглан Outlier – уудыг устгах.

arr = data['Credit amount']
elements = np.array(arr)
mean = np.mean(elements, axis=0)
sd = np.std(elements, axis=0)

# Outlier - уудыг устгах
data_cleaned = data[data['Credit amount'] > mean - 2 * sd ]
data_cleaned = data[data['Credit amount'] < mean + 2 * sd ]

data_cleaned.describe()
# count     945.000000
# mean     2777.950265
# std      1926.167939
# min       250.000000
# 25%      1338.000000
# 50%      2197.000000
# 75%      3620.000000
# max      8858.000000
# Name: Credit amount, dtype: float64

Нийт 1000 өгөгдөл байснаас 945 өгөгдөл үлдсэн буюу 55 өгөгдөл Outlier байсан нь харагдаж байна.

Outlier-уудыг устгасны дараа тархалтын муруйг дахин харъя.

Хэрвээ танд шинжилгээ хийх, загвар байгуулах үед Outlier утгуудыг устгах шаардлага гарвал дээрх аргыг ашиглаад үзээрэй. Үүнээс гадна Outlier-г устгахаас гадна тодорхой Percentile-н утгаар орлуулах мөн боломжтой байдаг.

Data School.

Хуваалцах:

Холбоотой нийтлэлүүд

Python Pandas сан ашиглан өгөгдсөн датафрэйм-н баганын нэрийг өөрчлөх зааврыг хүргэж байна. Дараах rename() функц ашиглан дараах байдлаар өөрчилнө. Жишээ:...
Python String форматжуулах нь текстийг хувьсагчтай хослуулан динамик байдлаар ажиллах боломжийг олгодог давуу талтай. String форматжуулах дараах хоёр түгээмэл арга...
Ангиллын загвар дээр бид Confusion Matrix – г дүрслэж таамагласан утгуудыг бодит утгын эсрэг харьцуулан харах хэрэгцээ шаардлага гардаг. Үүнийг...