我想创建一个线性回归模型,展示BMI和疾病风险(基线一年后疾病的量化测量)之间的正相关性。
数据集是来自sklearn的数据集–import sklearn.datasets.load_diabetes
这是URL(https://www4.stat.ncsu.edu/~boos/var.select/diabetes.tab.txt)
我使用read_csv(args)导入了整个表,并将其命名为’data’
df = DataFrame({'BMI': data['BMI'], 'Target': data['Y']}).sort_values('BMI')df.plot.scatter('BMI', 'Target')model = LinearRegression(fit_intercept=True)model.fit(data[['BMI']], data['Y'])x_test = np.linspace(data['BMI'].min(), data['BMI'].max())y_pred = model.predict(x_test[:, np.newaxis])df.plot(x_test, y_pred, linestyle=":", color="red")
当我尝试这样做时,它给出了一个我无法理解的大错误信息,为什么会这样?
回答:
我想你想要的是:
你之前使用df.plot(x, y)
的解决方案会产生错误,因为pandas数据框架的这个plot函数只能作用于它被调用的数据框架上。它不是像pyplot.plot(x, y)
这样的plot函数那样的一般绘图函数。