`

数据挖掘中 分类 ,属性变量 如何变 double OHE

阅读更多

数据挖掘中,基本所有算法需求数据都是    二维 double 

 

1  如果是 二变量    一个变 0   一个 变 1
2  其他的 以 index: dimentionvalue  来编码,  每个维度中,每种value用 用一个维度表示
 
 
//将train_cat_rdd中的(特征ID:特征)去重,并进行编号
    var oheMap = train_cat_rdd.flatMap(x => x).distinct().zipWithIndex().collectAsMap()
    //oheMap: scala.collection.Map[(Int, String),Long] = Map((7,608511e9) -> 31527, (7,b2d8fbed) -> 42207,
    //  (7,1d3e2fdb) -> 52791
    println("Number of features")
    println(oheMap.size)

    // parse vetor
    oheMap.take(10).foreach(println)

    val parsesize = oheMap.size +  8
//    45790
//    ((0,8907c166),32600)
//    ((6,7b177be1),28570)
//    ((7,ae5eeb59),23866)
//    ((7,2be70f8c),41143)
//    ((7,105627d8),14562)
//    ((7,060acc61),21043)
//    ((7,a3234c93),7884)
//    ((7,1d3e2fdb),34934)
//    ((7,b2d8fbed),17166)
//    ((7,608511e9),44647)


// 45790 size parse  add

    val doubleSizeIndex = Array(0, 1, 2, 3, 4, 5, 6, 7)
    val demeansionValue = Array(1.0, 1.0, 1.0, 1.0,1.0, 1.0, 1.0, 1.0, 1.0)

    //create OHE for train data
    val ohe_train_rdd = train_rdd.map{ case (key, cateorical_features, numerical_features) =>
      val cat_features_indexed = parseCatFeatures(cateorical_features)
      val cat_feature_ohe = new ArrayBuffer[Int]
      for (k <- cat_features_indexed) {
        if(oheMap contains k){
          cat_feature_ohe += (oheMap get (k)).get.toInt
        }else {
          cat_feature_ohe += 0
        }
      }
      val numerical_features_dbl  = numerical_features.map{
        x =>
          val x1 = if (x.toInt < 0) "0" else x
          x1.toDouble
      }


     val vs = Vectors.sparse(parsesize, doubleSizeIndex ++ cat_feature_ohe, numerical_features_dbl ++ demeansionValue) //建立稀疏向量

     // val vs = Vectors.sparse(parsesize, doubleSizeIndex , numerical_features_dbl ) //建立稀疏向量



    // var features =  numerical_features_dbl



     // LabeledPoint(key.split("::")(1).toInt,vs)

      LabeledPoint(key.split("::")(1).toInt,vs.toDense)

    }
    ohe_train_rdd.cache()
    ohe_train_rdd.take(10).foreach(println)
分享到:
评论

相关推荐

    as3数组特定属性相同去除

    以数组属性_id为判断,输出结果如下: 去相同ID前: id=55 name=11111 其他=ffdfdfd id=332 name=2222 其他=ffdfdfd id=422 name=3333 其他=ffdfdfd id=55 name=4444 其他=ffdfdfd id=332 name=5555 其他=ffdfdfd id...

    机器学习介绍+基础算法+数据处理+源码分享+案例简介

    ohe.py可能实现了one-hot编码,这是处理分类变量的一种方式,将每个类别转换为一个二进制特征,使得机器学习算法能更好地处理离散数据。 rdg.py可能包含了随机梯度下降(Random Gradient Descent)的实现,相较于...

    银河and中的暗原子和正电子Ann灭线过量

    最近提出,电荷稳定的电荷-2(O-)粒子在与O-氦(OHe)原子中的原始氦结合后可以存在并构成暗物质。 我们在这里详细研究了该模型为由INTEGRAL观测到的银河隆起解释正电子an灭线中伽马辐射过量的可能性提供的解释。 ...

    暗原子和超重核物体的双电荷重组分

    我们考虑复合暗物质的模型,假设通过OHe原子中的库仑力,电荷-2稳定的粒子与原始He核结合。 我们研究了物质中此类暗原子的捕获,并提出了存在稳定的富含O的超重核和O核岩的可能性,其中重O暗物质费米子被电磁力与...

    Python库 | Kaggler-0.6.4.tar.gz

    Kaggler库,版本0.6.4,是专为解决数据挖掘竞赛(如Kaggle竞赛)而设计的,它提供了丰富的功能,包括数据预处理、特征工程、模型选择和评估等,极大地简化了数据分析工作流程。 Kaggler库的核心特点在于其集成性和...

    Book-Data-Science-Projects-with-Python:用Python编写的《数据科学项目》一书的练习(Stephen Klosterman,2019)

    使用Python进行数据科学项目(Stephen Klosterman,2019) 使用Python的数据科学项目采用案例研究方法来模拟您在应用数据... 练习7-为分类功能实施OHE 2. Scikit-Learn和模型评估简介 练习8-Scikit-Learn中的线性回归

    新课标人教A数学同步导学条件概率选修PPT学习教案.pptx

    这样的例子不仅让抽象的概率理论变得生动,也让学生理解如何将理论应用到现实生活中。 深入探讨条件概率的性质,我们了解到它是在0和1之间的数值,这反映了概率的本质属性,即任何事件发生的概率都不会小于0也不会...

    edx-Scalable-Machine-Learning

    本实验将涵盖: 第1部分:使用一键编码(OHE)使分类数据特征化第2部分:构建OHE词典第3部分:解析点击率数据并生成OHE功能第4部分:点击率预测和对数损失评估:(ROC) 第5部分:通过特征哈希减少特征维:超参数...

    data-analysis:数据分析项目

    在这个项目中,我的目标是使用逻辑回归模型来预测SQL表中的Call_type_Group 。 该项目是在DataBricks上执行的,并使用了Apache Spark集群。 我首先必须清理和过滤数据,以便仅显示相关数据。 然后,我将SparkDF转换...

    [一些机器人方面的PDF].Robotic

    例如,OHE Hagenbuch AG 的 Hexapod 以及 Frasca International, Inc 的飞行模拟器 737 FNPT II。 - 搬运自动化:FANUC F-20iA等产品作为自动化搬运的例子。 文章中提到的OCR扫描技术识别错误或漏识别,可能会造成...

    三菱60S(M系列)报警说明书

    特别是MDS-C1系列中,电机端编码器只能使用串行编码器,OHE/OHA类型的编码器不能作为电机端编码器使用。 在程序报警方面,本说明书也有所涉及。程序报警部分会指导用户如何处理由于程序错误导致的故障。例如,在...

    论文研究 - 利福昔明能否改善埃及最小型肝性脑病肝硬化患者的EEG和VEP?

    已显示可逆转MHE的多种治疗方式包括乳果糖/乳糖醇,益生菌/合生元,左旋肉碱,但利福昔明已显示出对明显肝性脑病(OHE)患者更好的疗效和更好的耐受性的总体趋势。 目的:我们的目的是评估微量状态检查(MMSE),...

    三菱m60参数说明

    在伺服参数和主轴参数方面,MDS-C1系列中电机端编码器只能使用串行编码器,OHE/OHA类型的编码器不可用于电机端编码器。极端调整和更改参数可能会导致机床工作不稳定,因此建议操作者不要随意更改参数。 由于文档是...

    NLPworkshop:使用PyTorch的NLP-基础

    在本工作坊中,我们会使用One-Hot编码(OHE)、Term Frequency-Inverse Document Frequency(TF-IDF)和CountVectorizer这三种常见的特征表示方法。这些技术将原始文本转换为可被机器学习模型处理的数值向量。 One-...

    MELDAS-C6系列参数说明书

    在伺服参数方面,MDS-C1系列作为电机侧检测器,仅支持数字式编码器,而OHE/OHA类型的检测器则不能作为电机侧检测器使用。在进行参数调整时,需要特别小心,以避免因调整不当导致的系统不稳定。 主轴参数的配置也是...

    keras导入weights方式

    MNIST数据集是机器学习领域的一个经典问题,常用于训练和测试各种图像分类算法。以下是在Keras中加载和处理MNIST数据集的示例代码: ```python import struct import numpy as np import os import keras from ...

    华西口腔医学院--口腔预防医学-期末复习知识点总结.pdf

    华西口腔医学院的口腔预防医学课程中涵盖了预防口腔医学的多个重要知识点,这些知识点不仅对于专业学生的学习有重要意义,也对公众的口腔健康保健具有实践指导作用。以下是对文档中提到的各个知识点的详细介绍和解释...

    Frontline PCB Solutions推出PCB板计算机辅助制造系统.pdf

    - 东又悦企业股份有限公司在PCB制造用耗材方面拥有完整的生产线,产品包括OHE阳极磷铜、无磷铜、无氧铜、纯铜等。 - 公司在面对市场环境的变动中展现出审慎乐观的态度,随着市场环境的逐渐复苏,公司产品需求得到...

    lofo-importance:忽略一项功能

    LOFO(遗留一个特征)重要性通过选择准则,迭代选择模型中的每个特征迭代删除每个特征并评估模型的性能,从而根据选择的度量标准来计算一组特征的重要性根据所选指标进行选择。 LOFO首先评估包含所有输入特征的模型...

    PopExchange

    自述文件CLOUDINARY_CLOUD_...SK_TEST = sk_test_51IM1kFG0lYPbhDgQ9fJENNKfDCxGDgYiskjmS3Oz8Ohe5Fv9wkcvrbdSmIItVpgevuhuI6jtHzNYSpvkhKCUukIu00LgI7pAg8该自述文件通常会记录启动和运行应用程序所需的所有步骤。您可

Global site tag (gtag.js) - Google Analytics