python - “ValueError: y 应该是一维数组,取而代之的是一个形状为 (3, 4) 的数组。” 使用 sklearn 中的 fit() 时
问题描述
我输入:
import numpy as np
from sklearn.linear_model import LogisticRegression
label_list = np.array([1,2,3])
label_list = label_list.reshape(-1,1)
feature_matrix = np.array([[0,0,1,1],[0,1,0,1],[1,0,0,1]])
model = LogisticRegression()
model.fit(label_list,feature_matrix)
然后我的控制台输出:
ValueError: y should be a 1d array, got an array of shape (3, 4) instead.
我该如何解决?我是初学者。请清楚地告诉我。
解决方案
根据示例代码,我知道这label_list
是“目标向量”(y
)并且feature_matrix
是X
矩阵。
所以,正确的用法应该是:
model.fit(feature_matrix, label_list)
此外,您不能重塑label_list
:
label_list = label_list.reshape(-1,1)
因为model.fit()
需要一个带有 shape 的向量,(n_samples,)
而您正在给出一个带有 shape 的向量(n_samples, 1)
。
总之,您的代码应如下所示:
import numpy as np
from sklearn.linear_model import LogisticRegression
label_list = np.array([1,2,3])
feature_matrix = np.array([[0,0,1,1],[0,1,0,1],[1,0,0,1]])
model = LogisticRegression()
model.fit(feature_matrix, label_list)
推荐阅读
- javascript - 有没有办法在 documentElement 之外访问 DOM?
- sql - WITH AS (SELECT) 语句的 CREATE VIEW 语法
- c++ - 如何在 Ubuntu 16.04 中安装 MySql 连接器/C++
- javascript - 即使我的 html 和 css 运行完美,当我将文件放入 chrome 时,我的脚本文件也不会运行
- python - groupby.diff 中的神秘 ValueError
- javascript - 如何在循环中正确使用异步等待
- vue.js - 网址查询参数
- php - Lumen / Laravel:无法弄清楚对 json 响应进行单元测试的工作原理
- rabbitmq - Elm 中的 RabbitMQ 客户端
- xcode - 归档 iOS Audiokit 项目时出现意外的 Mach-O 标头代码