随笔分类 - Spark ML
摘要:Spark中的分类算法中总有分类阈值这个参数。 分类阈值用来调整预测的概率大小,算法会计算出每条预测数据属于哪个类别的概率p,将该条数据预测为p/t的最大值下表的类别(下标从0开始)。 类别标签有几个值,也就是几个类别,阈值需要有几个值。如果是二分类,则分类阈值就有两个值,如果是三分类,则分类阈值就
阅读全文
摘要:用于基于某个标识符将字符串/列拆分/断开为多个,并返回列表: df_b = spark.createDataFrame([('1','ABC-07-DEF')],[ "ID","col1"]) df_b = df_b.withColumn('post_split', F.split(F.col('c
阅读全文
摘要:LSH:将向量进行哈希分桶,使得原语义上相似的文本大概率被哈希到同一个桶中,同个桶内的文本可以认为是大概率是相似的。 LSH:局部敏感哈希算法,是一种针对海量高维数据的快速最近邻查找算法,主要有如下用法: 全基因组的相关研究:生物学家经常使用 LSH 在基因组数据库中鉴定相似的基因表达。 大规模的图
阅读全文
摘要:特征选择(Feature Selection)指的是在特征向量中选择出那些“优秀”的特征,组成新的、更“精简”的特征向量的过程。它在高维数据分析中十分常用,可以剔除掉“冗余”和“无关”的特征,提升学习器的性能。 一、VectorSlicer VectorSlicer 是一个转换器,它接受一个特征向量
阅读全文
摘要:一、VectorAssembler VectorAssembler 是一个转换器,它将给定的列列表组合成单个向量列。 它对于将原始特征和不同特征转换器生成的特征组合成单个特征向量很有用,以便训练 ML 模型,如逻辑回归和决策树。 VectorAssembler 接受以下输入列类型:所有数字类型、布尔
阅读全文
摘要:一、VectorIndexer VectorIndexer 帮助索引向量数据集中的分类特征。它既可以自动决定哪些特征是分类的,也可以将原始值转换为类别索引。具体来说,它执行以下操作: 获取 Vector 类型的输入列和参数 maxCategories; 根据不同值的数量决定哪些特征应该是分类的,其中
阅读全文
摘要:一、为什么要用独热编码? 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值。 离散特征的编码分为两种情况: 1、离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one-hot编码 2、离散特征的取值有大小的意义,比如size:[X,XL,XXL],那么就使
阅读全文
摘要:一、Tokenizer和RegexTokenizer 标记化是获取文本(例如句子)并将其分解为单个术语(通常是单词)的过程。 一个简单的 Tokenizer 类提供了这个功能。 下面的示例显示了如何将句子拆分为单词序列。 RegexTokenizer 允许基于正则表达式 (regex) 匹配的更高级
阅读全文
摘要:一、TF-IDF (HashingTF and IDF) “词频-逆向文件频率”(TF-IDF)是一种在文本挖掘中广泛使用的特征向量化方法,它可以体现一个文档中词语在语料库中的重要程度。在Spark ML库中,TF-IDF被分成两部分:TF (+hashing) 和 IDF。 TF: Hashing
阅读全文
摘要:一、Anaconda介绍 Anaconda是一个基于Python的平台,管理主要的数据科学包,包括panda、scikit-learn、SciPy、NumPy和谷歌的机器学习平台TensorFlow。它与conda(类似于pip的安装工具)、Anaconda导航器(用于GUI体验)和spyder(用
阅读全文