Git Product home page Git Product logo

machinelearning-gaoyang's Introduction

大鱼AI🐟 :《白话机器学习》- MachineLearning - GaoYang

1. 课程概述

本课程主要围绕书籍《白话大数据与机器学习》,提取了其中的机器学习部分,从数据统计、数据指标理解、数据模型、聚类/分类与机器学习、数据应用,以及扩展讨论这样的角度来层层深入,十分适合小白入门,让尤其是不擅长数学的学习者降低对机器学习算法的恐惧感。另外参考书中,为了调节阅读气氛,帮助大家理解,结合大量案例与漫画,将抽象的数学、算法与应用,与现实生活中的案例和事件一一做了关联。

  学习人群定位:小白入门
  现有资料:《白话大数据与机器学习》高扬
  就业方向:算法工程师、数据挖掘工程师、数据分析师、大数据工程师、软件工程师

2. 整体安排

2.1 学习时间安排

本课程需要8周, 每周有3~5门课。课程时间安排如下:

课程 时间
第01-02课 周一、周二
第03课及之后 周四、周五
自由学习时间 周三、周六
本周作业 本周任何空余时间
提交作业的学习链接 周日晚20:00前

★ 作业学习链接的形式:博客/Github/其他形式

2.2 学习大纲安排

Week1:开学和绪论

第01课:课程引导&机器学习介绍

本周作业:

制定自己的学习计划,开通自己的学习博客,注册自己的Github。参考资料:

如何申请CSDN博客?

最新GitHub账号注册(详细图解)

12分钟教你如何使用Markdown

LaTeX公式编辑

Week2:回归

Chapter8(P87)

第01课:基本概念

  • 回归的概念
  • 线性回归的基本表达形式
  • 拟合(打点计时器计算重力加速度→积分)
  • 代码实现并画图

其他资料:CS 229 - 特征和多项式回归_8 min

