如何在DecisionTree Regressor中提高负R平方

问题描述 投票:0回答:1

我是机器学习的新手,我试图使用一些回归器来预测IMDB的等级。这是我尝试过的:

import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from sklearn.tree import DecisionTreeRegressor
from sklearn.model_selection import train_test_split

data = pd.read_csv("D:/Code/imdb_project/movie_metadata.csv")
df = data[["duration","budget", "title_year","imdb_score"]]
df = df.dropna()
feature = np.array(df[["duration","budget","title_year"]])
rating = np.array(df["imdb_score"])

scaler = MinMaxScaler()
scaler.fit(feature)
X = scaler.transform(feature)
y = rating
x_train, x_test, y_train, y_test = train_test_split(X, y, train_size = 0.8, test_size = 0.2, random_state = 5)

regressor = DecisionTreeRegressor(criterion='mse')
regressor.fit(x_train, y_train)
regressor.score(x_test, y_test)

为了澄清,我的数据集包含3个功能:预算,发布年份和持续时间,y是IMDB评分。当将此回归变量用于测试数据时,我总是会收到一个负R平方(它与火车数据配合得很好。)我知道R平方可以是负的,但我仍然想知道是否有一种方法可以改善它?我知道的唯一方法是对数据进行归一化,并在拟合模型之前完成了它。

python-3.x machine-learning decision-tree
1个回答
0
投票

R ^ 2分数表示您的模型对数据的拟合非常差。在这种情况下,决策树可能太简单了。也许您选择了错误的criterion

我建议尝试调整模型的超参数或选择另一个。

© www.soinside.com 2019 - 2024. All rights reserved.