聚类聚类是无监督学习中应用最广泛的算法。聚类会将数据集中的样本划分为若干个不同的子集,每个子集称为一个簇。 原型聚类原型聚类假设聚类结构能通过一组原型刻画。通常情况下,该类算法先对原型进行初始化,然后对原型进行迭代更新求解。 k均值算法(k-means)该算法的目的是最小化每个簇中每个样本到对应原型的距离。 但是直接求解的话会是一个NP难问题,较难求解,因此我们仍然采用迭代更新的贪心算法来求解可能的最近似解。值得注意的是,这样并不一定能求得最优解。 其算法大致思想如下: 初始化簇的数目K...
机器学习1-决策树算法
算法回忆总述首先决策树算法的一个核心思想是通过一些方法将数据递归的划分为一个树状结构。其算法流程大致如下: 读取数据 注意CSV是文本格式,读取时是r;Excel是二进制文件,读取时是rb 根据标准计算最优属性,一般选择香农熵,其流程如下: 递归每一个属性,计算该属性的总熵值,总熵值为每个值得熵得和 先统计该属性得所有不重复值的数据条数 根据公式:ent = (-item/count)*np.log2(item/count) 计算每个属性值的熵值 , ...
Node学习5-进程机制
服务端模型的变迁Web服务器的架构已经历了几次变迁。服务器处理客户端请求的并发量,就是每个里程碑的见证。 石器时代:同步最早的服务器,其执行模型是同步的,它的服务模式是一次只为一次请求服务,所有的请求都得按次序等待服务。这意味着除了当前的请求被处理外,其余请求都处于等待被处理的状态。其处理性能相当低下,假设每次响应服务耗时为N秒,则这类服务的QPS为1/N。 这种架构如今已基本被淘汰,只在一些无并发需要的应用中存在。 青铜时代:复制进程为了解决同步架构的并发问题,衍生出了复制多个...
VSCODE-插件开发1
createTextEditorDecorationType(options: DecorationRenderOptions]): TextEditorDecorationType:创建一个新的装饰器。 Parameter Description options: DecorationRenderOptions 装饰类型渲染的选项 Returns Description TextEditorDecorationType 一个新的装饰器实体
Node学习4-Buffer
BufferBuffer 对象用于表示固定长度的字节序列。 从V3.0开始,该对象就继承自Uint8Array(从V3.0版本加入的特性),且继承时带上了涵盖额外用例的方法。只要支持 Buffer 的地方,Node.js API 都可以接受普通的 Uint8Array 模块结构Buffer是一个典型的JavaScript与C++结合的模块,它将性能部分用C++实现,将非性能相关的部分用JavaScript实现。 之前说过,Buffer所占的内存不过是V8分配的,属于堆外内存。由于V8垃圾...
NodeJS学习3-内存控制
V8的内存分配在一般的后端开发语言中,在基本的内存使用上没有什么限制,然而在Node中通过JavaScript使用内存时就会发现只能使用部分内存(64位系统下约为1.4GB,32位系统下约为0.7GB),在这样的限制下,将会导致Node无法直接操作大内存对象。比如无法将一个2GB的文件读入内存中进行字符串分析处理,即使物理内存大于2GB,这样在单个Node进程的情况下,计算机的内存资源无法得到充足的使用。 造成这个问题的主要原因在于Node基于V8构建,所以在Node中使用的JavaScr...
NodeJS学习2-异步的原理和应用
内部原理理想的非阻塞异步I/O完美的异步I/O应该是应用程序发起非阻塞调用,无须通过遍历或者事件唤醒等方式轮询,可以直接处理下一个任务,只需要在I/O完成后通过回调将数据传递给应用程序即可。 ...
NodeJS学习1-模块机制
CommonJS规范commonJS制定了一套模块的规范,来解决当时JavaScript中没有完善的模块机制,但是现在ES Module已经比较成熟了,在前端工程化开发中大部分都是用的ES Module来进行模块的导入导出。 由于内容比较多,之前在JavaScript中的模块导入导出中已经介绍过基本用法。详细的内容可以看这里。 Node的模块实现Node中,模块总的分为两类: 核心模块:由Node提供的模块 文件模块:由用户编写的模块 这两类模块都会经过以下三个步骤: 路径分析 文件...
设计模式6-命令模式与组合模式
命令模式定义命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令。 主要解决在软件系统中,行为请求者与行为实现者通常是一种紧耦合的关系,但某些场合,比如需要对行为进行记录、撤销或重做、事务等处理时,这种无法抵御变化的紧耦合的设计就不太合适。 优缺点优点 通过引入中间件(抽象接口)降低系统的耦合度。 扩展性良好,增加或删除命令非常方便...