第02课:残差分析

  • 对打点计时器所画图形进行残差分析
  • 最小二乘法的原理(其他资料:最小二乘法理论、推导、算法
  • 对残差平方和求极值(斜率、截距 的推导及含义)

第03课:过拟合

  • 什么是过拟合(拟合的函数完美的匹配训练集数据)
  • 出现过拟合的原因(样本少,力求完美)
  • 举例说明过拟合的危害(描述复杂,失去泛化能力)
  • 过拟合的解决办法(减少特征维度,正则化)

其他资料:CS 229 - 过拟合问题_10 min

第04课:欠拟合

  • 什么是欠拟合(拟合的函数和训练集误差较大)
  • 欠拟合的原因(参数过少,拟合方法不对)
  • 欠拟合的危害
  • 欠拟合的解决办法(增加特征维度来解决)

第05课:曲线拟合转化为线性拟合

  • 当数据之间不是线性关系时,转换为线性关系
  • 转换的方式(对数变换,广义最小二乘法)
  • 代码实现(世界人口状况的预测)

本周作业:

用博客或Github整理

  • 代码实现线性回归算法(尝试使用对数变换法)
  • 代码实现最小二乘法的线性拟合
  • 整理过拟合及欠拟合的解决办法,并分别采用1-2种办法代码实现

Week3:聚类

Chapter9(P105)

第01课:数学基础

  • 概率分布:平均值(P29)、期望(加权均值P32)、标准差(P30)和方差-标准差的平方
  • 距离:欧式距离(P37)、曼哈顿距离(P39)、余弦相似度
  • 机器学习的归一化和标准化(P116)

第02课:聚类概述和K-Means算法

  • 聚类现象:归纳和总结相似事物(P105-106)(其他资料:CS 229 - 无监督学习_3 min
  • K-Means算法:算法步骤和代码实现(P106-109)(其他资料:CS 229 - KMeans算法_12 min
  • 有趣模式:Kmeans算法将数据分组的划分方法(P109-110)
  • 孤立点:产生原因和应用(P110)

第03课:层次聚类

  • 层次聚类:自底向上的层级模式(P110-113)
    • 思路1:分裂的层次聚类方法
    • 思路2:凝聚的层次聚类方法
    • 聚类的3种度量策略 及 Ward策略的代码实现

第04课:密度聚类

  • 密度聚类的应用场景:聚类形状不规则 / 与K-Means聚类对比(P113)
  • sklearn中密度分类的算法库 - 例子代码实现(P114-116)
  • DBSCAN的参数解释:eps、min_samples(P116)

第05课:聚类评估 - 判断聚类的质量

  • 聚类质量评估概述:3个方面(P116-124)
    • 1 - 聚类趋势:算法步骤和代码
    • 2 - 簇数确定:经验法和肘方法、肘方法的代码实现(其他资料: CS229 - 选取聚类数量_8 min
    • 3 - 测定聚类质量:外在方法(参考类簇标准)和内在方法(轮廓系数)、内在方法code

本周作业:

用博客或Github整理

  • K-Means:算法步骤及代码实现
  • 凝聚的层次聚类:算法步骤及代码实现(P111例子用Maximum策略)
  • 密度聚类:算法步骤和代码实现

Week4:分类(一)

Chapter10.1 — 10.4

第01课:数学基础

第02课:朴素贝叶斯

  • 基本**:先验概率转化为后验概率,然后根据后验概率的大小进行决策分类
  • 贝叶斯公式
  • 高斯朴素贝叶斯(一般用于连续型特征进行分类)
  • 多项式朴素贝叶斯(一般用于高纬度向量分类)
  • 伯努利朴素贝叶斯(一般用于bool类型特征进行分类)

第03课:决策树

  • 举个约会的栗子
  • 连续性变量找最佳切分点(先排序,尝试所有的切分点,找到信息增益最大的一个)
  • 决策树的构造方式

第04课:随机森林

  • 集成学习概念
  • 个体学习器概念
  • boosting、bagging的相关概念
  • 结合策略:平均法,投票法,学习法
  • 随机森林**

第05课:隐马尔科夫链

  • 已知隐藏状态数量,转换概率、可见状态链,求隐含状态链
    • 思路:最大释然状态路径(一串序列,概率最大)
    • 算法:维特比算法
    • 举个例子:输入法中隐藏序列是想要输入的字符,可见序列是已经输入显示的字符
  • 已知隐藏状态数量,转换概率、可见状态链,求隐含状态链
    • 前向算法
  • 已知隐藏状态数量,不知转换概率、有很多可见状态链,求转换概率(最常见)
  • 代码实现对输出词汇的预测

本周作业:

用博客或Github整理

  • 朴素贝叶斯:算法步骤及代码实现高斯朴素贝叶斯对疾病的预测
  • 随机森林:算法步骤及代码实现随机森林对相亲的预测
  • 决策树:算法步骤及代码实现决策树对相亲的预测
  • 隐马尔科夫链:算法步骤和代码实现隐马尔科夫链对词汇输出的预测

Week5:分类(二)

Chapter10.5 — 10.6

第01课:数学基础

  • 点到直线的距离公式(P159)
  • 高斯分布(P45)
  • 多元函数求偏导(求偏导1求偏导2

第02课:支持向量机SVM

  • 由案例 "年龄和好坏" 引入基本概念
    • 超平面:一维空间的点 → 二维空间的线 → 三维空间的面
    • 过拟合问题
    • 不纯度:权衡精确度和不纯度
  • 线性可分模型:间隔最大化的分类超平面(P160)
  • 线性不可分问题
    • 非线性变换映射到高维空间
    • 核函数:替代样本内积
  • sklearn中的类SVC - 案例的代码实现(P163)
  • SVM算法小结

第03课:遗传算法

  • 借鉴进化论的随机搜索方法:进化过程
  • 遗传算法的关键步骤:基因编码、设计初始群体、适应度计算和产生下一代和迭代计算
  • 实例1 - 背包问题
    • 穷举法
    • 遗传算法的求解过程
    • 遗传算法的注意事项(P169)
      • 可调整的地方:初始群体、适应度函数、基因重组和迭代结束
    • 背包问题采用遗传算法求解的代码实现(P170)
  • 实例2 - 极值问题
    • 微积分领域的解法
    • 遗传算法的求解过程
    • 极值问题采用遗传算法求解的代码实现(P177)
      • 执行代码时的问题:再播撒不均匀(P180)
      • 解决方法:初始种群扩大化 和 每一代遴选增加名额

本周作业:

用博客或Github整理

  • SVM:算法步骤及代码实现(P163例子尝试4种核函数)
  • 遗传算法:代码实现 - 求函数z = ysin(x) + xcos(y)在x位于[-10,10] 和 y位于[10,10]之间的最大值。(P177)

Week6:关联分析+用户画像

Chapter11 & 12

第01课:数学基础

  • 支持度(P185)
  • 置信度(P185)
  • 笛卡儿积(P189)
  • 提升度(P192)

第02课:关联分析

  • 频繁模式:高频率的模式
  • Apriori算法:找出数据值中频繁出现的数据集合
  • 关联分析相关性分析:提升度
  • 稀有模式&负模式
    • 支持度远低于设定支持度的模式:稀有模式
    • 至少是很少一起出现的频繁模式:负模式

第03课:用户画像

  • 画像的方法:打标签
    • 结构化标签:表一样
      • 丰富度有限
      • 信息正确性高
    • 非结构化标签:属性无明显区分
      • 举例子:广告的运作流程
      • 画画看:通过软件列表,使用记录,浏览器访问记录等画像
      • 给标签不同的权重
  • 利用用户画像
    • 割裂型用户画像
    • 紧密型用户画像
    • 到底“像不像”
      • 跟谁比
      • 信息反馈

本周作业:

用博客或Github整理

  • SQL实现啤酒=>香烟的支持度与置信度计算
  • Apriori算法的步骤并用代码实现

Week7:推荐算法&文本挖掘

Chapter13 & 14

第01课:数学基础

  • 余弦相似度(P210&P217)
  • 精确度和召回率(P219)

第02课:推荐算法

  • 推荐系统的现象和目的:提高转化率
  • 推荐思路1 - 朴素贝叶斯分类:例子
  • 推荐思路2 - 协同过滤(基于搜索记录)
    • 基于邻域的推荐算法(邻居方法)
      • 基于用户的协同过滤
        • 算法步骤:用户偏好列表 → 设计相似向量 → 选取超过相似阈值的用户
      • 基于商品的协同过滤
        • 核心思路:通过分析用户行为,计算物品间的相似度
        • 计算步骤:计算物品相似度 → 根据物品相似度和用户偏好给用户生成推荐列表
        • 例子 - 文娱用品商店销售记录:构造物品的邻接矩阵 → 叠加邻接矩阵 → ...
    • 基于模型的推荐算法("Matrix factorization techniques for recommender systems")
  • 优化问题
    • 规模和效率:例子 & 解决措施
    • 覆盖率和多样性
      • 例子
      • 解决措施:归一化物品相似度

第03课:文本挖掘

  • 文本挖掘的概述:结构化数据挖掘(自然语言分析)和 非结构化数据挖掘
  • 文本挖掘的7个主要领域
  • 文本分类
    • 分词:词典式检索 → 基于统计语言模型(SLM)etc.
    • 文本表示(向量化):词频 → TFIDF
    • 分类标记:描述分词和分类标签的映射关系
      • Rocchio算法:原型向量 & 代码(P222) & 两大假设(缺点)
      • 朴素贝叶斯算法:例子的计算步骤 & 代码(P225)
      • K近邻算法:算法流程 & 优缺点 & 代码(P226)
      • 支持向量机算法:算法思路 & 优缺点 & 代码(P227)

本周作业:

用博客或Github整理

  • 基于商品的协同过滤:算法流程,参照例子 - 文娱用品商店销售记录(P212)
  • 分类标记:下述算法的算法流程、优缺点和代码: Rocchio算法(代码 - P222)、朴素贝叶斯算法(代码 - P225)、K近邻算法( 代码 - P226)和 支持向量机算法(代码 - P227)

Week8:人工神经网络

Chapter15

第01课:数学基础

  • 卷积(P248)

第02课:人工神经网络

  • 起源:大脑、人体神经元 → 由神经元模拟电子信息处理系统
  • 人工神经网络
    • 训练过程:初始化权重、训练
    • 与回归、SVM对比
  • 常见的神经网络模型
    • 感知机
    • BP神经网络
      • 结构和原理:两层BP为例,激活函数Logisitic函数
      • ☆训练过程:误差计算、反向传播和权值修正
      • 例子 - 手写数字识别:BP神经网络的流程 和 代码(P243)
    • 卷积神经网络
      • 概述:特征提取层、特征映射层
      • 例子 - 青苹果图片:CNN的流程

第03课:小节作业

用博客或Github整理

  • BP神经网络的算法流程
  • CNN的算法流程

第04课:期末考试

machinelearning-gaoyang's People

Contributors

libihan avatar wjq2011 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.