Allen's 데이터 맛집
[2] 모델링과 예측 본문
이번 포스팅에서는 데이터 분석 프로젝트의 모델링과 예측 단계에 대해 다뤄보겠습니다. 데이터를 통해 예측 모델을 만들어보는 과정입니다.
모델링
모델링은 데이터를 통해 예측 모델을 만드는 과정입니다. 여기서는 선형 회귀, 의사결정나무, 랜덤 포레스트 등의 모델을 사용했습니다.
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error
# 데이터 분할
X = df[['temperature', 'pressure']]
y = df['defect_rate']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 선형 회귀 모델
model = LinearRegression()
model.fit(X_train, y_train)
predictions = model.predict(X_test)
# 모델 평가
rmse = mean_squared_error(y_test, predictions, squared=False)
print(f"RMSE: {rmse}")
import matplotlib.pyplot as plt
# 예측 vs 실제 값 시각화
plt.scatter(y_test, predictions)
plt.xlabel('Actual Values')
plt.ylabel('Predicted Values')
plt.title('Actual vs Predicted Values')
plt.show()
모델 평가 및 비교
모델의 성능을 평가하고 비교해보았습니다. 선형 회귀, 의사결정나무, 랜덤 포레스트 모델의 성능을 비교해 최적의 모델을 선택했습니다.
from sklearn.ensemble import RandomForestRegressor
# 랜덤 포레스트 모델
rf_model = RandomForestRegressor()
rf_model.fit(X_train, y_train)
rf_predictions = rf_model.predict(X_test)
# 모델 평가
rf_rmse = mean_squared_error(y_test, rf_predictions, squared=False)
print(f"랜덤 포레스트 RMSE: {rf_rmse}")
# 랜덤 포레스트 예측 vs 실제 값 시각화
plt.scatter(y_test, rf_predictions)
plt.xlabel('Actual Values')
plt.ylabel('Predicted Values')
plt.title('Actual vs Predicted Values (Random Forest)')
plt.show()
CLASS101링크:https://class101.net/classic/products/Wzhzd2eWzGnwVXwFjmug
728x90