мы можем сделать многомерную регрессию при регрессии дерева решений в python? - PullRequest
0 голосов
/ 27 февраля 2019

Я делаю регрессию дерева решений в python.Однако прогнозируемые целевые значения, соответствующие тестовому образцу, оказываются средними от целевой переменной в этом листе.Есть ли способ, чтобы вместо получения только среднего значения мы могли запустить многомерную регрессию в этом сегменте, чтобы получить оценочное значение целевой переменной для тестового образца?

PS: хотелось бы узнать функциональность в Python длякак то так: https://www.researchgate.net/publication/2640479_Employing_Linear_Regression_in_Regression_Tree_Leaves

1 Ответ

0 голосов
/ 27 февраля 2019

Есть ли способ, чтобы вместо получения только среднего значения мы могли запустить многомерную регрессию в этом сегменте, чтобы получить оценочное значение целевой переменной для тестового образца?

Может бытьВы должны использовать функцию sklearn.model_selection.cross_validate для перекрестной проверки, которая может дать вам несколько баллов:

>>> from sklearn import datasets, linear_model
>>> from sklearn.model_selection import cross_validate
>>> from sklearn.metrics.scorer import make_scorer
>>> from sklearn.metrics import confusion_matrix
>>> from sklearn.svm import LinearSVC
>>> diabetes = datasets.load_diabetes()
>>> X = diabetes.data[:150]
>>> y = diabetes.target[:150]
>>> lasso = linear_model.Lasso()
>>> scores = cross_validate(lasso, X, y, cv=3,
...                         scoring=('r2', 'neg_mean_squared_error'),
...                         return_train_score=True)
>>> print(scores['test_neg_mean_squared_error'])      
[-3635.5... -3573.3... -6114.7...]
>>> print(scores['train_r2'])                         
[0.28010158 0.39088426 0.22784852]
...