构建两输入求和预测模型准确率极低问题求助
问题分析与修正方案
核心问题点
- 模型类型误用:你的任务是预测连续数值(A和B的和C),属于回归任务,但你使用了
DecisionTreeClassifier(决策树分类器)——这是专门处理离散类别预测的模型,完全不适合回归场景,这是准确率极低的根本原因。 - 评估指标错误:
accuracy_score是分类任务的专属指标,用来计算预测类别与真实类别的匹配率,对回归任务毫无意义。回归任务需要用回归类指标,比如均方误差(MSE)、R²分数等。
修正后的代码示例
import pandas as pd from sklearn.tree import DecisionTreeRegressor # 替换为回归模型 from sklearn.model_selection import train_test_split from sklearn.metrics import r2_score, mean_squared_error # 替换为回归评估指标 data = pd.read_csv('Dataset.csv') X = data.drop(columns=['C']) y = data['C'] X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2) model = DecisionTreeRegressor() # 使用回归树模型 model.fit(X_train, y_train) predictions = model.predict(X_test) # 用回归指标评估模型性能 r2 = r2_score(y_test, predictions) mse = mean_squared_error(y_test, predictions) print(f"R²分数: {r2}") print(f"均方误差: {mse}")
补充说明
由于你的数据是严格的C = A + B线性关系,只要用对回归模型,理论上可以达到近乎完美的预测效果(R²接近1,均方误差接近0)。决策树回归只要设置足够的深度,就能完全拟合这个简单的线性规则。
内容的提问来源于stack exchange,提问作者Ajith Viswanath
相关产品推荐
相关产品推荐

