我正在尝试使用python实现线性回归。
我做了以下步骤:
import pandas as p
import numpy as n
data = p.read_csv("...path\Housing.csv", usecols=[1]) # I want the first col
data1 = p.read_csv("...path\Housing.csv", usecols=[3]) # I want the 3rd col
x = data
y = data1
然后,我尝试获取系数,并使用以下方法:
regression_coeff = n.polyfit(x,y,1)
然后我得到以下错误:
raise TypeError("expected 1D vector for x")
TypeError: expected 1D vector for x
我无法解决这个问题,因为当我打印x
和时y
,我可以很清楚地看到它们都是一维矢量。
有人可以帮忙吗?
数据集可以在这里找到:数据集
原始代码是:
import pandas as p
import numpy as n
data = pd.read_csv('...\housing.csv', usecols = [1])
data1 = pd.read_csv('...\housing.csv', usecols = [3])
x = data
y = data1
regression = n.polyfit(x, y, 1)
这应该工作:
np.polyfit(data.values.flatten(), data1.values.flatten(), 1)
data
是一个数据框,其值为2D:
>>> data.values.shape
(546, 1)
flatten()
将其转换为一维数组:
>> data.values.flatten().shape
(546,)
这是必需的polyfit()
。
更简单的选择:
df = pd.read_csv("Housing.csv")
np.polyfit(df['price'], df['bedrooms'], 1)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句