为了账号安全,请及时绑定邮箱和手机立即绑定

将一维向量拟合到 SVC 线性内核

将一维向量拟合到 SVC 线性内核

慕容708150 2023-03-16 16:07:43
我正在尝试将 SVC 与线性内核一起用于图像识别任务。我当前的数据是一个 2x5 矩阵[['Face 1' 'Face2' 'Face 3' 'Face 4' 'Face 5'] ['229.0' '230.0' '231.0' '230.0' '230.0']]我的第二行是我的 X 特征,它们是来自不同图像的像素强度值。我的第一行是我的 Y 标签,它们是从中提取像素的面部图像。我正在尝试不惜一切代价将我的数据输入 SVC。我正在尝试的是:    m_array = [[229, 230, 231, 230, 230]]    faces = []    faces = np.asarray(['Face 1', 'Face2', 'Face 3', 'Face 4', 'Face 5']).reshape(-1, 5)        data = np.stack((faces, m_array)).reshape(2, 5)    df = pd.DataFrame(data)    X = data[1, :]    Y = data[0, :]from sklearn.model_selection import train_test_splitX_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20)from sklearn.svm import SVCsvclassifier = SVC(kernel='linear')svclassifier.fit(X_train, y_train)我想测试这些功能的识别率,但出现错误:类型错误:单例数组 array(162) 不能被视为有效集合。
查看完整描述

1 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

sklearn 期望您的 X_train 数组是一个二维数组,例如 (n_examples, 1),而 Y_train 是一维标签数组,例如 (n_examples, )。


我重新格式化了您的代码以删除一些不必要的步骤并解决了问题:


import numpy as np

import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split

from sklearn.svm import SVC


m_array = np.array([229, 230, 231, 230, 230])[:, np.newaxis]

faces = np.array(['Face 1', 'Face2', 'Face 3', 'Face 4', 'Face 5'])


X_train, X_test, y_train, y_test = train_test_split(m_array, faces, test_size = 0.20)


svclassifier = SVC(kernel='linear')

svclassifier.fit(X_train, y_train)


查看完整回答
反对 回复 2023-03-16
  • 1 回答
  • 0 关注
  • 87 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信