《Scala机器学习》一一1.2 去除分类字段的重复值

简介: 本节书摘来自华章出版社《Scala机器学习》一 书中的第1章,第1.1节,作者:[美] 亚历克斯·科兹洛夫(Alex Kozlov)著 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

1.2 去除分类字段的重复值
请准备好数据集和电脑。为了方便起见,本书已经提供了一些关于点击流(clickstream)数据的样本,它们是经过预处理过的,在https://github.com/alexvk/ml-in-scala.git上可以找到这些数据。chapter01/data/clickstream文件夹中包含了时间戳、会话编号(session ID),以及在调用时的一些额外事件信息(比如URL、类别信息等)。首先要对数据集的各个列做一些变换,以此得到数据的分布情况。
图1-1给出了在命令行中执行gzcat chapter01/data/clickstream/clickstream_sample.tsv.gz | less-U所得到的结果。列之间用tab键(^I)隔开。读者可能会注意到,许多值都空缺了,许多现实应用中的大数据集都是这样。数据的第一列是时间戳,文件包含了复杂的数据(比如数组(array)、结构(struct),以及映射(map)),这也是大数据集的另一个特征。
image

图1-1 使用Unix的less-U命令后,clickstream文件得到的输出
Unix提供了一些工具来分析数据。less、cut、sort和uniq大概是文本处理中最常用的命令行工具。awk、sed、perl和tr可以做更复杂的转换和提取操作。
幸运的是,Scala允许在REPL中透明地使用命令行工具来做转换:

在Scala REPL环境中,可使用scala.sys.process包来调用熟悉的Unix命令。从输出结果可以立即看到这个网上商店的顾客最关注男鞋和跑步鞋,而且大多数访问者使用的推荐码(referral code)为KW_0611081618。
读者可能会奇怪:究竟什么时候才开始使用复杂的Scala类型和算法。其实许多高度优化的工具在Scala之前就有了,而且在数据挖掘分析中会更高效。在最初的阶段,最大的瓶颈通常只是磁盘I/O和缓慢的交互性。随后才会去研究更多的迭代算法,它们通常都是内存密集型算法。值得注意的是:在现代多核计算机中,隐式地并行执行Unix的管道操作,就像在Spark中并行执行一样(后面的章节会介绍)。
对输入数据使用隐式的或显式的压缩,也可以减少I/O时间。 这对具有重复值和稀疏内容的(大多数)半结构化数据集更有效。也可在多核计算机上隐式地并行执行解压操作,这可以消除计算瓶颈,但在硬件上却不能并行执行压缩操作(比如,在SSD上就不能并行压缩文件)。推荐使用文件夹而不是文件作为数据集的规范(paradigm),这样插入操作就可简化为把数据文件放在文件夹中。这就是Hadoop(比如Hive和Impala)组织数据的原理。

相关文章
|
3月前
|
机器学习/深度学习
如何用贝叶斯方法来解决机器学习中的分类问题?
【10月更文挑战第5天】如何用贝叶斯方法来解决机器学习中的分类问题?
|
3月前
|
机器学习/深度学习 存储 自然语言处理
【机器学习】基于逻辑回归的分类预测
【机器学习】基于逻辑回归的分类预测
|
3月前
|
机器学习/深度学习 传感器 算法
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
机器学习入门(一):机器学习分类 | 监督学习 强化学习概念
|
3月前
|
机器学习/深度学习 算法 数据可视化
机器学习的核心功能:分类、回归、聚类与降维
机器学习领域的基本功能类型通常按照学习模式、预测目标和算法适用性来分类。这些类型包括监督学习、无监督学习、半监督学习和强化学习。
69 0
|
5月前
|
机器学习/深度学习 人工智能 算法
【人工智能】机器学习、分类问题和逻辑回归的基本概念、步骤、特点以及多分类问题的处理方法
机器学习是人工智能的一个核心分支,它专注于开发算法,使计算机系统能够自动地从数据中学习并改进其性能,而无需进行明确的编程。这些算法能够识别数据中的模式,并利用这些模式来做出预测或决策。机器学习的主要应用领域包括自然语言处理、计算机视觉、推荐系统、金融预测、医疗诊断等。
89 1
|
5月前
|
机器学习/深度学习 算法
【机器学习】简单解释贝叶斯公式和朴素贝叶斯分类?(面试回答)
简要解释了贝叶斯公式及其在朴素贝叶斯分类算法中的应用,包括算法的基本原理和步骤。
84 1
|
5月前
|
机器学习/深度学习
如何用贝叶斯方法来解决机器学习中的分类问题?
如何用贝叶斯方法来解决机器学习中的分类问题?
|
5月前
|
机器学习/深度学习 数据采集 自然语言处理
【NLP】讯飞英文学术论文分类挑战赛Top10开源多方案–4 机器学习LGB 方案
在讯飞英文学术论文分类挑战赛中使用LightGBM模型进行文本分类的方案,包括数据预处理、特征提取、模型训练及多折交叉验证等步骤,并提供了相关的代码实现。
60 0
|
7月前
|
机器学习/深度学习 算法
机器学习方法分类
【6月更文挑战第14天】机器学习方法分类。
130 2
|
8月前
|
机器学习/深度学习 数据采集 人工智能
使用Python和Scikit-learn实现机器学习分类任务
使用Python和Scikit-learn实现机器学习分类任务
189 1