python - “值错误:x 和 y 的大小必须相同”错误。多元线性回归
问题描述
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
dataset=pd.read_csv("Marketing_Data.csv")
X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, -1].values
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 1/3, random_state = 0)
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, y_train)
lin_reg = LinearRegression()
lin_reg.fit(X,y)
y_pred = regressor.predict(X_test)
np.set_printoptions(precision = 2)
plt.scatter(X, y, color = 'red')
plt.plot(X, lin_reg.predict(X), color = 'blue')
plt.title("Sales")
plt.show()
我正在尝试编写多元线性回归。有三个自变量和一个因变量。我得到一个
Value Error: x and y must be same size
和一个空的 matplotlib 图。
追溯:
File "||file path comes here||\untitled0.py", line 20, in <module>
plt.scatter(X, y, color = 'red')
File "C:\Anaconda\lib\site-packages\matplotlib\pyplot.py", line 2890, in scatter
__ret = gca().scatter(
File "C:\Anaconda\lib\site-packages\matplotlib\__init__.py", line 1438, in inner
return func(ax, *map(sanitize_sequence, args), **kwargs)
File "C:\Anaconda\lib\site-packages\matplotlib\cbook\deprecation.py", line 411, in wrapper
return func(*inner_args, **inner_kwargs)
File "C:\Anaconda\lib\site-packages\matplotlib\axes\_axes.py", line 4441, in scatter
raise ValueError("x and y must be the same size")
解决方案
我认为您收到错误是因为您如何将 .iloc 用于变量 X 和 Y。不知道您的 csv 数据是什么样的,如果这不是您要查找的内容,我们深表歉意......
您的 X .iloc 返回一个 NxN 数组,有点像矩阵(pandas/numpy 将其视为数组),并返回数据集中的所有行减去最后一列(您告诉它忽略最后一列:-1 )。
您的 y .iloc 返回 1xN 数组并将返回数据集的最后一列。
看起来像:
x = dataset.iloc[:, :-1].values
>>> [['Col1Row1_val', 'Col2Row1_val']
['Col1Row2_val', 'Col2Row2_val']]
y = dataset.iloc[:, -1].values
>>> ['lastColRow1_val', 'lastColRow2_val']
x 和 y .iloc 应该相似或以 x 和 y 都是的方式组合,例如 1xN 数组或 NxN 数组。
或使用散点图以外的图
推荐阅读
- r - 强制 .GRP 计数器从 data.table 中的 2 而不是 1 开始
- javascript - 如何将 javascript 缓冲区转换为 c/c++ API 的字节数组?
- typescript - 打字稿:基于参数中存在的键的映射返回类型
- spring-boot - Google App Engine 是否支持 java 柔性环境中的 session_affinity?
- c# - 希伯来文化在服务器上没有希伯来日历
- python - SQLite & Python - 获取列中所有值的最快方法?
- c# - 使用 DinkToPdf 库处理将 html 转换为 PDF 需要大量时间
- javascript - 如何对输入 HTML 文本进行后处理以防止 WAF/OWASP 错误?
- php - “调用未定义的方法 Intervention\Image\Image::make()”
- c++ - std::function 接受具有不同传递类型的参数的 lambda 函数(通过 ref,通过 val)