[9기 AI 알바생] ChatGPT로 데이터분석&예측 모델링하기

연휴가 끝날 때쯤.. 심한 몸살 감기에 걸려 이제야 정신을 좀 차리고, 3주차 과제를 올립니다. ChatGPT의 탐색적 데이터분석(EDA) 능력은 검증이 되었는데요. 과연 머신러닝 모델 학습과 예측도 잘 하는지 한번 도전해보려 합니다.

아무래도 ChatGPT가 잘 하는지 검증을 하기 위해서는 채점까지 해보는 게 좋을 것 같아서 캐글의 유명한 대회중 하나인 Bike Sharing Demand(https://www.kaggle.com/competitions/bike-sharing-demand) 의 데이터를 가지고 해보겠습니다. 쉽게 설명드리면 캐글의 대회들은 train, test, samplesubmission 데이터 파일들을 가지고 있는데, train 데이터는 데이터를 분석하고 학습할 때 사용하고, test데이터는 학습한 모델을 가지고 예측할 때 사용합니다. samplesubmission 데이터는 캐글에 제출하기 위한(캐글에서 채점하기 위한) 양식입니다.

먼저 ChatGPT에게 페르소나 프롬프트를 날립니다.

train.csv 파일을 첨부하고 데이터에 대해서 살펴보겠습니다.

이번 포스팅의 목적은 예측 모델링이므로 데이터 분석 간단하게 해보겠습니다.

1번 가설을 검증해보겠습니다.

상당히 고난이도의 통계 기법을 가지고 검증을 해주네요!! 역시 ChatGPT의 데이터분석 능력은 최고입니다!!

다른 가설들도 검증하고 싶으나… 포스팅이 길어지면 읽기 싫어지니, 바로 예측 모델링을 해보겠습니다.

RandomForest 모델이 가장 성능이 좋다고 하네요.

ChatGPT가 작성한 코드를 보니 다름과 같습니다.


from sklearn.model_selection import train_test_split, cross_val_score

from sklearn.ensemble import RandomForestRegressor

from sklearn.metrics import mean_squared_log_error, mean_squared_error

import numpy as np

# datetime 컬럼을 datetime 타입으로 변환

data['datetime'] = pd.to_datetime(data['datetime'])

# datetime에서 연, 월, 일, 시간을 추출하여 새로운 컬럼으로 추가

data['year'] = data['datetime'].dt.year

data['month'] = data['datetime'].dt.month

data['day'] = data['datetime'].dt.day

data['hour'] = data['datetime'].dt.hour

# 원본 데이터에서 필요한 컬럼만 선택

features = ['season', 'holiday', 'workingday', 'weather', 'temp', 'atemp', 'humidity', 'windspeed', 'year', 'month', 'day', 'hour']

X = data[features]

y = data['count']

# 데이터를 학습 세트와 테스트 세트로 분리

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 랜덤 포레스트 모델 생성 및 학습

rf_model = RandomForestRegressor(n_estimators=100, random_state=42)

rf_model.fit(X_train, y_train)

# 학습된 모델을 사용하여 테스트 데이터에 대한 예측 수행

y_pred = rf_model.predict(X_test)

# 평가 지표 계산: RMSLE (Root Mean Squared Logarithmic Error)

rmsle = np.sqrt(mean_squared_log_error(y_test, y_pred))

# 평가 지표 출력

rmsle


코드에는 랜덤포레스트 모델로 학습한 것만 나와서 실제로 여러 모델들을 다 학습해보고 랜덤포레스트가 가장 성능이 좋아서 랜덤포레스트 모델 학습코드만 보여주는 건지, 그냥 랜덤포레스트만 한건지 알 수 가 없습니다.

이번에는 test데이터의 특성들을 가지고 count를 예측해보겠습니다.

이제 채점을 위해서 ChatGPT에게 채점할 파일을 내보내달라고 하겠습니다.

다운 받을 수 있는 링크를 답변으로 주네요!!

제출해 보겠습니다. 과연 몇점이 나왔을까요? 두둥…

다른 사람들의 점수를 보니 높지가 않네요.. 그래도 특별한 하이퍼파라미터 튜닝이나 특성 엔지니어링 없이 나쁘지 않은 점수를 얻었습니다!

실제 업무에서도 데이터를 예측하고자 할 때 비서정도로 활용해 볼 수 있을 것 같습니다.

#9기ai알바생

3
2개의 답글

(채용) 콘텐츠 마케터, AI 엔지니어, 백엔드 개발자

지피터스의 수 천개 AI 활용 사례 데이터를 AI로 재가공 할 인재를 찾습니다

👉 이 게시글도 읽어보세요