티스토리 뷰
from sklearn.ensemble import RandomForestRegressor
# Define the models
model_1 = RandomForestRegressor(n_estimators=50, random_state=0)
model_2 = RandomForestRegressor(n_estimators=100, random_state=0)
model_3 = RandomForestRegressor(n_estimators=100, criterion='mae', random_state=0)
model_4 = RandomForestRegressor(n_estimators=200, min_samples_split=20, random_state=0)
model_5 = RandomForestRegressor(n_estimators=100, max_depth=7, random_state=0)
models = [model_1, model_2, model_3, model_4, model_5]
from sklearn.metrics import mean_absolute_error
# Function for comparing different models
def score_model(model, X_t=X_train, X_v=X_valid, y_t=y_train, y_v=y_valid):
model.fit(X_t, y_t)
preds = model.predict(X_v)
return mean_absolute_error(y_v, preds)
for i in range(0, len(models)):
mae = score_model(models[i])
print("Model %d MAE: %d" % (i+1, mae))
# Fill in the best model
res = 0
for i, model in enumerate(models):
if score_model(models[i])<score_model(models[res]):
res = i
best_model = models[res]
여기서 마지막 best_model을 찾는 부분을 list_comprehension으로 구현할 수는 없을까?
'언어 > Python' 카테고리의 다른 글
Python에서 reference 대신 list 복사하기 (0) | 2022.06.17 |
---|---|
list를 torch로 변환하기 (0) | 2022.06.06 |
함수의 결과 값이 가장 작은 element를 구하라 (0) | 2021.01.05 |
쓰임새를 모르는 Python object 용도 찾기 (0) | 2021.01.01 |
exercise-strings-and-dictionaries (0) | 2021.01.01 |