python - 仅具有一维的多维“X”和“y”的绘图误差
问题描述
我想建立一个模型来预测将租用多少辆自行车。因此我正在使用 DecisionTreeRegressor 但我遇到了问题。我无法绘制这个,因为“ValueError:x 和 y 必须是相同的大小”。如果我将 X 和 y 与 len() 进行比较,我得到相同的长度。问题是我的 X 有 10 列而 y 只有 1 列。这就是我收到此错误的原因。我想用我的情节得到以下图片:
有什么想法我可以纠正这个吗?
X = df_day.drop(["date", "total_rides"], axis = 1)
y = df_day["total_rides"]
#X has something like 10 columns and y has only 1 column
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state = 43, test_size = 0.25)
dtc = DecisionTreeRegressor(max_depth = None)
dtc.fit(X_train, y_train)
#dtc.score(X_test, y_test)
#Prediction
y_pred2 = dtc.predict(X_test)
plt.scatter(X, y)
plt.plot(X_test, y_pred2)
plt.show()
解决方案
就像您的错误所说,您只能绘制具有相同大小的数组(即一个 x 列和一个 y 列或十个 x 列和十个 y 列,都具有相同的行数)。要将它们全部绘制在一起,您应该重复每列的 y 值。天真地:
for i in range(X.shape[0]):
plt.scatter(X[:,i], y)
plt.plot(X_test[:,i], y_pred2)
plt.show()
请注意,这些列可能都在不同的尺度上,这个图可能毫无意义。但是代码应该显示您希望看到的内容。
推荐阅读
- python - 索引numpy数组
- java - SPARK java.net.NoRouteToHostException:没有到主机的路由
- r - 如何使用 shapefile 从 netcdf 文件中提取变量数据?
- r - R Shiny 使第二个动作按钮 2 在单击动作按钮 1 后出现
- android - Android 的双簧管库中是否支持音频处理?
- html - 表格的滚动条将文本向左推?
- sql - ORA-00933: SQL 命令未正确结束——我错过了什么?
- javascript - Angular链接重定向而不是下载
- android - 修复 GraphView 标题 X 轴的间距
- java - 如何在不知道完整文件路径的情况下访问文件?