python - 绘制两个不同维度的数据框(x 和 y)?
问题描述
我最近在钻石数据集上建立了一个 SVR 模型,根据一些特定的特征来预测钻石的价格。我试图根据预测价格绘制模型的测试特征。下面是代码中使用的变量的解释。
X_test - 我进行了训练/测试拆分,这些是用于测试模型的功能。尺寸 10782,7(共 8 个特征)。
y_pred - 运行模型后,这将是数据集中每行特征的预测价格。尺码 10782。
下面是这些如何发挥作用的代码
diamonds_features = ['carat', 'x', 'y', 'z', 'color', 'cut', 'clarity']
X = df.loc[:, diamonds_features].values
y = df.iloc[:, 6:7].values
X_train, X_test, y_train, y_test = train_test_split(X, y.ravel(), test_size=0.20)
regressor = SVR(kernel='rbf', C=50, gamma = 10)
regressor.fit(X_train, y_train)
#produce test predictions
y_pred = regressor.predict(X_test)
下面是绘制模型结果的代码。
colorGroup = ['b','g','r','c','m','y','k','w']
plt.figure(1)
for i in range(len(X_test)):
col = colorGroup[i % 8]
for j in range(8):
plt.scatter(X_test[i:i+1, j:j+1], y_pred[i:i+1], color=col)
为了解决 X_test 和 y_pred 大小不同的事实,我想做以下事情:
对于 y_pred 中的每个单独的值(因为它是一个一维数组,它将是每个值),取 X_test 的一行中的每个值并将其与 y_pred 值相对应。此外,使用 mod 来确保每个特征都有相应的颜色(例如,当我绘制克拉时,它将在整个绘图中保持一致的颜色)。
这段代码的问题是我得到以下信息:“ValueError:x 和 y 必须是相同的大小”
如果有人能指出我哪里出了问题,我将不胜感激。
这是我收到的回溯:
回溯(最近一次通话最后):
文件“C:\Users\mypackage\SVM Model.py”,第 72 行,在 plt.scatter(X_test[i:i+1, j:j+1], y_pred[i:i+1], color=colorGroup [i%8])
文件“C:\Users\anaconda3\lib\site-packages\matplotlib\pyplot.py”,第 2890 行,在 scatter __ret = gca().scatter(
文件“C:\Users\anaconda3\lib\site-packages\matplotlib_init _.py ”,第 1438 行,内部返回 func(ax, *map(sanitize_sequence, args), **kwargs)
文件“C:\Users\anaconda3\lib\site-packages\matplotlib\cbook\deprecation.py”,第 411 行,在 wrapper return func(*inner_args, **inner_kwargs)
文件“C:\Users\anaconda3\lib\site-packages\matplotlib\axes_axes.py”,第 4441 行,分散引发 ValueError(“x 和 y 必须是相同的大小”)
ValueError: x 和 y 的大小必须相同
编辑:用 Traceback 更新了问题
解决方案
According to the comment I believe this is what you want.
As an example, I used 20 points with 3 features.
import numpy as np
import matplotlib.pyplot as plt
X_test = np.random.rand(20, 3)
y_pred = np.random.rand(20)
N = y_pred.size
colorGroup = ['b','g','r','c','m','y','k','w']
plt.figure(1)
for i in range(N):
col = colorGroup[i % N]
plt.scatter(X_test[:, i], y_pred, color=col)
推荐阅读
- python - Python 和 Google 助理:名称未定义
- jquery - JQuery 用类获取元素上方最接近的 div
- xcode - Visual Studio 2019 -> 属性编辑器?已更改
- php - 比较PHP中的估计时间和固定时间
- javascript - 用于句子的 JavaScript 正则表达式不起作用
- c# - 如何在 C# 中截取全尺寸窗口(滚动窗口)
- excel - 正确索引新行的问题
- javascript - 以编程方式打开 lightgallery.js
- mongodb - MongoDB Scala 驱动程序 - 设置字段的问题
- python - 在 Python 中,“调用函数的主要部分”是什么?