新年第一篇, 先做个机器学习实践总结—几种常见场景下的特征提取方法: 机器学习中最重要的一环就是特征工程,特征工程的好坏直接影响模型的效果,如果做得不好大概率会出现“garbage in,garbage out ”的情况; 特征的提取主要指特征信息的数值化,向量化的过程,下面仅仅根据个人实践经验和理解简要总结常见应用场景下的特征提...

1. 问题分析 发布一个子系统到线上,根据测试流程中收集的质量数据 预测其可能的 线上问题数; 2. 模型设计 一般影响子系统质量的因素可能有哪些? 能获取到多少纬度的数据,取决于各厂的质量大数据平台的数据挖掘能力, 这里,由于本人无实际数据平台,举个样例,纬度不一定齐全 构造的训练数据: https://github.com/margaretmm/AI/blob/mas...

测试原理 比较适合做回归测试,基于baseline image比对的UI测试   测试工具数据流图 AI能力体现在哪里? Eyes Sever中提供图片screenshot比对功能, 使用了AI 算法, 只返回2个图片的差异点,包括图像尺寸和位置差异; 用户不用做 图像处理和模型训练,使用很方便 Eggplant AI 的AI智能也是用在图像识别上...

智能算法系统如何评估? 算法模型的评估: 主要衡量模型对未知新数据的预测能力,即泛化能,衡量泛化能力的指标(也叫模型的性能度量): 1.1   准确率(accuracy) :对于给定的数据集,正确分类的样本数占总样本数的比率。 1.2   精确率(precision)==查准率:对于给定的数据集,预测为正例的样本中真正例样本的比率。 1.3 召回率( rec...

1. 问题分析 基于房屋的各种纬度特征,预测房屋价格 2.原始数据扒取 从http://hz.ganji.com/fang5 网站上扒取 杭州市房屋特征数据: 'Address':div.find('span',class_=re.compile('area')).text.strip().replace(' ','').replace('\n',''), 'Rooms': div.find('d......

spark简单实践—日志挖掘& SVM算法
笔记 / 2018年12月7日

一.  简单实践spark 日志挖掘: 1.  日志是通过flume读取并且保存在ES中的 , 所以需要从ES中读取,需要引入 elasticsearch_spark 的Jar包(Jar版本要和ES版本一致) 2. 日志所在索引内容简单分析: 统计分析 带有“RED”字符串的日志的产生日期和 IP地址个数 的Map关系   scala代码: import org.apache.spark......

spark 理解–网络通信系统
笔记 / 2018年12月4日

spark中网络通信无处不在,如下图standalone模式下和核心组件通信流程 例如: driver和master的通信,比如driver会向master发送RegisterApplication消息 master和worker的通信,比如worker会向master上报worker上运行Executor信息 executor和driver的的通信,executor运行在worker上,spar......

从spark 监控UI页面理解Spark计算框架
笔记 / 2018年12月3日

Spark计算框架的元素之间关系: Spark UI监控界面如何观察各元素的状态? Spark的概念非常多, 看懂监控页面才能方便定位性能问题, 下面主要是著名样例 workcount的执行监控结果样例: 1 代表job页面 在里面可以看到当前应用分析出来的所有Job,以及所有的excutors中action的执行时间。 第一部分event timeline展开后,可以看到executor创建的时...

spark context理解—TaskScheduler
笔记 / 2018年12月2日

  TaskScheduler作用是为创建它的SparkContext调度任务,即从DAGScheduler接受不同Stage的任务,并且向集群提交这些任务,并对未执行、特别慢的任务启动备份任务。主要由2部分组成: taskScheduler 任务调度:调度模式有FAIR和FIFO两种, 对应2种模式的队列存放taskset; SchedulerBackend: 是TaskSchedul......

spark 任务提交到集群执行的流程
笔记 / 2018年12月1日

Spark任务怎么提交到worker集群执行? Spark 应用程序从编写到提交、执行、输出的整个过程如下图所示,图中描述的步骤如下: 1)         用户使用SparkContext提供的API(常用的有textFile、sequenceFile、runJob、stop等)编写Driver application程序。程序先离线被打成Jar包存储起来等待被加载执行,存储的位置有3种: fi......

spark 简单实践1
大数据 , 笔记 / 2018年11月29日

Spark核心概念之间的关系: Spark Driver用于提交用户应用程序,实际可以看作Spark的客户端; Spark Driver的初始化始终围绕着SparkContext的初始化。SparkContext可以算得上是所有Spark应用程序的发动机引擎; SparkContext初始化完毕,才能向Spark集群提交任务执行。   Spark context 处理原理如下图: &nb......

使用zookeeper实现分布式锁
笔记 / 2018年11月28日

最近定位一个问题, 发现读取的ZK中存储的数据 不符合预期, 后来发现该Znode节点有2个 服务会有写入操作,  所以造成了数据重入; 因此需要一个分布式环境下的同步机制, 方案有很多, 最终选择使用Zookeeper实现 分布式锁的功能 ; 原理是利用ZK的顺序节点+watcher机制实现: 在zookeeper指定节点下创建临时顺序节点node_lock_rsX 作为 对资源X访问...

Elasticsearch日志监控–自定义flume-elasticsearch-sink
大数据 , 性能 / 2018年11月27日

为了方便监控 ES 的慢查询日志, 采用方案:flume+elasticsearch+kibana方式, 但是我们ES版本是6.*, 而Flume官方版本只兼容ES1.7… 所以需要自定义flume 对接ES的 Sink代码   Flume 原理&架构 flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集......

Java多线程–阻塞队列
笔记 / 2018年11月20日

如何实现一个有并发多任务访问的阻塞队列? 使用synchronized ,object.wait(),object.notifyall() 1、当调用put()方法时,如果此时容器的长度等于限定的最大长度,那么该方法需要阻塞直到队列可以有空间容纳下添加的元素 2、当调用take()方法时,如果此时容器的长度等于最小长度0,那么该方法需要阻塞直到队列中有了元素能够取出 3、put() 和 t...

java多线程–runable & thread
笔记 / 2018年11月19日

Java多线程定义方式可以通过继承Thead实现, 也可以通过实现Runable接口实现,它们之间关系如下图:   Thead类实际上是Run able类的实现类,所以最后不管是使用哪种方式,最终都是通过Thread类从OS申请资源分配启动线程; 下面的3段代码中,前2个效果等价: class MyThread extends Thread { private int i = 0; @O......