# Ceteris Lab downloadable Python script
# Course: Fundamentals of Python for Financial Econometrics

import numpy as np
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
rng=np.random.default_rng(33); X=rng.normal(size=(1000,8)); y=2*X[:,0]**2+np.sin(X[:,1])+X[:,2]+rng.normal(size=1000)
Xt,Xv,yt,yv=train_test_split(X,y,test_size=.3,random_state=33)
for m in [RandomForestRegressor(n_estimators=200,random_state=1),GradientBoostingRegressor(random_state=1)]:
 m.fit(Xt,yt); print(type(m).__name__,mean_squared_error(yv,m.predict(Xv))**.5)
