《AI算法工程师手册》
本文转载自:http://www.huaxiaozhuan.com/
这是一份机器学习算法和技能的学习手册,可以作为学习工作的参考,都看一遍应该能收获满满吧。
作者华校专,曾任阿里巴巴资深算法工程师,现任智易科技首席算法研究员,《Python 大战机器学习》的作者。
这是作者多年以来学习总结的笔记,经整理之后开源于世。目前还有约一半的内容在陆续整理中,已经整理好的内容放置在此。 曾有出版社约稿,但是考虑到出版时间周期较长,而且书本购买成本高不利于技术广泛传播,因此作者采取开源的形式。 笔记内容仅供个人学习使用,非本人同意不得应用于商业领域。
笔记内容较多,可能有些总结的不到位的地方,欢迎大家探讨。联系方式:huaxz1986@163.com
另有个人在 github 上的一些内容:
- "《算法导论》的C++实现"代码:https://github.com/huaxz1986/cplusplus-_Implementation_Of_Introduction_to_Algorithms
- 《Unix 环境高级编程第三版》笔记:https://github.com/huaxz1986/APUE_notes
数学基础
- 1.线性代数基础
- 一、基本知识
- 二、向量操作
- 三、矩阵运算
- 四、特殊函数
- 2.概率论基础
- 一、概率与分布
- 二、期望和方差
- 三、大数定律及中心极限定理
- 五、常见概率分布
- 六、先验分布与后验分布
- 七、信息论
- 八、其它
- 3.数值计算基础
- 一、数值稳定性
- 二、梯度下降法
- 三、二阶导数与海森矩阵
- 四、牛顿法
- 五、拟牛顿法
- 六、 约束优化
- 4.蒙特卡洛方法与 MCMC 采样
- 一、蒙特卡洛方法
- 二、马尔可夫链
- 三、MCMC 采样
统计学习
- 0.机器学习简介
- 一、基本概念
- 二、监督学习
- 三、机器学习三要素
- 1.线性代数基础
- 一、线性回归
- 二、广义线性模型
- 三、对数几率回归
- 四、线性判别分析
- 五、感知机
- 2.支持向量机
- 一、 线性可分支持向量机
- 二、线性支持向量机
- 三、非线性支持向量机
- 四、支持向量回归
- 五、SVDD
- 六、序列最小最优化方法
- 七、其它讨论
- 3.朴素贝叶斯
- 一、贝叶斯定理
- 二、朴素贝叶斯法
- 三、半朴素贝叶斯分类器
- 四、其它讨论
- 4.决策树
- 一、 原理
- 二、 特征选择
- 三、生成算法
- 四、剪枝算法
- 五、CART 树
- 六、连续值、缺失值处理
- 七、多变量决策树
- 5.knn
- 一、k 近邻算法
- 二、 kd树
- 6.集成学习
- 一、集成学习误差
- 二、 Boosting
- 三、Bagging
- 四、集成策略
- 五、多样性分析
- 7.梯度提升树
- 一、提升树
- 二、xgboost
- 三、LightGBM
- 8.特征工程
- 一、缺失值处理
- 二、特征编码
- 三、数据标准化、正则化
- 四、特征选择
- 五、稀疏表示和字典学习
- 六、多类分类问题
- 七、类别不平衡问题
- 9.模型评估
- 一、泛化能力
- 二、过拟合、欠拟合
- 三、偏差方差分解
- 四、参数估计准则
- 五、泛化能力评估
- 六、训练集、验证集、测试集
- 七、性能度量
- 七、超参数调节
- 八、传统机器学习的挑战
- 10.降维
- 一、维度灾难
- 二、主成分分析 PCA
- 三、核化线性降维 KPCA
- 四、流形学习
- 五、度量学习
- 六、概率PCA
- 七、独立成分分析
- 八、t-SNE
- 九、LargeVis
- 11.聚类
- 一、性能度量
- 二、原型聚类
- 三、密度聚类
- 四、层次聚类
- 五、谱聚类
- 12.半监督学习
- 半监督学习
- 一、生成式半监督学习方法
- 二、半监督 SVM
- 三、图半监督学习
- 四、基于分歧的方法
- 五、半监督聚类
- 六、 总结
- 13.EM算法
- 一、示例
- 二、EM算法原理
- 三、EM算法与高斯混合模型
- 四、EM 算法与 kmeans 模型
- 五、EM 算法的推广
- 14.最大熵算法
- 一、最大熵模型MEM
- 二、分类任务最大熵模型
- 三、最大熵的学习
- 15.隐马尔可夫模型
- 一、隐马尔可夫模型HMM
- 二、 HMM 基本问题
- 三、 最大熵马尔科夫模型MEMM
- 16.概率图与条件随机场
- 一、概率图模型
- 二、贝叶斯网络
- 三、马尔可夫随机场
- 四、条件随机场 CRF
- 17.边际概率推断
- 一、精确推断
- 二、近似推断
深度学习
- 0.深度学习简介
- 一、 介绍
- 二、历史
- 1.深度前馈神经网络
- 一、基础
- 二、损失函数
- 三、输出单元
- 四、隐单元
- 五、结构设计
- 六、历史小记
- 2.反向传播算法
- 一、链式法则
- 二、反向传播
- 三、算法实现
- 四、自动微分
- 3.正则化
- 一、参数范数正则化
- 二、显式约束正则化
- 三、数据集增强
- 四、噪声鲁棒性
- 五、早停
- 六、参数相对约束
- 七、dropout
- 八、对抗训练
- 九、正切传播算法
- 十、其它相关
- 4.最优化基础
- 一、代价函数
- 二、神经网络最优化挑战
- 三、 mini-batch
- 四、基本优化算法
- 五、自适应学习率算法
- 六、二阶近似方法
- 七、共轭梯度法
- 八、优化策略和元算法
- 九、参数初始化策略
- 十、Normalization
- 5.卷积神经网络
- 一、卷积运算
- 二、卷积层、池化层
- 三、基本卷积的变体
- 四、应用
- 五、 历史和现状
- 5.1.CNN之图片分类
- 一、LeNet
- 二、AlexNet
- 三、VGG-Net
- 四、Inception
- 五、ResNet
- 六、ResNet 变种
- 七、SENet
- 八、 DenseNet
- 九、小型网络
- 6.循环神经网络
- 一、RNN计算图
- 二、循环神经网络
- 三、长期依赖
- 四、序列到序列架构
- 五、递归神经网络
- 六、回声状态网络
- 七、LSTM 和其他门控RNN
- 八、外显记忆
- 7.工程实践指导原则
- 一、性能度量
- 二、默认的基准模型
- 三、决定是否收集更多数据
- 四、选择超参数
- 五、调试策略
- 六、示例:数字识别系统
- 七、数据预处理
- 八、变量初始化
- 九、结构设计
自然语言处理
工具
CRF
- CRF++
- 一、安装
- 二、使用
- 三、Python接口
- 四、常见错误
lightgbm
- lightgbm使用指南
- 一、安装
- 二、调参
- 三、进阶
- 四、API
- 五、Docker
xgboost
- xgboost使用指南
- 一、安装
- 二、调参
- 三、外存计算
- 四、 GPU计算
- 五、单调约束
- 六、 DART booster
- 七、Python API
scikit-learn
- 1.预处理
- 一、特征处理
- 二、特征选择
- 三、字典学习
- 四、PipeLine
- 2.降维
- 一、PCA
- 二、MDS
- 三、Isomap
- 四、LocallyLinearEmbedding
- 五、FA
- 六、FastICA
- 七、t-SNE
- 3.监督学习模型
- 一、线性模型
- 二、支持向量机
- 三、贝叶斯模型
- 四、决策树
- 五、KNN
- 六 、AdaBoost
- 七、梯度提升树
- 八、Random Forest
- 4.模型评估
- 一、数据集切分
- 二、性能度量
- 三、验证曲线 && 学习曲线
- 四、超参数优化
- 5.聚类模型
- 一、KMeans
- 二、DBSCAN
- 三、MeanShift
- 四、AgglomerativeClustering
- 五、BIRCH
- 六、GaussianMixture
- 七、SpectralClustering
- 6.半监督学习模型
- 一、标签传播算法
- 7.隐马尔可夫模型
- 一、Hmmlearn
- 二、seqlearn
spark
- 1.基础概念
- 一、核心概念
- 二、安装和使用
- 三、 pyspark shell
- 四、独立应用
- 2.rdd使用
- 一、概述
- 二、创建 RDD
- 三、转换操作
- 四、行动操作
- 五、其他方法和属性
- 六、持久化
- 七、分区
- 八、混洗
- 3.dataframe使用
- 一、概述
- 二、SparkSession
- 三、DataFrame 创建
- 四、 DataFrame 保存
- 五、DataFrame
- 六、Row
- 七、Column
- 八、GroupedData
- 九、functions
- 4.累加器和广播变量
- 一、累加器
- 二、广播变量
numpy
- numpy 使用指南
- 一、 ndarray
- 二、 ufunc 函数
- 三、 函数库
- 四、数组的存储和加载
scipy
- scipy 使用指南
- 一、 常数和特殊函数
- 二、 拟合与优化
- 三、线性代数
- 四、 统计
- 五、数值积分
- 六、 稀疏矩阵
matplotlib
- matplotlib 使用指南
- 一、matplotlib配置
- 二、 matplotlib Artist
- 三、基本概念
- 四、布局
- 五、 Path
- 六、 path effect
- 七、坐标变换
- 八、 3D 绘图
- 九、技巧
pandas
- pandas 使用指南
- 一、基本数据结构
- 二、 内部数据结构
- 三、 下标存取
- 四、 运算
- 五、变换
- 六、数据清洗
- 七、 字符串操作
- 八、 聚合与分组
- 九、时间序列
- 十、 DataFrame 绘图
- 十一、 移动窗口函数
- 十二、 数据加载和保存
参考文献:
《AI算法工程师手册》的更多相关文章
- 简单物联网:外网访问内网路由器下树莓派Flask服务器
最近做一个小东西,大概过程就是想在教室,宿舍控制实验室的一些设备. 已经在树莓上搭了一个轻量的flask服务器,在实验室的路由器下,任何设备都是可以访问的:但是有一些限制条件,比如我想在宿舍控制我种花 ...
- 利用ssh反向代理以及autossh实现从外网连接内网服务器
前言 最近遇到这样一个问题,我在实验室架设了一台服务器,给师弟或者小伙伴练习Linux用,然后平时在实验室这边直接连接是没有问题的,都是内网嘛.但是回到宿舍问题出来了,使用校园网的童鞋还是能连接上,使 ...
- 外网访问内网Docker容器
外网访问内网Docker容器 本地安装了Docker容器,只能在局域网内访问,怎样从外网也能访问本地Docker容器? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Docker容器 ...
- 外网访问内网SpringBoot
外网访问内网SpringBoot 本地安装了SpringBoot,只能在局域网内访问,怎样从外网也能访问本地SpringBoot? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装Java 1 ...
- 外网访问内网Elasticsearch WEB
外网访问内网Elasticsearch WEB 本地安装了Elasticsearch,只能在局域网内访问其WEB,怎样从外网也能访问本地Elasticsearch? 本文将介绍具体的实现步骤. 1. ...
- 怎样从外网访问内网Rails
外网访问内网Rails 本地安装了Rails,只能在局域网内访问,怎样从外网也能访问本地Rails? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Rails 默认安装的Rails端口 ...
- 怎样从外网访问内网Memcached数据库
外网访问内网Memcached数据库 本地安装了Memcached数据库,只能在局域网内访问,怎样从外网也能访问本地Memcached数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装 ...
- 怎样从外网访问内网CouchDB数据库
外网访问内网CouchDB数据库 本地安装了CouchDB数据库,只能在局域网内访问,怎样从外网也能访问本地CouchDB数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动Cou ...
- 怎样从外网访问内网DB2数据库
外网访问内网DB2数据库 本地安装了DB2数据库,只能在局域网内访问,怎样从外网也能访问本地DB2数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动DB2数据库 默认安装的DB2 ...
- 怎样从外网访问内网OpenLDAP数据库
外网访问内网OpenLDAP数据库 本地安装了OpenLDAP数据库,只能在局域网内访问,怎样从外网也能访问本地OpenLDAP数据库? 本文将介绍具体的实现步骤. 1. 准备工作 1.1 安装并启动 ...
随机推荐
- [LeetCode] Linked List Components 链表组件
We are given head, the head node of a linked list containing unique integer values. We are also give ...
- Reward List 赏金列表
博主昨晚正在刷题,突然手机语音大声提示“微信支付收款到账”,把博主吓了一跳,打开一看,居然收到了第一笔打赏,还是博主最喜欢的数字,老开心了-感谢网友对于博主工作的认可与支持,多谢多谢!不管大家是物质打 ...
- Web版记账本开发记录(二)开发过程遇到的问题小结1 对数据库的区间查询
问题1 对数据库的区间查询 如功能显示,想要按照年份和月份查询相应的记录,就要使用区间查询 对应的代码如下 servlet层的ChaXun java.sql.Date sDate = new java ...
- 一次Spring Bean初始化顺序问题排查记录
最近在使用Springboot的时候需要通过静态的方法获取到Spring容器托管的bean对象,参照一些博文里写的,新建了个类,并实现ApplicationContextAware接口.代码大致如下: ...
- 一般处理程序(ashx)的使用
ASP.NET 中发送请求的页面代码如下: <head runat="server"> <title></title> <script s ...
- Selenium 3----鼠标、键盘操作常用方法
[鼠标] 在 WebDriver 中, 关于鼠标操作的方法封装在 ActionChains 类中. ActionChains 类提供了鼠标操作的常用方法: perform(): 执行所有 Action ...
- appium api笔记
打印上下文driver.contexts打印当前上下文driver.contextdriver.current_context切换上下文driver.switch_to.context('WEBVIE ...
- type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL ,一般来说,得保证查询至少达到range级别,最好能达到ref。 作者:高
MySQL EXPLAIN详解 - 简书 https://www.jianshu.com/p/ea3fc71fdc45 type显示的是访问类型,是较为重要的一个指标,结果值从好到坏依次是: syst ...
- 一个人工智能教程,教案接地气、限制级。 http://www.captainbed.net
一个人工智能教程,教案接地气.限制级. http://www.captainbed.net https://open.weibo.com/
- B-Tree与B+Tree简明扼要的区别
原文:https://blog.csdn.net/zhuanzhe117/article/details/78039692 看了很多讲B树和B+树的文章,大多都是围绕各自的特性讲的,第一,树中每个结点 ...