特征选择--->卡方选择器
特征选择(Feature Selection)指的是在特征向量中选择出那些“优秀”的特征,组成新的、更“精简”的特征向量的过程。它在高维数据分析中十分常用,可以剔除掉“冗余”和“无关”的特征,提升学习器的性能。
特征选择方法和分类方法一样,也主要分为有监督(Supervised)和无监督(Unsupervised)两种,卡方选择则是统计学上常用的一种有监督特征选择方法,它通过对特征和真实标签之间进行卡方检验,来判断该特征和真实标签的关联程度,进而确定是否对其进行选择。
package Spark_MLlib import org.apache.spark.ml.feature.ChiSqSelector
import org.apache.spark.ml.linalg.Vectors
import org.apache.spark.sql.SparkSession object 特征选择_卡方选择器 {
val spark= SparkSession.builder().master("local").appName("卡方特征选择").getOrCreate()
import spark.implicits._
def main(args: Array[String]): Unit = {
val df=spark.createDataFrame(Seq(
(,Vectors.dense(,,,),),
(,Vectors.dense(,,,),),
(,Vectors.dense(,,,),),
(,Vectors.dense(,,,),), //这里第一个0变为1,选2个特征输出时会不同
(,Vectors.dense(,,,),) )).toDF("id","features","label")
df.show()
val selector=new ChiSqSelector().setNumTopFeatures().setFeaturesCol("features").setLabelCol("label").setOutputCol("selectedFeatures")//setNumTopFeatures(1):设置只选择和标签关联性最强的2个特征
val selector_model=selector.fit(df)
val result=selector_model.transform(df)
result.show(false) }
}
结果:
+---+------------------+-----+
| id| features|label|
+---+------------------+-----+
| 1|[0.0,0.0,30.0,1.0]| 1|
| 2|[0.0,1.0,20.0,0.0]| 0|
| 3|[1.0,0.0,15.0,2.0]| 0|
| 4|[0.0,1.0,28.0,0.0]| 1|
| 5|[1.0,0.0,27.0,0.0]| 0|
+---+------------------+-----+
+---+------------------+-----+----------------+
|id |features |label|selectedFeatures|
+---+------------------+-----+----------------+
|1 |[0.0,0.0,30.0,1.0]|1 |[0.0,30.0] |
|2 |[0.0,1.0,20.0,0.0]|0 |[0.0,20.0] |
|3 |[1.0,0.0,15.0,2.0]|0 |[1.0,15.0] |
|4 |[0.0,1.0,28.0,0.0]|1 |[0.0,28.0] |
|5 |[1.0,0.0,27.0,0.0]|0 |[1.0,27.0] |
+---+------------------+-----+----------------+
特征选择--->卡方选择器的更多相关文章
- spark机器学习从0到1特征选择-卡方选择器(十五)
一.公式 卡方检验的基本公式,也就是χ2的计算公式,即观察值和理论值之间的偏差 卡方检验公式 其中:A 为观察值,E为理论值,k为观察值的个数,最后一个式子实际上就是具体计算的方法了 n 为总 ...
- Spark MLlib编程API入门系列之特征选择之卡方特征选择(ChiSqSelector)
不多说,直接上干货! 特征选择里,常见的有:VectorSlicer(向量选择) RFormula(R模型公式) ChiSqSelector(卡方特征选择). ChiSqSelector用于使用卡方检 ...
- 互信息 & 卡方 - 文本挖掘
在做文本挖掘,特别是有监督的学习时,常常需要从文本中提取特征,提取出对学习有价值的分类,而不是把所有的词都用上,因此一些词对分类的作用不大,比如“的.是.在.了”等停用词.这里介绍两种常用的特征选择方 ...
- 数据分箱:等频分箱,等距分箱,卡方分箱,计算WOE、IV
转载:https://zhuanlan.zhihu.com/p/38440477 转载:https://blog.csdn.net/starzhou/article/details/78930490 ...
- 图像检索:RGBHistogram+欧几里得距离|卡方距离
RGBHistogram: 分别计算把彩色图像的三个通道R.G.B的一维直方图,然后把这三个通道的颜色直方图结合起来,就是颜色的描写叙述子RGBHistogram. 以下给出计算RGBHistogra ...
- t分布, 卡方x分布,F分布
T分布:温良宽厚 本文由“医学统计分析精粹”小编“Hiu”原创完成,文章采用知识共享Attribution-NonCommercial-NoDerivatives 4.0国际许可协议(http://c ...
- 卡方分布、卡方独立性检验和拟合性检验理论及其python实现
如果你在寻找卡方分布是什么?如何实现卡方检验?那么请看这篇博客,将以通俗易懂的语言,全面的阐述卡方.卡方检验及其python实现. 1. 卡方分布 1.1 简介 抽样分布有三大应用:T分布.卡方分布和 ...
- R-5 相关分析-卡方分析
本节内容: 1:相关分析 2:卡方分析 一.相关分析 相关系数: 皮尔逊相关系数:一般用来计算两个连续型变量的相关系数. 肯德尔相关系数:一个连续一个分类(最好是定序变量) 斯皮尔曼相关系数:2个变量 ...
- 方差分析、T检验、卡方分析如何区分?
差异研究的目的在于比较两组数据或多组数据之间的差异,通常包括以下几类分析方法,分别是方差分析.T检验和卡方检验. 三个方法的区别 其实核心的区别在于:数据类型不一样.如果是定类和定类,此时应该使用卡方 ...
随机推荐
- react native 从头开始
1.react-native run-android 报错SDK location not found. Define location with sdk.dir in the local.prope ...
- ORACLE索引介绍和使用
1.什么是索引 索引是建立在表的一列或多个列上的辅助对象,目的是加快访问表中的数据: Oracle存储索引的数据结构是B*树,位图索引也是如此,只不过是叶子节点不同B*数索引: 索引由根节点.分支节点 ...
- 每日命令:(10)cat
cat命令的用途是连接文件或标准输入并打印.这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用. 1.命令格式: cat [选项] [文件] ...
- 【nginx】记录nginx+php-fpm实现大文件下载排坑的过程
先上一段代码,支持大文件下载和断点续传,代码来源互联网. set_time_limit(0); // 省略取文件路径的过程,这里直接是文件完整路径 $filePath = get_save_path( ...
- Java 数组中寻找最大子数组
程序设计思想: 依次将数组划分开,先判断一个元素的单个数组大小,接下来两个,依次上升,最后将所得结果进行比较赋值,输出最大结果. 1 package ketangTest; //张生辉,康治家 201 ...
- 05 Python运算符
Python运算符: 此图来源于菜鸟教程,更详细参考 http://www.runoob.com/python3/python3-basic-operators.html 说明: 同一优先级的通常从左 ...
- [bzoj2431][HAOI2009][逆序对数列] (dp计数)
Description 对于一个数列{ai},如果有i<j且ai>aj,那么我们称ai与aj为一对逆序对数.若对于任意一个由1~n自然数组成的 数列,可以很容易求出有多少个逆序对数.那么逆 ...
- ORA-12541:TNS:无监听程序
安装oracle以后,sql plus可以正常登陆,pl/sql登陆时报错ORA-12541:TNS:无监听程序,解决方案如下: http://blog.csdn.net/hao134838/arti ...
- rest frame work纪念版代码
models.py from django.db import models from pygments.lexers import get_all_lexers from pygments.styl ...
- 最小生成树 B - Networking
You are assigned to design network connections between certain points in a wide area. You are given ...