인프런 커뮤니티 질문&답변

성한님의 프로필 이미지
성한

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

모델링 및 평가(분류)

y_tr 과 y_train 의 차이점

해결된 질문

작성

·

224

0

import pandas as pd

X_train = pd.read_csv("X_train.csv")

X_test = pd.read_csv("X_test.csv")

y_train = pd.read_csv("y_train.csv")



cols = X_train.select_dtypes(exclude = 'object').columns  # cols = ['id', 'age', 'fnlwgt', 'education.num', 'capital.gain', 'capital.loss', 'hours.per.week']

X_train[cols] = X_train[cols].fillna(0)

X_test[cols] = X_test[cols].fillna(0)

y = (y_train['income'] == '>50K').astype(int)


from sklearn.model_selection import train_test_split

X_tr, X_val, y_tr, y_val = train_test_split(X_train, y, test_size = 0.1, random_state = 2022)


from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier()

rf.fit(X_tr[cols], y_tr)

pred = rf.predict(X_val[cols])


pred = rf.predict(X_test[cols])

submit = pd.DataFrame({

          'id': X_test['id'],

          'income': pred

})

submit.to_csv("990906.csv", index=False)

 

제가 작성한 코드입니다. 문제1을 심플하게 설명해주셔서 제가 그 과정에 검증데이터 분리과정을 넣어 자체적으로 작성한 것입니다

확인해보니 y_train의 크기는 (29304, 2) 이고, y_tr의 크기는 (26373,) 더군요

여기서 궁금한 것이 y_train 칼럼은 id, income 인데 단지 "y = (y_train['income'] == '>50K').astype(int) )" 코드가 실행되엇다고 해서 어떻게 y의 칼럼이 "id"가 삭제되고 "income' 만 남아있는지 궁금합니다.

y_train.drop("id")를 작성하지 않았는데 id 칼럼이 삭제되어 의문이 들었습니다!

 

답변 1

0

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

1 y_train['income'] 는 컬럼을 선택합니다

2 특정 컬럼과 == '>50K' 의 결과는 true 또는 false입니다

3 .astype(int)으로 true는 1 false는 0으로 변경합니다

4 y = 로 대입합니다

 

Id가 삭제된 것이 아니라 income만 선택할 수도 있어요

 

성한님의 프로필 이미지
성한

작성한 질문수

질문하기