我正在实现一个简单的多项式回归来预测视频根据其大小所需的时间,这是我自己的数据集。现在不知为何,我的图表上出现了多个轨迹。
# 导入库import numpy as npimport matplotlib.pyplot as pltimport pandas as pd# 导入数据集dataset = pd.read_csv('estSize.csv')X = dataset.iloc[:, 0].values.reshape(-1,1)y = dataset.iloc[:, 1].values.reshape(-1,1)from sklearn.linear_model import LinearRegression# 多项式回归拟合数据集from sklearn.preprocessing import PolynomialFeaturespoly_reg = PolynomialFeatures(degree = 2)X_poly = poly_reg.fit_transform(X)poly_reg.fit(X_poly, y)lin_reg_2 = LinearRegression()lin_reg_2.fit(X_poly, y)# 可视化多项式回归结果plt.scatter(X, y, color = 'red')plt.plot(X, lin_reg_2.predict(poly_reg.fit_transform(X)), color = 'blue')plt.show()
回答:
您的数据需要按照预测变量排序。
在这一行之后
dataset = pd.read_csv('estSize.csv')
添加这行代码:
dataset = dataset.sort_values(by=['col1'])
其中 col1
是您的文件大小值的列标题。