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
相关推荐
数据科学作家20 小时前
学数据分析必囤!数据分析必看!清华社9本书覆盖Stata/SPSS/Python全阶段学习路径
人工智能·python·机器学习·数据分析·统计·stata·spss
java1234_小锋1 天前
Scikit-learn Python机器学习 - 特征预处理 - 标准化 (Standardization):StandardScaler
python·机器学习·scikit-learn
xz2024102****1 天前
吴恩达机器学习合集
人工智能·机器学习
anneCoder1 天前
AI大模型应用研发工程师面试知识准备目录
人工智能·深度学习·机器学习
空白到白1 天前
机器学习-决策树
人工智能·决策树·机器学习
纪东东1 天前
机器学习——使用K近邻算法实现一个识别手写数字系统
人工智能·机器学习·近邻算法
THMAIL1 天前
机器学习从入门到精通 - 数据预处理实战秘籍:清洗、转换与特征工程入门
人工智能·python·算法·机器学习·数据挖掘·逻辑回归
Moutai码农1 天前
1.5、机器学习-回归算法
人工智能·机器学习·回归
非门由也1 天前
《sklearn机器学习——绘制分数以评估模型》验证曲线、学习曲线
人工智能·机器学习·sklearn
THMAIL1 天前
深度学习从入门到精通 - AutoML与神经网络搜索(NAS):自动化模型设计未来
人工智能·python·深度学习·神经网络·算法·机器学习·逻辑回归