
이 책 읽으면서 공부한 내용 정리함
turtle = train.loc[train['wheezy-copper-turtle-magic'] == 123, train.columns.difference(['id', 'target', 'wheezy-copper-turtle-magic'])]
# 'target' 컬럼을 제외한 표준편차 계산
turtle_std = turtle.std()
plt.figure(figsize=(10, 6))
turtle_std.plot(kind='bar')
plt.title('Standard Deviation of Each Column')
plt.xticks([])
plt.xlabel('Columns')
plt.ylabel('Standard Deviation')
plt.show()
매직거북이(wheezy-copper-turtle-magic)는 범주형 변수일 확률이 높음

각 범주(매직거북이)로 데이터프레임를 나눔
나눠진 데이터프레임을 터틀이라고 부르겠음
터틀의 컬럼들의 표준편차를 구해서 그래프로 출력하면 전부 썸네일과 비슷한 구조로 나옴
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import cross_val_score
import numpy as np
# 1. 전체 컬럼의 예측력
X_all = turtle
y_all = train.loc[train['wheezy-copper-turtle-magic'] == 123, 'target']
model_all = LogisticRegression(max_iter=1000, random_state=42)
score_all = np.mean(cross_val_score(model_all, X_all, y_all, cv=5))
# 2. 표준편차가 2보다 큰 컬럼의 예측력
high_std_cols = turtle_std[turtle_std > 2].index
X_high_std = turtle[high_std_cols]
model_high_std = LogisticRegression(max_iter=1000, random_state=42)
score_high_std = np.mean(cross_val_score(model_high_std, X_high_std, y_all, cv=5))
# 3. 표준편차가 2보다 작은 컬럼의 예측력
low_std_cols = turtle_std[turtle_std <= 2].index
X_low_std = turtle[low_std_cols]
model_low_std = LogisticRegression(max_iter=1000, random_state=42)
score_low_std = np.mean(cross_val_score(model_low_std, X_low_std, y_all, cv=5))
# 결과 출력
print(f"전체 컬럼의 예측력 (CV 평균 점수): {score_all:.4f}")
print(f"표준편차 > 2 컬럼의 예측력 (CV 평균 점수): {score_high_std:.4f}")
print(f"표준편차 <= 2 컬럼의 예측력 (CV 평균 점수): {score_low_std:.4f}")
GPT한테 코드 짜라고 시킴
전체 컬럼의 예측력 (CV 평균 점수): 0.6250
표준편차 > 2 컬럼의 예측력 (CV 평균 점수): 0.6876
표준편차 <= 2 컬럼의 예측력 (CV 평균 점수): 0.5174
코드를 보니 k-겹 교차 검증(k-Fold Cross-Validation)을 사용하고 있습니다. cross_val_score 함수에서 cv=5로 지정하여 5-겹 교차 검증을 수행하고 있네요. 이 방법은 데이터셋을 5개의 폴드로 나누고, 각 폴드가 한 번씩 테스트 세트가 되어 총 5번 모델을 학습 및 평가하는 방식입니다. 이를 통해 모델의 일반화 성능을 더 정확하게 평가할 수 있습니다.
표준편차 2 넘는 컬럼들은 각 범주마다 다름.
그래서 책에서는 512개의 모델을 각각 만드는 방법을 이야기하는 거 같던데 이거 맞나?
GPT 말씀2 : 피처 표준편차로 찾기랑 후진선택법으로 찾기랑 비교해보고 싶어서 물어봄
표준편차를 기반으로 한 피처 선택:
후진선택법(Backward Elimination):
두 방법 모두 피처 선택에 유용하지만, 데이터의 특성과 목적에 따라 적절한 방법을 선택하는 것이 중요합니다. 표준편차 기반 방법은 간단하고 빠르지만, 후진선택법은 더 정교하고 통계적으로 신뢰할 수 있는 결과를 제공할 수 있습니다.
p-값은 통계적 가설 검정에서 사용되는 중요한 개념으로, 관찰된 데이터가 귀무가설(null hypothesis)이 참일 때 나타날 확률을 나타냅니다. 좀 더 구체적으로 설명하자면:
가설 설정:
검정 통계량 계산:
p-값 계산:
결정 기준:
예시:
피처 선택 과정에서 p-값이 0.03이라면, 이는 귀무가설이 참일 때 이러한 결과가 발생할 확률이 3%라는 의미입니다. 보통 유의 수준을 0.05로 설정하므로, p-값이 0.05보다 작으므로 귀무가설을 기각하고 피처가 유의미하다고 결론 내립니다.
이 과정을 통해 통계적으로 유의미한 피처를 식별하고, 모델에 포함시킬 피처를 결정할 수 있습니다.
😊