gpt4 book ai didi

python - 使用 Sklearn 对 Pandas DataFrame 进行线性回归(IndexError : tuple index out of range)

转载 作者:IT老高 更新时间:2023-10-28 20:59:04 25 4
gpt4 key购买 nike

我是 Python 新手,正在尝试在 pandas 数据帧上使用 sklearn 执行线性回归。这就是我所做的:

data = pd.read_csv('xxxx.csv')

之后我得到了一个包含两列的 DataFrame,我们称它们为“c1”、“c2”。现在我想对 (c1,c2) 的集合进行线性回归,所以我输入了

X=data['c1'].values
Y=data['c2'].values
linear_model.LinearRegression().fit(X,Y)

导致以下错误

IndexError: tuple index out of range

这里有什么问题?还有,我想知道

  1. 可视化结果
  2. 根据结果进行预测?

我搜索并浏览了大量网站,但似乎没有一个网站可以指导初学者正确的语法。也许对于专家来说显而易见的事情对于像我这样的新手来说并不那么明显。

你能帮忙吗?非常感谢您的宝贵时间。

PS:我注意到大量初学者问题在 stackoverflow 中被否决。请考虑这样一个事实,即对于专家用户来说似乎很明显的事情可能需要初学者几天才能弄清楚。在按下向下箭头时请谨慎行事,以免损害此讨论社区的活力。

最佳答案

假设您的 csv 看起来像这样:

c1,c2
0.000000,0.968012
1.000000,2.712641
2.000000,11.958873
3.000000,10.889784
...

我是这样生成数据的:

import numpy as np
from sklearn import datasets, linear_model
import matplotlib.pyplot as plt

length = 10
x = np.arange(length, dtype=float).reshape((length, 1))
y = x + (np.random.rand(length)*10).reshape((length, 1))

此数据保存到 test.csv(只是为了让您知道它来自哪里,显然您将使用自己的)。

data = pd.read_csv('test.csv', index_col=False, header=0)
x = data.c1.values
y = data.c2.values
print x # prints: [ 0. 1. 2. 3. 4. 5. 6. 7. 8. 9.]

您需要查看您输入 .fit() 的数据的形状。

这里 x.shape = (10,) 但我们需要它是 (10, 1),见 sklearn . y 也是如此。所以我们 reshape :

x = x.reshape(length, 1)
y = y.reshape(length, 1)

现在我们创建回归对象,然后调用fit():

regr = linear_model.LinearRegression()
regr.fit(x, y)

# plot it as in the example at http://scikit-learn.org/
plt.scatter(x, y, color='black')
plt.plot(x, regr.predict(x), color='blue', linewidth=3)
plt.xticks(())
plt.yticks(())
plt.show()

参见 sklearn 线性回归 example . enter image description here

关于python - 使用 Sklearn 对 Pandas DataFrame 进行线性回归(IndexError : tuple index out of range),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29934083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com