λ°μ΄ν°μ μ’ λ₯
λ°μ΄ν°λ ν¬κ² λ²μ£Όν, μμΉν λ κ°μ§ λΆλ₯λ‘ λλ μ μλ€.
λ²μ£Όν λ°μ΄ν°λ λ²μ£Ό/μΉ΄ν κ³ λ¦¬λ₯Ό ꡬλΆνλ κ°κ°μ μ΄λ¦μ κ°λ λ°μ΄ν° μ’ λ₯λ€.
ex) μ±λ³ - μ¬μ±, λ¨μ± / νλ ₯ - μ΄μ‘Έ, μ€μ‘Έ, λμ‘Έ, λνμμ‘Έ / μΆμ νκ΅ - κ³ λ €λνκ΅, μ°μΈλνκ΅, ...
λ°λ©΄ μμΉν λ°μ΄ν°λ λ§κ·Έλλ‘ μ«μλ‘ νμλλ μλ£λ€μ΄λ€.
ex) λμ΄ - 1μ΄, 2μ΄, ... / ν€ - 160cm, 161cm, ... / λͺΈλ¬΄κ² - 50kg, 51kg, ...
λ²μ£Όν λ°μ΄ν°(μ§μ μλ£)
λ²μ£Όν λ°μ΄ν°λ λ μμν, λͺ λͺ©νμ΄λΌλ λ κ°μ§ νμ λΆλ₯λ‘ λ€μ λλμ΄μ§λ€.
μμν λ°μ΄ν°λ κ° λ°μ΄ν°λ³λ‘ μμκ° λλμ΄μ Έ μλ λ°μ΄ν°λ€μ΄λ€.
μλ₯Ό λ€μ΄ λ§μ‘±λ λ°μ΄ν°λ₯Ό μκ°ν΄λ³΄λ©΄, 5μ κ³Ό 1μ μ λλ±ν μ격μ κ°λ λ°μ΄ν°κ° μλλ€. λ³΄ν΅ 5μ μ΄ 1μ λ³΄λ€ λ λμ μμλ₯Ό κ°μ§κΈ° λλ¬Έμ΄λ€. λ°λΌμ λ§μ‘±λ λ°μ΄ν°λ μμν λ°μ΄ν°μ΄λ€.
λͺ λͺ©ν λ°μ΄ν°λ λ°λλ‘ κ° λ°μ΄ν°λ³ μμκ° μλ λ°μ΄ν°μ΄λ€.
μ±λ³ λ°μ΄ν°λ μ¬μ±κ³Ό λ¨μ±μΌλ‘ μ΄λ£¨μ΄μ§λλ° λ μ¬μ΄μ μμλ₯Ό 맀길 μ μμΌλ―λ‘ λͺ λͺ©ν λ°μ΄ν°μ΄λ€.
μμΉν λ°μ΄ν°(μμ μλ£)
μμΉν λ°μ΄ν° μμ μ΄μ°ν, μ°μνμ΄λΌλ λ νμ λΆλ₯λ‘ λλ μ μλ€.
μ΄μ°ν λ°μ΄ν°λ λ°μ΄ν°μ λ°μ΄ν° μ¬μ΄μ λμ΄μ§μ΄ μλ€.
물건μ κ°μμ κ°μ μμλ₯Ό λ€ μ μλ€. 1κ°μ 2κ° μ¬μ΄μΈ κ°μλ₯Ό μ μν μ μμΌλ―λ‘ λ¬Όκ±΄μ κ°μλ μ΄μ°ν λ°μ΄ν°μ΄λ€.
λ°λ©΄ μ°μν λ°μ΄ν°λ λ°μ΄ν°μ λ°μ΄ν° μ¬μ΄μ λμ΄μ§μ΄ μλ€.
ν€λ 160cmμ 161cm μ¬μ΄μ 무μν λ§μ κ°μ κ°μ§ μ μμΌλ―λ‘, μ°μμ μ΄λΌκ³ λ³Ό μ μμΌλ©° λ°λΌμ μ°μν λ°μ΄ν°μ ν΄λΉνλ€.
λ²μ£Όν λ°μ΄ν° μκ°ν
λ²μ£Όν λ°μ΄ν°λ₯Ό μκ°ννκΈ° μν΄μ seaborn, matplotlibμ μ΄μ©νλ€.
import seaborn as sns
import matplotlib.pyplot as plt
μλ¨μ νμΌμ μ¬μ©νμλ€.
1) λ²μ£Όν λ³μ 1κ°
λ²μ£Όν λ³μλ₯Ό μκ°ννκΈ° μν΄μ λ§λκ·Έλνλ μκ·Έλνλ₯Ό 그릴 μ μλ€.
λ§λκ·Έλνμ κ²½μ° pandasμ κΈ°λ₯ μ€ νλμΈ plot.bar()λ₯Ό μ¬μ©ν μ μλ€.
image = df['grade'].value_counts().plot.bar()

