libsvm 数据格式简介

libsvm文件数据格式:

xml 复制代码
<label> <index1>:<value1> <index2>:<value2> ...

其中,

<label> 是训练数据集的目标值,对于分类,它是标识某类的整数(支持多个类);对于回归,是任意实数。

<index> 是以1开始的整数,可以是不连续的;

<value>为实数,也就是我们常说的自变量。

即:lable 数据集的标签,index为特征,value为特征值。

例如:

复制代码
+1  1:0.708333  2:1   3:1           4:-0.320755
-1  1:0.583333  2:-1  3:0.333333    4:-0.603774 
+1  1:0.166667  2:1   3:-0.333333   4:-0.433962 
-1  1:0.458333  2:1   3:1           4:-0.358491 

需要注意的是,如果特征值value为0,则此特征可以省略,index可以不连续。如:

复制代码
-15 1:0.708 3:-0.3333

表明第2个特征值为0,从编程的角度来说,这样做可以减少内存的使用,并提高做矩阵内积时的运算速度。

需要注意以下几点:

  • 标签列label可以重复;
  • 索引index要从1开始;
  • 数据的长度是以最大列数为准的,因为特征值value为0,则此特征index可以省略。因此最好是要保持数据列数一致;

Spark 中自带的 data/mllib/sample_libsvm_data.txt 介绍:

总共100个实例,label的取值为:0和1。有692个特征。

scala 复制代码
scala> val data = spark.read.format("libsvm").load("data/mllib/sample_libsvm_data.txt)
data: org.apache.spark.sql.DataFrame = [label: double, features: vector]

scala> data.count
res1: Long = 100

scala> data.show()
+-----+--------------------+
|label|            features|
+-----+--------------------+
|  0.0|(692,[127,128,129...|
|  1.0|(692,[158,159,160...|
|  1.0|(692,[124,125,126...|
|  1.0|(692,[152,153,154...|
|  1.0|(692,[151,152,153...|
|  0.0|(692,[129,130,131...|
|  1.0|(692,[158,159,160...|
|  1.0|(692,[99,100,101,...|
|  0.0|(692,[154,155,156...|
|  0.0|(692,[127,128,129...|
|  1.0|(692,[154,155,156...|
|  0.0|(692,[153,154,155...|
|  0.0|(692,[151,152,153...|
|  1.0|(692,[129,130,131...|
|  0.0|(692,[154,155,156...|
|  1.0|(692,[150,151,152...|
|  0.0|(692,[124,125,126...|
|  0.0|(692,[152,153,154...|
|  1.0|(692,[97,98,99,12...|
|  1.0|(692,[124,125,126...|
+-----+--------------------+
only showing top 20 rows
相关推荐
算法_小学生2 小时前
支持向量机(SVM)完整解析:原理 + 推导 + 核方法 + 实战
算法·机器学习·支持向量机
cwn_2 小时前
自然语言处理NLP (1)
人工智能·深度学习·机器学习·自然语言处理
算法_小学生3 小时前
逻辑回归(Logistic Regression)详解:从原理到实战一站式掌握
算法·机器学习·逻辑回归
行然梦实6 小时前
粒子群优化算法(Particle Swarm Optimization, PSO) 求解二维 Rastrigin 函数最小值问题
算法·机器学习·数学建模
愚戏师7 小时前
机器学习(重学版)基础篇(概念与评估)
人工智能·机器学习
向左转, 向右走ˉ7 小时前
随机森林算法原理及优缺点
算法·随机森林·机器学习
go54631584657 小时前
基于YOLOP与GAN的图像修复与防御系统设计与实现
人工智能·深度学习·神经网络·机器学习·生成对抗网络·矩阵
SparkX开源AI知识库8 小时前
Langchain4j怎么结合DeepSeek打造本地知识库
机器学习
SHIPKING3938 小时前
【机器学习&深度学习】DeepSpeed框架:高效分布式训练的开源利器
人工智能·深度学习·机器学习
竹子_238 小时前
《零基础入门AI:传统机器学习入门(从理论到Scikit-Learn实践)》
人工智能·机器学习·scikit-learn