1

我正在运行以下代码,训练数据集的图表给出错误,

    import pandas as pd
    import numpy as np
    df = pd.read_csv('11.csv')
    df.head()
         AT     V        AP          RH       PE
    0   8.34    40.77   1010.84     90.01   480.48
    1   23.64   58.49   1011.40     74.20   445.75
    2   29.74   56.90   1007.15     41.91   438.76
    3   19.07   49.69   1007.22     76.79   453.09
    4   11.80   40.66   1017.13     97.20   464.43
    x = df.drop(['PE'], axis = 1).values
    y = df['PE'].values
    from sklearn.model_selection import train_test_split
    x_train, x_test, y_train, y_test = train_test_split(x,y, test_size = 0.2, random_state=0)
    from sklearn.linear_model import LinearRegression
    ml = LinearRegression()
    ml.fit(x_train, y_train)
    y_pred = ml.predict(x_test)
    print(y_pred) 
    import matplotlib.pyplot as plt
    plt.scatter(x_train, y_train, color = 'red')
    plt.plot(x_train, ml.predict(x_test), color = 'green')
    plt.show() ***

please help to reshape 2d to 1d array for plotting graphs
**ValueError: x and y must be the same size**
4

1 回答 1

0

编辑:既然您的问题的格式已修复,我发现了一些错误,其主题是使用一维线性回归代码来绘制您的多元回归问题。

plt.scatter(x_train, y_train, color = 'red'):您正在尝试使用x_train. 你不能这样做,因为这是多元线性回归。(例如,无法将 x 轴上的压力和体积与 y 轴上的温度相匹配。x 轴代表什么?这没有意义。)您无法绘制您要绘制的内容,并且我不能给你建议,因为我不知道你想做什么。您可以一次尝试一个变量,例如plt.scatter(x_train['AT'], y_train, color='red'). 或者您使用不同的颜色在同一个图表上绘制每个变量 - 尽管我不建议这样做,因为您的 x 轴可能具有不同的单位。

plt.plot(x_train, ml.predict(x_test): 你应该使用 y_test 作为你的 x 输入。例如plt.plot(y_test, ml.predict(x_test))。这是数据长度的问题,而不是像上面的错误那样的宽度/列。虽然如果我的建议不是您想要的(绘制 y_test 和您的 y 预测有点奇怪),但当您使用多元线性回归时,您可能会(错误地)输入一维线性回归的假设/代码 - 一个潜在的这些错误的主题。

于 2022-01-28T05:23:50.623 回答