λ§λκ·Έλνλ₯Ό 그리λ λ€λ₯Έ λ°©λ²μλ seabornμ μΉ΄μ΄νΈλν sns.countplot()μ΄ μλ€.
sns.countplot(x = 'grade', data = df)
μκ·Έλνλ plt.pie()λ₯Ό μ΄μ©νλ€.
plt.pie(x = df['grade'].value_counts(), labels = [1, 2, 3, 4, 5], autopct='%.1f%%')
2) λ²μ£Όν λ³μ + μμΉν λ³μ μκ°ν
β sns.lineplot(): λͺ λͺ©ν + μμΉν(μ°μν + μ΄μ°ν)
β‘ sns.scatterplot(): λͺ λͺ©ν + μμΉν(μ°μν + μ°μν)
β’ sns.barplot(): λͺ λͺ©ν + μ°μν
β£ sns.pointplot(): λͺ λͺ©ν + μ°μν
β€ sns.boxplot(): λͺ λͺ©ν + μ°μν
β₯ sns.violinplot(): λͺ λͺ©ν + μ°μν
κ΅μ₯ν λ€μν λ°©λ²μΌλ‘ μκ°νκ° κ°λ₯νλ―λ‘ λμ λ°λΌ μ μ νκ² μκ°ν λ°©λ²μ κ³ λ₯΄λ©΄ λλ€.
μ΄μ€μμ scatterplotμ ν λ² κ·Έλ €λ³΄μ.
sns.scatterplot(x = 'weight', y = 'height', data = df, hue = 'grade')
weightμ height μ¬μ΄μ scatterplotμ κ·Έλ Έμ§λ§, hueλ₯Ό ν΅ν΄ gradeλ³λ‘ λ€λ₯΄κ² νμνμλ€.
gradeλ λ²μ£Όν λ³μμ΄κ³ λλ¨Έμ§λ μμΉνμ΄λ―λ‘ λ²μ£Όν, μμΉν μ¬μ΄ λ°μ΄ν°λ₯Ό μκ°ννλ λ°©λ²μ΄ λ μ μλ€.
μμΉν λ°μ΄ν° μκ°ν
1) μμΉν λ³μ 1κ°
νμ€ν κ·Έλ¨μ κ·Έλ €μ μμΉν λ³μλ₯Ό μκ°νν΄λ³΄μ. plt.hist()λ₯Ό μ΄μ©ν μ μλ€.
plt.hist(df['height'])
ꡬκ°μ κ°μλ histμ μΈμμΈ binsμ κ°μ λ£μ΄μ£Όλ©΄ λλ€.
νμ€ν κ·Έλ¨μ νλ₯ λ°λν¨μλ₯Ό μΆκ°νμ¬ κ·Έλ¦¬λ λ°©λ²λ μλ€. sns.displot()λ₯Ό μ΄μ©νλ©΄ λ€μκ³Ό κ°λ€.
sns.distplot(df['weight'])
sns.boxplot()μ ν΅ν΄ λ°μ€νλ‘―μ 그릴 μ μλ€. min, max, Q1, Q2, Q3, outlierλ₯Ό νμΈν μ μλ€.
plt.figure(figsize = (6, 8))
sns.boxplot(y = 'weight', data = df)
plt.show()
2) μμΉν λ³μ 2κ°
β sns.lineplot(): μ°μν + μ΄μ°ν
β‘ sns.scatterplot(): μ°μν + μ°μν
β’ sns.regplot(): μ°μν+ μ°μν
λ€μν λ°©λ²μΌλ‘ μκ°νκ° κ°λ₯νλ€. μ΄λ€ λ°©λ²μΌλ‘ μκ°νλ₯Ό νμ λ λ°μ΄ν°κ° κ°μ₯ μ λλ¬λλμ§λ μ°μ΅ν΄λ³Ό νμκ° μλ κ² κ°λ€.
μ°Έκ³ μλ£
https://velog.io/@chan_p/μμΉν-λ³μ-νμ-μκ°νλ₯Ό-ν΅ν-EDA-2
μμΉν λ³μ νμ (μκ°νλ₯Ό ν΅ν EDA #2)
μμΉν λ³μ(μ°μν, μ΄μ°ν) μκ°ν λ°©λ²
velog.io
https://velog.io/@chan_p/λ²μ£Όν-λ³μ-νμ-μκ°νλ₯Ό-ν΅ν-EDA-3
λ²μ£Όν λ³μ νμ (μκ°νλ₯Ό ν΅ν EDA #3)
λ²μ£Όν λ³μ, λ²μ£Όν+μμΉν λ³΅ν© μκ°ν λ°©λ²
velog.io