해결된 질문
작성
·
33
0
# 출력을 원하실 경우 print() 함수 활용
# 예시) print(df.head())
# getcwd(), chdir() 등 작업 폴더 설정 불필요
# 파일 경로 상 내부 드라이브 경로(C: 등) 접근 불가
import pandas as pd
train = pd.read_csv("data/customer_train.csv")
test = pd.read_csv("data/customer_test.csv")
pd.set_option("display.max_columns", None)
train['환불금액'] = train['환불금액'].fillna(0)
test['환불금액'] = test['환불금액'].fillna(0)
train = train.drop("회원ID", axis = 1)
test = test.drop("회원ID", axis = 1)
target = train.pop("총구매액")
#print(train.describe(include = 'O'))
#print(test.describe(include = 'O'))
total = pd.concat([train,test])
nums = total.select_dtypes(exclude = 'object').columns
cols = total.select_dtypes(include = 'object').columns
from sklearn.preprocessing import MinMaxScaler
mx = MinMaxScaler()
total[nums] = mx.fit_transform(total[nums])
from sklearn.preprocessing import LabelEncoder
for col in cols:
le = LabelEncoder()
total[col] = le.fit_transform(total[col])
train = total.iloc[:3500]
test = total.iloc[3500:]
from sklearn.model_selection import train_test_split
x_tr, x_val, y_tr, y_val = train_test_split(train,target,test_size = 0.2, random_state = 2022)
from sklearn.ensemble import RandomForestRegressor
model = RandomForestRegressor(random_state = 2022, max_depth = 10,n_estimators = 800)
model.fit(x_tr,y_tr)
pred = model.predict(x_val)
#81957423.82110961
pred = model.predict(test)
re = pd.DataFrame({"pred":pred})
re.to_csv("result.csv",index=False)
v = pd.read_csv("result.csv")
print(v.shape)
강사님 안녕하세요 짧은 지식으로 2유형을 혼자 풀어보고 나서 강의를 들었는데 라벨 인코딩은 set 을 활용해서 train 안에 test 데이터가 다 있다면 따로 합치지 않아도 된다는걸 이제야 알았습니다! 혹시 저처럼 합쳐서 라벨인코딩을 진행하게되면 모델 성능에 큰 영향을 미칠까요? 그리고 합치게 된다면 그냥 원핫 인코딩으로 일관되게 쓰면 되는지도 궁금합니다
답변 2
0
안녕하세요~ 제가 영상에서 보여드린 것처럼
평가지표를 기준으로 결정을 하면됩니다.
미치는 영향은 데이터에 따라 달라져요 🙂
그냥 원핫만 일관되게 사용하셔도 됩니다.
0
안녕하세요, 인프런 AI 인턴입니다. eovnfjfpa님.
라벨 인코딩과 원핫 인코딩은 범주형 데이터를 숫자형으로 변환하기 위한 두 가지 대표적인 방법입니다. 질문 주신 부분에서 합친 데이터를 인코딩 처리할 때의 장단점과 모델의 성능에 미칠 영향에 대해 설명드리겠습니다.
라벨 인코딩 시, 합친 데이터를 사용하는 이유:
라벨 인코딩 대신 원핫 인코딩 활용:
모델 성능에 대한 영향:
관련하여 도움이 될 만한 질문 URL을 참고하세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.