0%

机器学习算法学习思路

机器学习的算法相对都比较抽象,需要一定的数学功底,这里简单的列一下机器学习算法学习思路,这个应该按照什么个流程去学习收获最快。

流程: 目的→输入输出→思想→流程→代码→原理→数学依据。

大白话版:干啥的→干了啥→怎么干→为什么可以这么干。

大致可以按照上述流程去执行。

首先了解这个算法的目的,解决他是干啥的这个问题,再去了解它的输入输出,这其实是解决了它干了啥这个问题。到这里算是解决了这个算法怎么用的问题,做到了能用

了解完它的输入输出之后可以去了解这个算法的思想执行过程代码。这部分可以总结成怎么干。到这部分其实算是对算法有了一个具体认知。知道数据集和各个参数具体对结果造成了那些影响。算是做到会用

之后可以尝试了解算法的原理,看懂数学公式算是了解原理,理解推倒过程算是了解数据依据。这一大步是在解决为什么可以这么干的问题。这一步走完算是掌握

K-Means

简介

K-Means算法是无监督聚类算法,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。

输入输出

K-Means是根据样本之间距离的大小来判断是否属于同一个簇的,所以样本必须能够计算距离,即必须包含坐标信息。将样本集划分为K个簇,即参数为K。

输入依赖: 包含坐标信息的样本集、要划分为K个簇的K值输出:给样本集标注每个样本分别属于哪一个K簇

思想

K-Means算法的思想很简单,对于给定的样本集,按照样本之间的距离大小,将样本集划分为K个簇。让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。

阅读全文 »

从URL到页面渲染

每一个搞web开发都需要了解的知识,长期更新不断完善

从URL到网络请求

  1. 解析URL解析URL的协议名,域名,端口号,路径,查询参数(?),哈希值(# )等。

  2. DNS解析如果有相应的浏览器缓存或本地缓存,则直接使用缓存,不进行DNS解析。如果没有相应的DNS缓存,则访问DNS服务器,进行DNS解析,查询出域名对应的IP地址。

  3. 建立TCP/IP连接:通过三次握手建立与服务器的连接(长连接或短连接),在此之后发送具体的请求到服务器,等待服务器的响应。浏览器根据请求作出应答,返回数据包。最后当关闭连接时,双方进行通过四次挥手断开连接。

页面渲染

浏览器渲染流程

浏览器的主要功能就是向服务端发送请求,下载解析资源显示在浏览器上。将网页内容展示到浏览器上的过程,这其实就是渲染引擎完成的。渲染引擎有很多种,这里以 webkit 为例。

WebKit 渲染引擎的主流程

从上面这个图上,我们可以看到,浏览器渲染流程如下:

  1. 解析 HTML Source,生成 DOM 树。
  2. 解析 CSS,生成 CSSOM 树。
  3. 将 DOM 树和 CSSOM 树结合,去除不可见元素,生成渲染树( Render Tree )。
  4. Layout (布局):根据生成的渲染树,进行布局( Layout ),得到节点的几何信息(宽度、高度和位置等)。
  5. Painting (重绘):根据渲染树以及回流得到的几何信息,将 Render Tree 的每个像素渲染到屏幕上。
阅读全文 »

Rsync命令参数详解

在对rsync服务器配置结束以后,下一步就需要在客户端发出rsync命令来实现将服务器端的文件备份到客户端来。rsync是一个功能非常强大的工具,其命令也有很多功能特色选项,我们下面就对它的选项一一进行分析说明。

Rsync的命令格式可以为以下六种:

阅读全文 »

背景

随着可视化需求的增多,以及可视化行业商业化的发展。从前小作坊式的纯手工生产不能再满足大量的业务需求,这时一些业界优秀的企业纷纷开始了对可视化页面的工业化生产。本文粗略的介绍一些可视化前端的工业化体系。

阅读全文 »

矩阵树(Treemap)

矩阵树,是层级布局(Hierarchy)的一种

该模块依赖一个层级布局(Hierarchy)结果,和一个画布区大小(size)。输出一个矩阵树数据(Treemap),矩阵树数据(Treemap)本质上是给层级布局(Hierarchy)写入了两个坐标,这两个坐标构成的区域即为该分区的可视化信息。详情见[基本数据](# 基本数据)。

阅读全文 »

分区(Partition)

分区图,是层级布局(Hierarchy)的一种

该模块依赖一个层级布局(Hierarchy)结果,和一个画布区大小(size)。输出一个分区数据(Partition),分区数据(Partition)本质上是给层级布局(Hierarchy)写入了两个坐标,这两个坐标构成的区域即为该分区的可视化信息。详情见[基本数据](# 基本数据)。

阅读全文 »

堆叠图(Stack)

该模块依赖数据项(keys)其提供了原始数据数据(data)中所需要堆积的数据项的条目。最终返回堆积数据(stackData)。堆积数据包含原始数据数据(data)中每一项的所占的起始值和结束值。详情见[基本数据](# 基本数据)。

阅读全文 »

直方图(histogram)

直方图(Histogram),又称质量分布图,是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。 一般用横轴表示数据类型,纵轴表示分布情况。

直方图是数值数据分布的精确图形表示。 这是一个连续变量(定量变量)的概率分布的估计,并且被卡尔·皮尔逊(Karl Pearson)首先引入。它是一种条形图。 为了构建直方图,第一步是将值的范围分段,即将整个值的范围分成一系列间隔,然后计算每个间隔中有多少值。 这些值通常被指定为连续的,不重叠的变量间隔。 间隔必须相邻,并且通常是(但不是必须的)相等的大小。

直方图也可以被归一化以显示“相对”频率。 然后,它显示了属于几个类别中的每个案例的比例,其高度等于1。

该模块依赖一个区间(domain)以及阈值(threshold),统计数据(data)的分布情况,输出一个分箱(bins)每个划分了箱子的范围以及包含的值,区间限定了值的范围,通常为数据(data)值的范围,阈值(threshold)规定了每个箱子的范围。详情见[基本数据](# 基本数据)。

阅读全文 »

分治法(Divide and Conquer)

分治法本质上是把一个复杂的问题分解成很多规模较小的子问题,然后解决这些子问题,所有子问题解决时,大问题便已经解决。核心是分解成的子问题是相同种类的子问题,主要操作是将大问题分解成很多子问题、解决这些问题,解决的子问题合并从而解决整个大问题

阅读全文 »