EDA
Exploratory Data Analysis : νμμ λ°μ΄ν° λΆμ
- μμ§ν λ°μ΄ν°λ₯Ό λ€μν κ°λμμ κ΄μ°°νκ³ μ΄ν΄νλ κ³Όμ
νμν μ΄μ
- λ°μ΄ν°μ λΆν¬ λ° κ°μ κ²ν → λ°μ΄ν°κ° νννλ νμμ λ μ μ΄ν΄νκ³ λ°μ΄ν°μ λν μ μ¬μ μΈ λ¬Έμ λ°κ²¬ κ°λ₯
- 본격μ μΈ λΆμμ λ€μ΄κ°κΈ° μ , λ°μ΄ν°μ μμ§ κ²°μ κ°λ₯
- λ€μν κ°λμμ μ΄ν΄λ³΄λ κ³Όμ → λ¬Έμ μ μ λ¨κ³μμ λ°κ²¬νμ§ λͺ»ν λ€μν ν¨ν΄μ λ°κ²¬νκ³ μ΄λ₯Ό λ°νμΌλ‘ κ°μ€μ μμ ν μ μμ
κ³Όμ
- λΆμμ λͺ©μ , λ³μ νμΈ
- κ°λ³ λ³μμ μ΄λ¦μ΄λ μ€λͺ νμΈ
- λ°μ΄ν°μ λ¬Έμ κ° μλμ§ μ 체μ μΌλ‘ μ΄ν΄λ³΄κΈ°
- headλ tail
- μ΄μμΉ, κ²°μΈ‘μΉ νμΈ λ± λ€μν νμ
- λ°μ΄ν°μ κ°λ³ μμ± κ° κ΄μ°°λ§μ½ κ·Έλ μ§ μλ€λ©΄, μ΄μ μ°ΎκΈ°
- κ° μμ± κ°μ΄ μμΈ‘ν λ²μμ λΆν¬λ₯Ό κ°λμ§ νμΈ
- μμ± κ°μ κ΄κ³μ μ΄μ μ λ§μΆμ΄, κ°λ³ μμ± κ΄μ°°μμ μ°Ύμλ΄μ§ λͺ»νλ ν¨ν΄μ λ°κ²¬ (μκ΄κ΄κ³, μκ°ν λ±)
μ΅μ μ Kκ° μ°ΎκΈ°
# νμν ν¨ν€μ§ import
import pandas as pd
from sklearn.model_selection import cross_val_score, train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score
# λ°μ΄ν° λ‘λ
train_data = pd.read_csv("C:/Users/allye/Desktop/DSOB/WIDA Dacon/DCSTree/train.csv")
# typeκ³Ό λλ¨Έμ§ λ°μ΄ν°λ€μ λΆλ¦¬ν΄μ€
X = train_data.iloc[:, 2:]
y = train_data.iloc[:, 1]
# λ°μ΄ν°μ
λΆν (νμ΅μ© λ°μ΄ν°μ κ²μ¦μ© λ°μ΄ν°)
# trainingκ³Ό testμ λΉμ¨μ 0.3
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# K-fold Cross Validationμ μ΄μ©νμ¬ μ΅μ μ k κ°μ μ°Ύμ
k_candidates = [1, 3, 5, 7, 9]
cv_scores = []
for k in k_candidates:
knn = KNeighborsClassifier(n_neighbors=k)
scores = cross_val_score(knn, X_train, y_train, cv=10, scoring='accuracy')
cv_scores.append(scores.mean())
best_k = k_candidates[cv_scores.index(max(cv_scores))]
print("Best k value:", best_k)
# μ΅μ μ k κ°μ μ΄μ©νμ¬ λͺ¨λΈ μμ±, νμ΅, κ²μ¦
model = KNeighborsClassifier(n_neighbors=best_k)
model.fit(X_train, y_train)
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy:", accuracy)
Kκ°μ΄ 5μΌ λ κ°μ₯ λμ μ νλλ₯Ό κ°μ§
μ΄μμΉ μ°ΎκΈ°
- κ°λ³ λ°μ΄ν° κ΄μ°°λ°μ΄ν°μ μ, λ€ or 무μμλ‘ νλ³Έμ μΆμΆν΄μ κ΄μ°°ν΄μΌ ν¨.
- λ¨, μ΄μμΉλ€μ μμ ν¬κΈ°μ νλ³Έμ λνλμ§ μμ μ μμ
- λμΌλ‘ μ νμ΄λ³΄λ©΄μ μ 체μ μΈ μΆμΈμ νΉμ΄μ¬ν κ΄μ°°
train_data.head()
train_data.tail()
train_data.isnull().sum()
- ν΅κ³ κ° νμ©
μ μ ν μμ½ ν΅κ³ μ§ν(summary statistics)λ₯Ό μ¬μ©
- λ°μ΄ν°μ μ€μ¬ → νκ· (mean), μ€μκ°(median), μ΅λΉκ°(mode)
- λ°μ΄ν°μ λΆμ° → λ²μ(range), λΆμ°(variance)
ν΅κ³ μ§νλ₯Ό μ΄μ©ν λλ λ°μ΄ν°μ νΉμ±μ μ£Όμν΄μΌ ν¨
- νκ· μλ μ§ν© λ΄ λͺ¨λ λ°μ΄ν° κ°μ΄ λ°μλκΈ° λλ¬Έμ, μ΄μμΉκ° μ΄μ μν₯μ λ―ΈμΉ¨
- μ€μκ°μλ κ°μ΄λ° μμΉν κ° νλκ° μ¬μ©λκΈ° λλ¬Έμ, μ΄μμΉκ° μ‘΄μ¬ν΄λ λνμ±μ΄ μλ κ²°κ³Όλ₯Ό μ»μ μ μμ
train_data.describe()
count : nullκ°μ μ μΈν λ°μ΄ν°μ μ΄ κ°μ
mean : νκ·
std : νμ€νΈμ°¨
# μ€μκ°
train_data.median()
# λΆμ°
train_data.var()
- μκ°ν νμ©
- μΌλ¨μ μκ°μ μΌλ‘ ννμ΄ λμ΄μλ κ²μ 보면, λΆμμ λμμ΄ λ§μ΄ λ©λλ€. μκ°νλ₯Ό ν΅ν΄ μ£Όμ΄μ§ λ°μ΄ν°μ κ°λ³ μμ±μ μ΄λ€ ν΅κ³ μ§νκ° μ μ νμ§ κ²°μ ν μ μμ΅λλ€. μκ°ν λ°©λ²μλ νλ₯ λ°λ ν¨μ, νμ€ν κ·Έλ¨, μ νλ‘―(dotplot), μλ ν΄λΌμ°λ, μκ³μ΄ μ°¨νΈ, μ§λ λ±μ΄ μμ΅λλ€.
'π‘ WIDA > DACON λΆλ₯-νκ·' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[DACON/μ°Έκ³ μλ£] μμλΈ λͺ¨λΈ (0) | 2023.05.01 |
---|---|
[DACON/μ°Έκ³ μλ£] SVM μ°Έκ³ μλ£ (0) | 2023.04.26 |
[DACON/κΉκ·λ¦¬] νμ΄μ¬μ μ΄μ©ν EDA (0) | 2023.04.07 |
[DACON/κΉκ²½μ] νμ΄μ¬μ μ΄μ©ν EDA (0) | 2023.04.07 |
[DACON/κΉμΈμ°] νμ΄μ¬μ μ΄μ©ν EDA (0) | 2023.04.07 |