반응형
※ 해당 글은 '빅데이터분석기사' 자격증 취득을 위해 개인 공부기록 용도로 작성된 내용입니다.
(출처 :유튜브 AI 너는 아니 AI you know?)
# 1. 데이터 로드 및 확인
# 2-1. 결측값 처리(대체) - 최빈값
# 2-2. 라벨 인코딩
# 3-1. 모델링(데이터 분할)
# 3-2. 모델링(회귀)
# 4. 성능평가
# 5. 테스트 모델 예측
# 6-1. 테스트 결과 제출
# 6-2. 결과 확인
import pandas as pd
# 1. 데이터 로드 및 확인
df = pd.read_csv("content/used_cars_price_data.csv")
# print(df.info()) # 결측값(fuel_type, accident, clean_title) 인코딩(model_year 제외 모든 컬럼 문자열임)
# 2-1. 결측값 처리(대체) - 최빈값
df['fuel_type'].fillna(df['fuel_type'].mode()[0], inplace = True)
df['accident'].fillna(df['accident'].mode()[0], inplace = True)
df['clean_title'].fillna(df['clean_title'].mode()[0], inplace = True)
# print(df.info())
# 2-2. 라벨 인코딩
from sklearn.preprocessing import LabelEncoder
# print(help(sklearn.preprocessing.LabelEncoder))
le = LabelEncoder()
le.fit(df['brand'])
df['brand'] = le.transform(df['brand'])
df['model'] = le.fit_transform(df['model'])
df['milage'] = le.fit_transform(df['milage'])
df['fuel_type'] = le.fit_transform(df['fuel_type'])
df['engine'] = le.fit_transform(df['engine'])
df['transmission'] = le.fit_transform(df['transmission'])
df['ext_col'] = le.fit_transform(df['ext_col'])
df['int_col'] = le.fit_transform(df['int_col'])
df['accident'] = le.fit_transform(df['accident'])
df['clean_title'] = le.fit_transform(df['clean_title'])
df['price'] = le.fit_transform(df['price'])
# print(df.info())
# + train 3800, 테스트 209
train = df.iloc[:3800,:]
test = df.iloc[-209:,:]
# print(train.info())
# print(test.info())
# 3-1. 모델링(데이터 분할)
import numpy as np
from sklearn.model_selection import train_test_split
# print(help(sklearn.model_selection.train_test_split))
X = train.drop(columns=['price'])
y = train['price']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=10)
# 3-2. 모델링(회귀)
from sklearn.ensemble import RandomForestRegressor
# print(help(sklearn.ensemble.RandomForestRegressor))
regr = RandomForestRegressor(n_estimators=120, max_depth=15, random_state=10)
regr.fit(X_train, y_train)
pred1 = regr.predict(X_test)
# 4. 성능평가
from sklearn.metrics import mean_squared_error
# print(help(sklearn.metrics.mean_squared_error))
mse = mean_squared_error(y_test, pred1)
rmse = np.sqrt(mse)
# print(mse) # 121862.20429051273
# print(rmse) # 349.0876742173988
# print(mse**0.5) # 349.0876742173988
# 5. 테스트 모델 예측
test_X = test.drop(columns=['price'])
pred2 = regr.predict(test_X)
# 6-1. 테스트 결과 제출
pd.DataFrame({'price':pred2}).to_csv('result.csv', index=False)
# 6-2. 결과 확인
# result = pd.read_csv('result.csv')
# print(result)
반응형
'자격증' 카테고리의 다른 글
빅데이터분석기사 실기 공부 - 3유형 (0) | 2024.06.18 |
---|---|
빅데이터분석기사 실기 공부 - 2유형(분류) (0) | 2024.06.18 |
빅데이터분석기사 실기 공부 - 1유형 (0) | 2024.06.17 |
빅데이터분석기사 실기 공부(팁) - 필수 암기 코드 (0) | 2024.06.12 |
빅데이터분석기사 실기 공부(7) - 1 유형 문제풀이 (0) | 2024.06.09 |