《Scala机器学习》一一1.3 数值字段概述

1.3 数值字段概述
虽然数据集的大多数列可能是类别(categorical)类型或复杂类型,但这里还是要介绍一下数值数据。通常数值数据会有五种汇总方式,即中位值、均值、四分位数、最小值和最大值。Spark执行中位数和四分位数会特别简单,因此在介绍Spark的DataFrame时再来介绍这两种汇总方式。下面是采用Scala中相应的运算符来计算均值、最小值和最大值:

在多个字段上grep
有时需要知道怎样从多个字段上搜寻特定的值,最常见的是IP/MAC地址、日期和格式化的信息等。比如,若要得到一个文件或文档中的所有IP地址,就可将之前例子中的cut命令替换为grep -o -E [1-9][0-9]{0,2}(?:\.[1-9][0-9]{0,2}){3}来得到。这里的-o选项表明grep仅获取匹配部分。更精确的IP地址的正则表达式为grep –o –E (?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3} (?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?),但这样会慢50%,第一个正则表达式在大多数实际情形中都有效。这里不介绍如何在本书提供的样例文件上执行这条命令。

时间: 2024-08-22 23:44:52

《Scala机器学习》一一1.3 数值字段概述的相关文章

《Scala机器学习》一一导读

前 言 这是一本关于机器学习的书,它以Scala为重点,介绍了函数式编程方法以及如何在Spark上处理大数据.九个月前,当我受邀写作本书时,我的第一反应是:Scala.大数据.机器学习,每一个主题我都曾彻底调研过,也参加了很多的讨论,结合任何两个话题来写都具有挑战性,更不用说在一本书中结合这三个主题.这个挑战激发了我的兴趣,于是就有了这本书.并不是每一章的内容都像我所希望的那样圆满,但技术每天都在快速发展.我有一份具体的工作,写作只是表达我想法的一种方式. 下面先介绍机器学习.机器学习经历了翻天

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

1.2 去除分类字段的重复值 请准备好数据集和电脑.为了方便起见,本书已经提供了一些关于点击流(clickstream)数据的样本,它们是经过预处理过的,在https://github.com/alexvk/ml-in-scala.git上可以找到这些数据.chapter01/data/clickstream文件夹中包含了时间戳.会话编号(session ID),以及在调用时的一些额外事件信息(比如URL.类别信息等).首先要对数据集的各个列做一些变换,以此得到数据的分布情况. 图1-1给出了在

《Scala机器学习》一一3.7 总结

3.7 总结 本章概述了Spark/Hadoop以及它们与Scala和函数式编程的关系.重点介绍了一个经典的单词计数的例子,它是用Scala和Spark来实现的,并以单词计数和流为例介绍了Spark生态系统的高级组件.通过本章的学习,读者已经具备有了用Scala/Spark实现经典的机器学习算法的知识.下一章将开始介绍监督学习和无监督学习,这是对基于结构数据的学习算法的传统划分.

《Scala机器学习》一一1.5 使用Scala和Spark的Notebook工作

1.5 使用Scala和Spark的Notebook工作通常,这五种数字汇总方式不足以对数据形成初步认识.描述性统计(descriptive statistics)的术语非常通用,并且可以采用非常复杂的方法来描述数据.分位数和帕雷托图(Pareto chart)都是描述性统计的例子,当分析一个以上的属性时,相关性也是.在大多数情况下都能查阅到这些数据汇总的方法,但通过具体的计算来理解这些方法也很重要.Scala或者Spark Notebook(https://github.com/Bridgew

《Scala机器学习》一一3.3 应用

3.3 应用 下面会介绍Spark/Scala中的一些实际示例和库,具体会从一个非常经典的单词计数问题开始.3.3.1 单词计数 大多数现代机器学习算法需要多次传递数据.如果数据能存放在单台机器的内存中,则该数据会容易获得,并且不会呈现性能瓶颈.如果数据太大,单台机器的内存容纳不下,则可保存在磁盘(或数据库)上,这样虽然可得到更大的存储空间,但存取速度大约会降为原来的1/100.另外还有一种方式就是分割数据集,将其存储在网络中的多台机器上,并通过网络来传输结果.虽然对这种方式仍有争议,但分析表明

《Scala机器学习》一一2.5 数据驱动系统的基本组件

2.5 数据驱动系统的基本组件 简单地说,一个数据驱动架构包含如下的组件(或者可精简为以下这些组件): 数据收集:需要从系统和设备上收集数据.大多数的系统有日志,或者至少可选择将日志写入本地文件系统.一些系统可以通过网络来传输信息,比如syslog.但若没有审计信息,缺少持久层意味着有可能丢失数据. 数据转换层:也被称为提取.变换和加载(ETL).现在数据转换层也可以进行实时处理,即通过最近的数据来计算汇总信息.数据转换层也用来重新格式化数据和索引数据,以便能被UI组件有效地访问. 数据分析和机

《Scala机器学习》一一1.4 基本抽样、分层抽样和一致抽样

1.4 基本抽样.分层抽样和一致抽样 相当多的数据分析人员蔑视采样.通常要想处理整个数据集,只有改进模型.实际上,在这两者之间进行权衡会很复杂.首先,可以在抽样的数据集上建立更复杂的模型,特别是模型的时间复杂度是非线性(比如在大多数情况下至少是N* log(N))时更是如此.用更快的周期构建模型可让用户能更快地迭代模型,使其按最佳方式收敛.在很多情况下,若在整个数据集上建立模型,则在改进预测精度时可能会增加操作时间. 若一次只关注一个子问题,则可更好地理解整个问题域,因此在一些具体情形下可将滤波

《Scala机器学习》一一3.4 机器学习库

3.4 机器学习库 Spark是基于内存的存储系统,它本质上能提高节点内和节点之间的数据访问速度.这似乎与ML有一种自然契合,因为许多算法需要对数据进行多次传递或重新分区.MLlib是一个开源库,但仍有一些私人公司还在不断按自己的方式来实现MLlib中的算法. 在第5章会看到大多数标准机器学习算法可以表示为优化问题.例如,经典线性回归会最小化回归直线与实际y值之间的距离平方和: 其中,是由下面的线性表达式所得到的预测值: A通常称为斜率,B通常称为截距.线性优化问题更一般化的公式可以写成最小化加

《Scala机器学习》一一1.7 总结

1.7 总结本章试图为后面更复杂的数据科学建立一个通用平台.不要认为这里介绍了一套完整的探索性技术,因为探索性技术可扩展到非常复杂的模式上.但是,本章已经涉及了简单的汇总.抽样.文件操作(如读和写),并使用notebook和Spark DataFrame等工具来工作,Spark的DataFrame也为使用Spark/Scala的数据分析师引入了他们所熟悉的SQL结构.下一章开始介绍数据管道,可将其看作基于数据驱动企业的一部分,并从商业角度给出数据发现的过程:做数据分析试图要完成的最终目标是什么.