강의

멘토링

커뮤니티

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

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

작성한 질문수

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

[작업형2] 연습문제 섹션 3

코드 제출 질문

해결된 질문

작성

·

25

0

1.코드를 이렇게 작성했는데 시험환경에서 이 상태로 바꿀것 없이 그냥 제출 버튼 누르면 되는건가요?

2.원핫인코딩 진행시 데이터가 10,000개가 넘어가서 45초정도 걸리는데

레이블인코딩을 진행할시 코드는 df로 concat하고 그대로 레이블인코딩 진행 후 다시 나누어 주면 되나요?

import pandas as pd

train = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/flight_train.csv")
test = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p2/flight_test.csv")
# print(train.info())
target = train.pop('price')
# print(train.shape, test.shape)
df = pd.concat([train,test])
df = pd.get_dummies(df)
train = df.iloc[:10505,:]
test = df.iloc[10505:,:]
# print(train.shape, test.shape)

# 라벨인코더
# from sklearn.preprocessing import LabelEncoder
# cols = train.select_dtypes(include = 'object')
# for col in cols:
#     le = LabelEncoder()
#     train[col] = le.fit_transform(train[col])
#     test[col] = le.transform(test[col])

# 데이터 분리
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=0)

# 랜덤포레스트
from sklearn.ensemble import RandomForestRegressor
rf = RandomForestRegressor(random_state = 0)
rf.fit(X_tr, y_tr)
pred = rf.predict(X_val)

# # LightGBM
# import lightgbm as lgb
# lg = lgb.LGBMRegressor(random_state = 0, verbose=-1)
# lg.fit(X_tr,y_tr)
# pred = lg.predict(X_val)

#평가지표 RMSE
from sklearn.metrics import root_mean_squared_error
rmse = root_mean_squared_error(y_val, pred)
# print(rmse)
# 원핫 + 랜포 = 3779.676969452687 선택
# 원핫 + LGB = 4216.406340322749
pred_final = rf.predict(test)
# 제출
submit = pd.DataFrame({'pred':pred_final})
submit.to_csv('result.csv',index=False)
pd.read_csv('result.csv')

답변 1

1

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

  1. 네 완벽합니다.

  2. 시험 데이터는 좀 더 작은 사이즈일거에요

  3. 레이블 인코딩을 합친다면 코드가 살짝 수정이 필요합니다. 예를들면 아래와 같습니다.

     

     

    for col in cols:
        le = LabelEncoder()
        df[col] = le.fit_transform(df[col])

     

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

작성한 질문수

질문하기