【发布时间】:2015-07-18 23:43:10
【问题描述】:
我想训练一个支持向量机来执行样本分类。我有一个 csv 文件,它有 3 列带标题:特征 1、特征 2、类标签和 20 行(= 样本数)。
现在我引用 Scikit-Learn 文档 " 与其他分类器一样,SVC、NuSVC 和 LinearSVC 将两个数组作为输入:一个大小为 [n_samples, n_features] 的数组 X 保存训练样本,以及一个包含类标签(字符串或整数)的数组 y,大小为 [n_samples]:"
我知道我需要获取两个数组(一个 2d 和一个 1d 数组)才能将数据输入 SVM。但是我无法理解如何从 csv 文件中获取所需的数组。 我试过下面的代码
import numpy as np
data = np.loadtxt('test.csv', delimiter=',')
print data
但是它显示错误 “ValueError:无法将字符串转换为浮点数:��ࡱ�”
csv 中没有列标题。我在调用函数 np.loadtxt 时是否犯了任何错误,还是应该使用其他东西?
更新: 这是我的 .csv 文件的样子。
12 122 34
12234 54 23
23 34 23
【问题讨论】:
-
查看 csv 的前几行会很有用
-
嗨,我已经用几行 csv 更新了这个问题。
-
我在你的 csv 中没有看到分隔符,删除
delimiter参数所以:data = np.loadtxt('test.csv')应该可以工作 -
分隔符也有可能是一个制表符(看看值是如何对齐的)。如果是这种情况,请尝试
delimiter='\t'。 -
@EdChum- 是的,现在我注意到没有逗号。
标签: python csv numpy scikit-learn