해결된 질문
작성
·
215
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만 선택할 수도 있어요