zoukankan      html  css  js  c++  java
  • 机器学习概念之特征选择(Feature selection)之VectorSlicer算法介绍

      不多说,直接上干货!

    VectorSlicer

    算法介绍:

            VectorSlicer是一个转换器,输入特征向量,输出原始特征向量子集。VectorSlicer接收带有特定索引的向量列,通过对这些索引的值进行筛选得到新的向量集。

    可接受如下两种索引:

      1、整数索引,setIndices()。

      2、字符串索引代表向量中特征的名字,此类要求向量列有AttributeGroup,因为该工具根据Attribute来匹配名字字段。

      指定整数或者字符串类型都是可以的。

      另外,同时使用整数索引和字符串名字也是可以的。不允许使用重复的特征,所以所选的索引或者名字必须是没有独一的。

      注意如果使用名字特征,当遇到空值的时候将会报错。

      输出将会首先按照所选的数字索引排序(按输入顺序),其次按名字排序(按输入顺序)。

     

     

     

    示例:
      假设我们有一个DataFrame含有userFeatures列:

    userFeatures

    ------------------

     [0.0, 10.0, 0.5]

      userFeatures是一个向量列包含3个用户特征。假设userFeatures的第一列全为0,我们希望删除它并且只选择后两项。我们可以通过索引setIndices(1,2)来选择后两项并产生一个新的features列:

    userFeatures     | features

    ------------------|-----------------------------

     [0.0, 10.0, 0.5] | [10.0, 0.5]

     

     

      假设我们还有如同["f1","f2", "f3"]的属性,那可以通过名字setNames("f2","f3")的形式来选择:

    userFeatures     | features

    ------------------|-----------------------------

     [0.0, 10.0, 0.5] | [10.0, 0.5]

     ["f1", "f2","f3"] | ["f2", "f3"]

     

     

     

      具体编程见

    Spark MLlib编程API入门系列之特征选择之向量选择(VectorSlicer)

  • 相关阅读:
    RTP 控制协议
    非关系型数据库
    关系型数据库
    处理海量数据
    处理大并发
    C++ 模板偏特化-来自STL的思考
    C++详解new/delete
    二分算法来相会
    计算机网络知识点总结
    C++字符串类型转换
  • 原文地址:https://www.cnblogs.com/zlslch/p/7396494.html
Copyright © 2011-2022 走看看