1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 机器学习:libsvm数据格式

机器学习:libsvm数据格式

时间:2019-09-01 23:08:15

相关推荐

机器学习:libsvm数据格式

一、什么是libsvm

libsvm是一种机器学习中常见的数据保存格式,它有如下特征:

[label] [index1]:[value1] [index2]:[value2] …[label] [index1]:[value1] [index2]:[value2] …

label目标值,就是说class(属于哪一类),就是你要分类的种类,通常是一些整数。

index是有顺序的索引,通常是连续的整数。就是指特征编号,必须按照升序排列

value就是特征值,用来train的数据,通常是一堆实数组成。

即:

目标值 第一维特征编号:第一维特征值 第二维特征编号:第二维特征值 …目标值 第一维特征编号:第一维特征值 第二维特征编号:第二维特征值 ………目标值 第一维特征编号:第一维特征值 第二维特征编号:第二维特征值 …

一、libsvm文件的读取

python中使用sklearn包很容易就能读取到libsvm格式的数据

需要导入下面的包(如果没有安装sklearn的包要先自己安装):

from sklearn.datasets import load_svmlight_filedef load_data(filename):data = load_svmlight_file(filename)return datadata = load_data('yourpath/housing_scale.txt')print(type(data))#<class 'tuple'>print(type(data[0]))print(data[0][0])#<class 'scipy.sparse.csr.csr_matrix'># (0, 0)-1.0# (0, 1)-0.64# (0, 2)-0.86437# (0, 3)-1.0# (0, 4)-0.37037# (0, 5)0.155011# (0, 6)0.283213# (0, 7)-0.461594# (0, 8)-1.0# (0, 9)-0.583969# (0, 10)-0.425532# (0, 11)1.0# (0, 12)-0.82064# 发现tuple中data[0]是csr_matrix类型

load_svmlight_file(f, n_features=None, ...) --> 返回 <class 'tuple'>

由于libsvm格式存储的数据不保证每一行的每一列都有数据(即有数据缺省),所以返回的tuple的data[0]是一个稀疏矩阵.

如果我们想要numpy库去操纵该矩阵,需要调用:

X = data[0].toarray()#或者X = data[0].todense()#或者X = data[0].A

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。