>

일반적인 머신 러닝 회귀 문제를 겪고 있습니다. 800 개의 데이터 포인트와 6 개의 기능이 있습니다. 최상의 모델 Extra Trees Regressor는 제곱 평균 제곱 오차에 대해 30을 반환합니다. 극단적 인 데이터를 덜 영향력있게 만들기 위해 로그 변환을 수행합니다. 로그는 기울어 진 데이터를 정규 분포로 변환합니다. 오류는 0.54에 불과하므로 왜 급격한 변화가 발생합니까?

log (30) = 1.4 나는 나의 통계 지식이 최고가 아니라는 것을 이해하지만 이것은 나에게는 매우 이상하게 보인다. 매개 변수를 조정하지 않았습니다.

그 말로 어떤 오류를 믿어야합니까? 각각의 해석은 무엇입니까?

예측값을 기록합니다

pricing['runtime.min'] = np.log(pricing['runtime.min'])

모델을 평가하는 기능

def evaluate(model, test_features, test_labels):
    predictions = model.predict(test_features)
    #Absolute Error
    errors = metrics.mean_absolute_error(test_labels, predictions)
    #Mean Square Error
    MSerrors = metrics.mean_squared_error(test_labels, predictions)
    #Root Mean Squared Error
    RMSE = np.sqrt(metrics.mean_squared_error(test_labels, predictions))
    print('Model Perfomance')
    print('Average MAE Error: {:0.4f} degrees. '.format(errors))
    print('Average MSE Error: {:0.4f} degrees. '.format(MSerrors))
    print('Average RMS Error: {:0.4f} degrees. '.format(RMSE))
    return 'end of test'

추가 트리 회귀 기

et_params = {'n_estimators': 1000,  'max_features':2}
et = SklearnExtra(clf = ExtraTreesRegressor(), seed = Seed, params = et_params)
et.fit(x_train, y_train)
base_models = [rf, et, gb, ada, xg]
for i in base_models:
    print('Model ' + i.name())
    print('Training: '+str(evaluate(i, x_train, y_train)))
    print('')
    print('Model ' + i.name())
    print('Test: '+ str(evaluate(i, x_test, y_test)))
    print('Test MAPE '+ str(mean_absolute_percentage_error(i, y_test, x_test)))

Model ExtraTreesRegressor(bootstrap=False, criterion='mse', max_depth=None,
                    max_features='auto', max_leaf_nodes=None,
                    min_impurity_decrease=0.0, min_impurity_split=None,
                    min_samples_leaf=1, min_samples_split=2,
                    min_weight_fraction_leaf=0.0, n_estimators=10, n_jobs=None,
                    oob_score=False, random_state=None, verbose=0,
                    warm_start=False)
Model Perfomance
Average MAE Error: 0.0165 degrees. 
Average MSE Error: 0.0079 degrees. 
Average RMS Error: 0.0887 degrees. 
Training: end of test
Model Perfomance
Average MAE Error: 0.3572 degrees. 
Average MSE Error: 0.2957 degrees. 
Average RMS Error: 0.5438 degrees. 
Test: end of test


  • 답변 # 1

    우리는 당신이무엇을해야하는지 말할 수 없으며, 그것이 데이터에 적합한 지 결정해야합니다.

    그러나 변환 및 통계에 대한 의견에서 요청한 이유는 목표의 규모를 변경 한 경우 두 모델 간의 절대 차이를 분석에 사용할 수 없습니다. 초기 모델의 RMSE가 30이지만 예측 된 값의 범위가 0 ~ 100이고 표준 편차가 20 인 경우 (예 :) 크지 않습니다. 그러나 새 모델에서는 데이터가 0 ~ 10이고 st.dev입니다. 3.5이면 rmse .5가 더 좋습니다.

    정답은 약간 주관적이지만 다음과 같이 요약됩니다. 해당 모델을 사용하여 실제 데이터를 예측하는 경우 해당 작업에 대한 허용 오차 범위 내에서 오차 메트릭이 있습니까? 초기 모델의 경우 비즈니스 사례가 예측 된 시간과 실제 시간의 30 (초? 분?) 또는 런타임 차이가 "충분히 근접"합니까? .54 log-milliseconds로 예측 결과를 두 번째 모델에 쓸모 없게 만들 수 있습니까?

    "모든 모델이 잘못되었습니다. 일부 모델이 유용합니다."의 "유용한"부분을 참조하십시오.

관련 자료

  • 이전 css - 사이드 네비게이션 콘텐츠에 적용된 각도가 잘못된 여백 왼쪽
  • 다음 sql - 평균 x보다 큰 그룹화 된 카테고리를 찾으려고합니다