首页 > 解决方案 > 尝试做线性线性回归分类器给我“ValueError:预期的二维数组,而不是一维数组

问题描述

我已经使用线性回归完成了 scikit-learn toturiol。当我尝试编写自己的代码来执行此操作时,我收到一条错误消息““如果它包含单个样本。”.format(array)) ValueError: Expected 2D array, got 1D array instead: “# Use only one feature: " 示例代码发送一维数组糖尿病_X = 糖尿病.data[:, np.newaxis, 2]

这是我尝试过的: 1. 使用列表而不是 numpy 数组 2. 在示例代码中打印出糖尿病_X 得到 [[ 0.06169621] [-0.05147406] .....]] 然后我尝试更改我的代码如下 xp= [ [3449] [1058] [2201]] 出现错误,提示预期语句结束。然后我尝试了 xp=[ [3449], [1058], [2201]] 同样的错误信息

我的代码

xs=np.array([ 3449 ,  1058,  2201,  2500,  1953,  1637,  1400,  1836,  1400,  4677,  1639,  2094,  1491], dtype=np.float64)
ys=np.array([529000,279090,479000,319000,369000,346000,425000,380000,425000,646900,349900,384900,284900], dtype=np.float64)

xp=[ 3449 ,  1058,  2201,  2500,  1953,  1637,  1400,  1836,  1400,  4677,  1639,  2094,  1491]
yp=[529000,279090,479000,319000,369000,346000,425000,380000,425000,646900,349900,384900,284900]

clf= linear_model.LinearRegression()

clf.fit(xp, yp)
g=clf.predict( 279090)
print("+++++++ guess +++++++")
print(g)
print("jjjjjjj")

标签: python

解决方案


在将它们转换为 NumPy 数组后,您可以使用xp = np.array([....])yp = np.array([....])

xp = xp.reshape(xp.shape[0],-1)
yp = yp.reshape(yp.shape[0],-1)

clf= linear_model.LinearRegression()

clf.fit(xp, yp)
g=clf.predict( 279090)
print("+++++++ guess +++++++")
print(g)
print("jjjjjjj")

# +++++++ guess +++++++
# [[24426732.22]]
# jjjjjjj

推荐阅读