Могу ли я сказать, что в моем случае случайный лес подходит лучше, чем линейная регрессия? - PullRequest
0 голосов
/ 12 октября 2018

У меня проблема с регрессией, и я попробовал и Регулярную регрессию, и Случайный лес.Вот мой код

 from sklearn import linear_model
clf = linear_model.LinearRegression()

clf.fit(X, y)

print('Raw Coefficients: \n', clf.coef_)
print('Score: \n',clf.score(X, y));


# Now we normalise the data
scalerX = StandardScaler().fit(X)
scalery = StandardScaler().fit(y) # Have to reshape to avoid warnings

normed_X = scalerX.transform(X)
normed_y = scalery.transform(y) # Have to reshape to avoid warnings
scaledclf = linear_model.LinearRegression()

scaledclf.fit(normed_X, y)
print('Scaled Coefficients: \n', scaledclf.coef_)
print('Score: \n', scaledclf.score(normed_X, y));

from sklearn.ensemble import RandomForestRegressor
regr = RandomForestRegressor()
regr.fit(X, y)
print('Feature importance: \n')
print(regr.feature_importances_)
print('Forest Score: \n', regr.score(X, y));

Исходя из результатов, я вижу, что показатель линейной регрессии R2 (масштабированный или необработанный) равен 0,27.Но случайный лес дает мне 0,9.(согласно документу, 1 является наиболее точным).

Могу ли я сказать, что в этом случае мои данные лучше подходят для регрессора случайного леса, отличного от линейного регрессора?(что, как мне кажется, подразумевает, что мои данные не являются линейными, и лучше подгоняются нелинейной моделью)

Raw Coefficients:
 [[-2.46128236  6.50261042  4.23066487  0.16846074 -0.42161622  0.52332136]
 [ 8.7998738  19.23413227 58.76010742  1.02298612 -3.28209941 -2.99637104]]
Score:
 0.27018867990736034
Scaled Coefficients:
 [[-0.83667512  2.32189634  2.03873375  1.47020538 -1.27457093  0.38564757]
 [ 2.99138188  6.86795895 28.31616729  8.92789452 -9.92198189 -2.20809484]]
Score:
 0.27018867990736056
Feature importance:

[0.04388598 0.0329269  0.18755359 0.35849597 0.31578241 0.06135516]
Forest Score:
 0.9003045525566503
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...