在对照书复现代码时,发现一个很奇怪的现象:

  1. 直接将X,Y画图不会报错;
  2. 引入线性回归模型,再用拟合的数据画图就报错,错误代码: InvalidIndexError: (slice(None, None, None), None)

乱搜了一通,经过测试,还是要转换数据格式。书中源代码根本没这两行不知道怎么写出来的。

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
from sklearn.linear_model import LinearRegression

df = pd.read_excel('/Users/xxxxx/PycharmProjects/看过的书的源代码/python大数据分析与机器学习/第3章 线性回归模型/源代码汇总_PyCharm格式/IT行业收入表.xlsx')
X = df[['工龄']]    # 注意X要写成二维结构
Y = df['薪水']
X = np.array(X)    # 必须要加转换成np才不会报错
Y = np.array(Y)    # 必须要加转换成np才不会报错
plt.xlabel('age')
plt.ylabel('salary')
plt.scatter(X, Y)

regr = LinearRegression()    # 引入线性回归模型
regr.fit(X,Y)
plt.plot(X, regr.predict(X), color='red')
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