本教程的知识点为:机器学习算法定位、 K-近邻算法 1.4 k值的选择 1 K值选择说明 1.6 案例:鸢尾花种类预测–数据集介绍 1 案例:鸢尾花种类预测 1.8 案例:鸢尾花种类预测—流程实现 1 再识K-近邻算法API 1.11 案例2:预测facebook签到位置 1 项目描述 线性回归 2.3 数学:求导 1 常见函数的导数 线性回归 2.5 梯度下降方法介绍 1 详解梯度下降算法 线性回归 2.6 线性回归api再介绍 小结 线性回归 2.9 正则化线性模型 1 Ridge Regression (岭回归,又名 Tikhonov regularization) 逻辑回归 3.3 案例:癌症分类预测-良/恶性乳腺癌肿瘤预测 1 背景介绍 决策树算法 4.2 决策树分类原理 1 熵 决策树算法 4.3 cart剪枝 1 为什么要剪枝 决策树算法 4.4 特征工程-特征提取 1 特征提取 决策树算法 4.5 决策树算法api 4.6 案例:泰坦尼克号乘客生存预测 集成学习基础 5.1 集成学习算法简介 1 什么是集成学习 2 复习:机器学习的两个核心任务 集成学习基础 5.3 otto案例介绍 – Otto Group Product Classification Challenge 1.背景介绍 2.数据集介绍 3.评分标准 集成学习基础 5.5 GBDT介绍 1 Decision Tree:CART回归树 1.1 回归树生成算法(复习) 聚类算法 6.1 聚类算法简介 1 认识聚类算法 聚类算法 6.5 算法优化 1 Canopy算法配合初始聚类 聚类算法 6.7 案例:探究用户对物品类别的喜好细分 1 需求 第一章知识补充:再议数据分割 1 留出法 2 交叉验证法 KFold和StratifiedKFold 3 自助法 正规方程的另一种推导方式 1.损失表示方式 2.另一种推导方式 梯度下降法算法比较和进一步优化 1 算法比较 2 梯度下降优化算法 第二章知识补充: 多项式回归 1 多项式回归的一般形式 维灾难 1 什么是维灾难 2 维数灾难与过拟合 第三章补充内容:分类中解决类别不平衡问题 1 类别不平衡数据集基本介绍 向量与矩阵的范数 1.向量的范数 2.矩阵的范数 如何理解无偏估计?无偏估计有什么用? 1.如何理解无偏估计
完整笔记资料代码->: https://gitee.com/yinuo112/AI/tree/master/机器学习/嘿马机器学习(算法篇)/note.md
感兴趣的小伙伴可以自取哦~
全套教程部分目录:
部分文件图片:
K-近邻算法
学习目标
- 掌握K-近邻算法实现过程
- 知道K-近邻算法的距离公式
- 知道K-近邻算法的超参数K值以及取值问题
- 知道kd树实现搜索的过程
- 应用KNeighborsClassifier实现分类
- 知道K-近邻算法的优缺点
- 知道交叉验证实现过程
- 知道超参数搜索过程
- 应用GridSearchCV实现算法参数的调优
1.11 案例2:预测facebook签到位置
学习目标
-
目标
- 通过Facebook位置预测案例熟练掌握第一章学习内容
1 项目描述
本次比赛的目的是预测一个人将要签到的地方。 为了本次比赛,Facebook创建了一个虚拟世界,其中包括10公里*10公里共100平方公里的约10万个地方。 对于给定的坐标集,您的任务将根据用户的位置,准确性和时间戳等预测用户下一次的签到位置。 数据被制作成类似于来自移动设备的位置数据。 请注意:您只能使用提供的数据进行预测。
2 数据集介绍
数据介绍:
官网:[
3 步骤分析
-
对于数据做一些基本处理(这里所做的一些处理不一定达到很好的效果,我们只是简单尝试,有些特征我们可以根据一些特征选择的方式去做处理)
-
1 缩小数据集范围 DataFrame.query()
-
2 选取有用的时间特征
-
3 将签到位置少于n个用户的删除
-
-
分割数据集
-
标准化处理
-
k-近邻预测
4 代码实现
- 1.获取数据集
- 2.基本数据处理
- 3.特征工程–特征预处理(标准化)
- 4.机器学习–knn+cv
- 5.模型评估
线性回归
学习目标
- 掌握线性回归的实现过程
- 应用LinearRegression或SGDRegressor实现回归预测
- 知道回归算法的评估标准及其公式
- 知道过拟合与欠拟合的原因以及解决方法
- 知道岭回归的原理及与线性回归的不同之处
- 应用Ridge实现回归预测
- 应用joblib实现模型的保存与加载
2.1 线性回归简介
学习目标
- 了解线性回归的应用场景
- 知道线性回归的定义
1 线性回归应用场景
-
房价预测
-
销售额度预测
-
贷款额度预测
举例:
2 什么是线性回归
2.1 定义与公式
线性回归(Linear regression)是利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式。
- 特点:只有一个自变量的情况称为单变量回归,多于一个自变量情况的叫做多元回归
- 线性回归用矩阵表示举例
那么怎么理解呢?我们来看几个例子
- 期末成绩:0.7×考试成绩+0.3×平时成绩
- 房子价格 = 0.02×中心区域的距离 + 0.04×城市一氧化氮浓度 + (-0.12×自住房平均房价) + 0.254×城镇犯罪率
上面两个例子,我们看到特征值与目标值之间建立了一个关系,这个关系可以理解为线性模型。
2.2 线性回归的特征与目标的关系分析
线性回归当中主要有两种模型,**一种是线性关系,另一种是非线性关系。**在这里我们只能画一个平面更好去理解,所以都用单个特征或两个特征举例子。
-
线性关系
- 单变量线性关系:
- 多变量线性关系
注释:单特征与目标值的关系呈直线关系,或者两个特征与目标值呈现平面的关系
更高维度的我们不用自己去想,记住这种关系即可
- 非线性关系
注释:为什么会这样的关系呢?原因是什么?
如果是非线性关系,那么回归方程可以理解为:
<span class=“katex”><span class=“katex-mathml”><math><semantics><mrow><msub><mi>w</mi><mn>1</mn></msub><msub><mi>x</mi><mn>1</mn></msub><mo>+</mo><msub><mi>w</mi><mn>2</mn></msub><msubsup><mi>x</mi><mn>2</mn><mn>2</mn></msubsup><mo>+</mo><msub><mi>w</mi><mn>3</mn></msub><msubsup><mi>x</mi><mn>3</mn><mn>2</mn></msubsup></mrow><annotation encoding=“application/x-tex”>w_1x_1+w_2x_22+w_3x_32</annotation></semantics></math></span><span aria-hidden=“true” class=“katex-html”><span class=“strut” style=“height:0.8141079999999999em;”></span><span class=“strut bottom” style=“height:1.0622159999999998em;vertical-align:-0.24810799999999997em;”></span><span class=“base textstyle uncramped”><span class=“mord”><span class=“mord mathit” style=“margin-right:0.02691em;”>w</span><span class=“msupsub”><span class=“vlist”><span style=“top:0.15em;margin-right:0.05em;margin-left:-0.02691em;”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span><span class=“reset-textstyle scriptstyle cramped mtight”><span class=“mord mathrm mtight”>1</span></span></span><span class=“baseline-fix”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span></span></span></span></span><span class=“mord”><span class=“mord mathit”>x</span><span class=“msupsub”><span class=“vlist”><span style=“top:0.15em;margin-right:0.05em;margin-left:0em;”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span><span class=“reset-textstyle scriptstyle cramped mtight”><span class=“mord mathrm mtight”>1</span></span></span><span class=“baseline-fix”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span></span></span></span></span><span class=“mbin”>+</span><span class=“mord”><span class=“mord mathit” style=“margin-right:0.02691em;”>w</span><span class=“msupsub”><span class=“vlist”><span style=“top:0.15em;margin-right:0.05em;margin-left:-0.02691em;”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span><span class=“reset-textstyle scriptstyle cramped mtight”><span class=“mord mathrm mtight”>2</span></span></span><span class=“baseline-fix”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span></span></span></span></span><span class=“mord”><span class=“mord mathit”>x</span><span class=“msupsub”><span class=“vlist”><span style=“top:0.24810799999999997em;margin-left:0em;margin-right:0.05em;”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span><span class=“reset-textstyle scriptstyle cramped mtight”><span class=“mord mathrm mtight”>2</span></span></span><span style=“top:-0.363em;margin-right:0.05em;”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span><span class=“reset-textstyle scriptstyle uncramped mtight”><span class=“mord mathrm mtight”>2</span></span></span><span class=“baseline-fix”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span></span></span></span></span><span class=“mbin”>+</span><span class=“mord”><span class=“mord mathit” style=“margin-right:0.02691em;”>w</span><span class=“msupsub”><span class=“vlist”><span style=“top:0.15em;margin-right:0.05em;margin-left:-0.02691em;”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span><span class=“reset-textstyle scriptstyle cramped mtight”><span class=“mord mathrm mtight”>3</span></span></span><span class=“baseline-fix”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span></span></span></span></span><span class=“mord”><span class=“mord mathit”>x</span><span class=“msupsub”><span class=“vlist”><span style=“top:0.24810799999999997em;margin-left:0em;margin-right:0.05em;”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span><span class=“reset-textstyle scriptstyle cramped mtight”><span class=“mord mathrm mtight”>3</span></span></span><span style=“top:-0.363em;margin-right:0.05em;”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span><span class=“reset-textstyle scriptstyle uncramped mtight”><span class=“mord mathrm mtight”>2</span></span></span><span class=“baseline-fix”><span class=“fontsize-ensurer reset-size5 size5”><span style=“font-size:0em;”></span></span></span></span></span></span></span></span></span>
3 小结
-
线性回归的定义【了解】
- 利用回归方程(函数)对一个或多个自变量(特征值)和因变量(目标值)之间关系进行建模的一种分析方式
-
线性回归的分类【知道】
- 线性关系
- 非线性关系
2.2 线性回归api初步使用
学习目标
- 知道线性回归api的简单使用
1 线性回归API
-
sklearn.linear_model.LinearRegression()
- LinearRegression.coef_:回归系数
2 举例
2.1 步骤分析
- 1.获取数据集
- 2.数据基本处理(该案例中省略)
- 3.特征工程(该案例中省略)
- 4.机器学习
- 5.模型评估(该案例中省略)
2.2 代码过程
- 导入模块
- 构造数据集
- 机器学习-- 模型训练
3 小结
-
sklearn.linear_model.LinearRegression()
- LinearRegression.coef_:回归系数