machine learning 笔记(2)
机器学习 Machine Learning 笔记(2)一、多特征的线性回归(多元线性回归)针对房价场景,则假设算法为h_\theta(x) = \theta_0x_0 + \theta_1x_1 + \theta_2x_2 + \theta_3x_3 + .... + \theta_nx_n假设有n个特征,x0 = 1,则训练数据X跟特征A可以用矩阵表示为X = \begin{bmatrix} x_0 \\ x_1 \\ x_2 \\ x_3 \\ ... \\ x_n \end{bmatrix}, A = \begin{bmatrix} \theta_0 \\ \theta_1 \\ \theta_2 \\ \theta_3 \\ ... \\ \theta_n \end{bmatrix}则对应的算法为矩阵A的转置 乘以 向量 Xh_\theta(x) = A^T*X1.1 代价函数J(\theta_0, \theta_1, ...., \theta_n) = \frac{1}{2m} \ ...
machine learning 笔记(1)
机器学习 Machine Learning 笔记(1)一、什么是机器学习1.1 定义两种定义方式:亚瑟·塞缪尔,将机器学习定义为赋予计算机学习能力而无需明确学习的研究领域。Tom,将机器学习定义为一个计算机程序从经验E中学习某些类型的任务T,性能衡量P,如果它在任务T中的表现(用P衡量)随着经验E而提高。常用的学习算法类型:监督学习、无监督学习1.2 监督学习 Supervised Learning指我们给算法一个数据集,其中给出了 “正确答案”。监督学习问题分为“回归”和“分类”问题。在回归问题中,我们试图预测一个连续输出的结果,这意味着我们试图将输入变量映射到某个连续函数。在一个分类问题中,我们试图在一个离散输出中预测结果。换句话说,我们试图将输入变量映射到离散的类别中。1.3 无监督学习 Unsupervised Learning无监督学习允许我们在几乎不知道或完全不知道结果的情况下处理问题。我们可以从我们不一定知道变量影响的数据中推导出结构。在无监督学习中,没有基于预测结果的反馈。二、学习算法以房价场景为例子,x :房子面积,y:房子价格,i:代表第几个样本,m:总样本数2.1 ...
工作中的git
工作中的git一、背景工作中天天都需要使用git,各种idea也都集成了可视化的git操作界面,个人在工作中一直不习惯使用git可视化,坚持使用git bash,习惯使用各种命令进行操作。本文主要是记录自己日常使用git的习惯,以及处理不同场景的方式,目前暂未出现过任何问题,如果对git使用不熟悉,可以进行参考。二、工作流程2.1 分支分类master:主分支,现网发布分支,受保护分支(不支持reset操作、可设置为只有仓库拥有者拥有权限)dev :开发分支、联调分支,用于开发自己测试以及跟客户端进行联调使用,分支内的功能比较混乱test:测试分支,提供给测试进行测试的分支,当开发需要提测时,将feature分支合并到test分支进行测试feature:功能需求分支,用户进行功能开发的分支,从master分支checkout过来hotfix:现网bug修复分支,临时使用,从master分支checkout过来如果没有足够的资源的话,如没有联调环境等,都是本地开发的话,可以简单点来,直接本地将feature分支功能自测通过后,直接合并到test分支进行提测。针对feature分支,可以不 ...
ffmpeg
FFmpeg常用音频操作一、介绍ffmpeg是一个非常快速的视频和音频转换器,也可以从实时音频、视频源中获取。它还可以在任意采样率之间转换,并使用高质量的多相波滤器及时调整视频大小。二、下载https://ffmpeg.org/download.html根据官网下载指定系统的安装文件后,配置相应的环境变量后即可执行# 输入 ffmpeg -version 查看是否安装配置成功ffmpeg version n4.3.1-20-g8a2acdc6da Copyright (c) 2000-2020 the FFmpeg developers# 可以查看相应的参数,除了通用参数外,还提供了视频、音频、字幕各个特定的参数ffmpeg -h三、常用操作3.1 获取音频基本信息获取音频的基本信息,如时长、比特率、格式等。# ffmpeg -i 音频文件ffmpeg -i demo.mp3ffmpeg version n4.3.1-20-g8a2acdc6da Copyright (c) 2000-2020 the FFmpeg developers built with gcc 9.3-win3 ...
DeferredResult
前言博文也好久没有更新了,这个月都忙于技术调研,比如配置中心的方案、服务端音频处理技术等,没空下来去整理相应的技术点。自在调研配置中心Apollo的时候发现一个以前不用的功能—— DeferredResult,今天介绍下这个功能点,这是Servlet3异步请求带来的新特性,Spring的实现方式。一、背景1.1 同步请求模型传统的同步请求模式,所有的请求都交给tomcat线程处理,虽然tomcat会使用线程池技术提升吞吐量,但是针对一个请求是由一个tomcat线程进行处理,如果一个请求响应很慢,线程就会无法释放,一直被占用;如果出现大量响应耗时的请求,导致无可用线程处理请求,导致整个服务不可用。1.2 Servlet3 异步请求模型此异步并非正在的异步,该模型中,tomcat线程仅仅需要处理请求解析的过程,真正的业务处理由业务线程进行处理,这样一来tomcat可以处理更多的请求。浏览器发起请求至Servlet容器请求解析成HttpServletRequest分发到具体的Servlet处理,同时业务由业务线程进行处理,tomcat线程立即释放业务线程处理结束,将执行结果转交给tomcat ...
xxl-job
前言在分布式架构体系中,离线任务也是主要的功能,之前的公司微服务的架构体系下,离线任务很多,基本都是单实例在跑,且经常出现问题,没有一个合理的监控和报警机制。这次新公司项目中正好有这块的需求,经过调研,采取了xxl-job分布式任务调度框架,在此将相关的功能做做笔记。一、简介1.1概述XXL-JOB是一个分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展,基于springboot开发。具体的特性、功能可以参考官方介绍,这里只介绍如何搭建XXL-JOB,SpringBoot项目如何集成XXL-JOB,以及功能的实现逻辑、源码。1.2架构图整体系统由调度中心、执行器组成。将调度行为抽象形成调度中心公共平台,而平台自身并不承担业务逻辑,调度中心负责发起调度请求;将任务抽象成分散的JobHandler,交给执行器统一管理,执行器负责接收调度请求并执行对应的JobHandler中的业务逻辑。二、搭建XXL-JOB-ADMIN2.1 环境准备xxl-job使用的是mysql存储相关的任务信息,需准备mysql环境。我这边基于源码安装,也是可以用docker。git clone ...
ngrok
前言最近在对接一个公共平台的api,在平台中配置我们服务的地址,为了方便本地调试,在自己的阿里云服务器上搭建了ngrok作为代理,访问我本地部署的服务,然后就行调试。一、环境准备域名阿里云服务器二、安装2.1 安装goapt-get install golang# 验证go verison2.2 准备域名在阿里云上配置你的域名解析,直接配置个二级域名就行2.3 搭建ngrok2.3.1 安装# 获取源码git clone https://github.com/inconshreveable/ngrok.gitcd ngrok# 生成ssl证书export NGROK_DOMAIN="上面阿里云上面配置的域名"openssl genrsa -out base.key 2048openssl req -new -x509 -nodes -key base.key -days 10000 -subj "/CN=$NGROK_DOMAIN" -out base.pemopenssl genrsa -out server.key 2048openssl req -new -key server. ...
zipkin
前言最近项目需要做一些链路跟踪的需求,以前对zipkin + sleuth 有过了解,但没有自己动手搭建过,借这次的需求手动实践下,顺便写写博客,做做笔记一、zipkin1.1 简介Zipkin是一个分布式跟踪系统,可以搜集服务上报的调用信息,包括http、mysql、redis、mongodb、dubbo等,然后进行相应的展示,上报信息通过traceId进行关联,每个调用就生成一个span,span中有parentId关联上一个span,具体的描述可以参考官网,官网总共没有多少模块,可以看看,github上也有相应的代码。1.2 结构Reporter 是集成在服务中的,负责收集相应的信息Transport 是将服务上报的信息传输给zipkin的通道,有http、Kafka、Scribe(facebook开源的日志系统)等Collector负责收集服务上报的信息,Storage储存到相应的介质,如mysql、es等,api提供http接口返回json数据供UI展示二、搭建zipkinzipkin搭建直接用docker,存储用的es2.1 elasticsearchdocker run ...
pf4j
pf4j-spring使用最近项目中需要做自定义配置的功能,希望调用方配置自己的代码来实现相关功能,正好pf4j这个轻量的插件库可以实现,写了个demo验证了下功能一、maven<dependency> <groupId>org.pf4j</groupId> <artifactId>pf4j-spring</artifactId> <version>0.6.0</version></dependency>二、代码实现分为三个项目模块:接口定义 pf4j-api:定义接口行为插件实现 pf4j-plugin:实现插件能力插件加载 pf4j-use:使用插件2.1 接口定义public interface Greeting extends ExtensionPoint { String getGreeting();}2.2 插件实现// 继承了Plugin 可以介入插件的生命周期public class HelloPlugin extends Plu ...
pip3更改源
前言pip3加速,修改源# 用户目录下mkdir .pipcd .pipvim pip.conf# 复制下面配置即可[global]index-url = https://mirrors.aliyun.com/pypi/simple