第二节:特征选择
特征选择 特征工程在工业上有这么一句广为流传的话:数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。接下来将给你介绍特征工程的第一个分支,特征选择。 对于一个学习任务来说,如果某一个特征和我们的学习任务没有太大关系,我们把它称之为无关特征(irrelevant feature),如个人…
2021-8-05 17:40
|
111
|
|
3182 字
|
12 分钟
第三节:主成分分析(PCA)
主成分分析(PCA) 维数灾难和降维 在KNN算法中曾讲到,对于高维数据,会出现数据样本稀疏、距离计算困难等问题。但是这种问题并不是仅仅针对KNN算法,只是在KNN算法中这种问题会被放大,而其他的机器学习算法也会因为高维数据对训练模型造成极大的障碍,这种问题一般被称为维数灾难(curse of dimensionality)…
2021-8-05 17:43
|
130
|
|
2783 字
|
12 分钟
第四节:scikit-learn库之主成分分析
scikit-learn库之主成分分析 PCA在scikit-leran库中的sklearn.decomposition包下,PCA即最普通的PCA,PCA也有很多变种,我们主要会讲解PCA,然后聊一聊KernelPCA、IncremetalPCA、SparsePCA、MiniBatchSparsePCA。 &e…
2021-8-05 17:45
|
102
|
|
1278 字
|
6 分钟
第五节:主成分分析代码(手写数字识别)
主成分分析代码(手写数字识别) 导入模块 import time import numpy as np import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties %matplotlib inline font = FontProperties…
2021-8-05 17:47
|
86
|
|
297 字
|
2 分钟
第六节:模型选择
模型选择 机器学习是在某种假设上对数据的分析,基于该假设即可构造多个模型获得预测值,通过比较多个模型间真实值与预测值之间的误差即可获得一个较优的模型。 由于机器学习不是预言而是预测。因此机器学习可能会出现欠拟合和过拟合的现象,即如果模型拟合效果不好,则是欠拟合,对于欠拟合问题通常增大训练数据量即可;但…
2021-8-05 17:52
|
118
|
|
4603 字
|
18 分钟
第一篇:Bagging算法和随机森林
Bagging算法和随机森林 集成学习主要分成两个流派,其中一个是Boosting算法,另一个则是本文要讲的Bagging算法,Bagging算法 算法的弱学习器是没有依赖关系的,因此弱学习之间可以并行拟合。 Bagging算法中最著名的算法是随机森林,由于随机森林的不容易过拟合性以及简便性,可以说是…
2021-8-05 17:24
|
101
|
|
2239 字
|
9 分钟
第二篇:随机森林代码(葡萄酒质量检测)
随机森林代码(葡萄酒质量检测) 导入模块 import pandas as pd from sklearn import datasets 导入数据 [rml_read_more]: X, y = datasets.load_wine(return_X_y=True) 数据预处理 le = LabelEncoder() # 把label转换为0和1…
2021-8-05 17:25
|
85
|
|
42 字
|
几秒读完
第三篇:scikit-learn库之随机森林
scikit-learn库之随机森林 本文主要介绍随机森林的两个模型RandomForestClassifier和RandomForestRegressor,这两个模型调参包括两部分,第一部分是Bagging框架,第二部分是CART决策树的参数。本文会详解介绍RandomForestClassifier模型,然后会对比着讲解…
2021-8-05 17:28
|
90
|
|
1635 字
|
7 分钟
XgBoost算法
XgBoost算法 XgBoost算法(eXtreme Gradient Boosting)属于Boosting系列算法,更多的是基于GBDT算法的一个进阶算法。本文假设XgBoost算法使用的弱学习器为决策树。 XgBoost算法学习目标 XgBoost算法目标函数 XgBoost算法正则化项 XgBoost算法最小化目标…
2021-8-05 17:17
|
98
|
|
2344 字
|
11 分钟
第四篇:梯度提升算法代码(鸢尾花分类)+交叉验证调参
梯度提升算法代码(鸢尾花分类)+交叉验证调参 导入模块 import numpy as np import matplotlib.pyplot as plt font = FontProperties(fname='/Library/Fonts/Heiti.ttc') 导入数据 iris_data = load_iris() X…
2021-8-05 17:13
|
94
|
|
155 字
|
1 分钟内
第一篇:提升树
提升树 提升树(boosting tree)是以分类树或回归树作为弱学习器的强学习器。 提升树模型用的是加法模型,算法用的是前向分步算法,弱学习器是决策树的集成学习方法。 提升树学习目标 加法模型 前向分步算法 提升树与AdaBoost算法 回归提升树流程 提升树优缺点 提升树引入 &em…
2021-8-05 17:05
|
107
|
|
1467 字
|
7 分钟
第二篇:梯度提升树
梯度提升树 梯度提升树(gradien boosting decision tree,GBDT)在工业上用途广泛,属于最流行、最实用的算法之一,梯度提升树可以看成是提升树的优化版。 梯度提升树学习目标 梯度提升树和提升树 回归梯度提升树流程 梯度提升树优缺点 梯度提升树详解 梯度提升树和提升树 梯度提…
2021-8-05 17:06
|
86
|
|
728 字
|
4 分钟
第三篇:scikit-learn库之梯度提升树
scikit-learn库之梯度提升树 本文主要介绍梯度提升树的两个模型GradientBoostingClassifier和GradientBoostingRegressor,这两个模型调参包括两部分,第一部分是Bagging框架,第二部分是CART决策树的参数。本文会详解介绍GradientBoostingClassif…
2021-8-05 17:08
|
93
|
|
2007 字
|
9 分钟
第一篇:AdaBoost算法引入
AdaBoost算法 集成学习中弱学习器之间有强依赖关系的,称之为Boosting系列算法,而AdaBoost则是Boosting系列算法中最著名的算法之一。 AdaBoost算法强大之处在于既可以解决分类问题,又可以解决回归问题。 AdaBoost算法学习目标 AdaBoost算法目标函数优化 强分…
2021-8-05 16:59
|
88
|
|
2329 字
|
11 分钟
第二篇:scikit-learn库之AdaBoost算法
scikit-learn库之AdaBoost算法 当我们对Adaboost调参时,主要要对两部分内容调参,第一部分是对Adaboost的框架进行调参,第二部分是对弱学习器调参。本文主要介绍AdaBoost的两个模型AdaBoostClassifier和AdaBoostRegressor,会详解介绍AdaBoostClassi…
2021-8-05 17:01
|
108
|
|
866 字
|
4 分钟
第三篇:AdaBoost算法代码(鸢尾花分类)
AdaBoost算法代码(鸢尾花分类) 导入模块 import numpy as np import matplotlib.pyplot as plt from matplotlib.colors import ListedColormap %matplotlib inline font = FontProperties(fname='/…
2021-8-05 17:03
|
121
|
|
235 字
|
1 分钟内
集成学习基础
集成学习基础 集成学习(ensemnle learning)通过构建并结合多个学习器来完成学习任务,集成学习可以用于分类问题集成、回归问题集成、特征选取集成、异常点检测集成等等。 集成学习基础学习目标 集成学习构成 Boosting和Bagging 平均法、投票法和学习法 集成学习基础引入 # 集成学习基础引入图例 impo…
2021-8-05 16:57
|
126
|
|
2296 字
|
9 分钟
K-Means聚类算法
K-Means聚类算法 K-means聚类算法属于无监督学习算法,它实现简单并且聚类效果优良,所以在工业界也被广泛应用。同时K-Means聚类算法也有大量的变体,本文将从最传统的K-Means聚类算法讲起,让后在其基础上讲解K-Means聚类算法的变体,其中它的变体包括初始化优化K-Means++、距离计算优化elkan K…
2021-8-05 16:56
|
109
|
|
2731 字
|
11 分钟
支持向量机总结
支持向量机总结 支持向量机中有线性可分支持向量机、线性支持向量机、非线性支持向量机、线性支持回归等算法,算是前期比较繁琐的一个内容,如果感觉自己还是对间隔最大化、支持向量等知识点不太了解的,可以对着简单的感知机模型多看几遍,多揣摩揣摩,如果对对偶形式优化不太懂得,可以参考拉格朗日乘子法多看一看,如果不涉及太深,优化方面仅做了…
2021-8-05 16:42
|
88
|
|
420 字
|
2 分钟
支持向量回归
支持向量回归 传统回归模型如线性回归,对于样本$(x,y)$是直接基于模型,通过预测值$f(x_i){y}$和真实值$y$之间的差别计算损失,并且当$f(x_i){y}=y$时损失才为零。 支持向量回归(support vector regression, SVR)则可以容忍$f(x_i){y}$和$…
2021-8-05 16:41
|
99
|
|
1848 字
|
9 分钟
scikit-learn库之支持向量机
scikit-learn库之支持向量机 在scikit-learn库中针对数据是否线性可分,主要将支持向量机分为以下三种分类模型LinearSVC、SVC和NuSVC;还有三种回归模型LinearSVR、SVR和NuSVR。 接下来将会讨论上述六者的区别,由于SVC应用场景较为广泛,主要细讲SVC,其…
2021-8-05 16:39
|
104
|
|
1469 字
|
6 分钟
非线性支持向量机(鸢尾花分类)+自定义随机数据
非线性支持向量机(鸢尾花分类)+自定义随机数据 导入模块 import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline font = FontProperties(fname='/Library/Fonts/Heiti.t…
2021-8-05 16:38
|
138
|
|
99 字
|
1 分钟内
非线性支持向量机
非线性支持向量机 支持向量机分为三种,线性可分支持向量机和线性支持向量机都是对线性可分的数据做处理,线性支持向量机也仅仅是对异常值做处理,并不是真正的对非线性可分数据做处理,接下来将会介绍支持向量机的第三种方法非线性支持向量机(non-linear support vector machine)。 非线性支持向量机学习目标 …
2021-8-05 16:36
|
97
|
|
3081 字
|
13 分钟
线性支持向量机(鸢尾花分类)
线性支持向量机(鸢尾花分类) 导入模块 import numpy as np import pandas as pd import matplotlib.pyplot as plt %matplotlib inline font = FontProperties(fname='/Library/Fonts/Heiti.ttc')…
2021-8-05 16:33
|
92
|
|
82 字
|
1 分钟内
线性支持向量机
线性支持向量机 在线性可分支持向量机中说到线性可分支持向量机有一个缺点是无法对异常点做处理,也正是因为这些异常点导致数据变得线性不可分或者会因为它的正好被判断为支持向量导致模型的泛化能力变差。 # 异常点导致数据线性不可分图例 import matplotlib.pyplot as plt font = FontProper…
2021-8-05 16:30
|
95
|
|
3147 字
|
14 分钟
线性可分支持向量机
线性可分支持向量机 线性可分支持向量机学习目标 线性可分支持向量机、线性支持向量机、非线性支持向量机区别 函数间隔与几何间隔 目标函数与目标函数的优化问题 支持向量机引入 支持向量机(support vector machines,SVM)诞生二十多年,由于它良好的分类性能席卷了机器学习领域,如果不考虑集成学习、不考虑特定的…
2021-8-05 16:27
|
102
|
|
4952 字
|
21 分钟
朴素贝叶斯(垃圾邮件分类)
朴素贝叶斯(垃圾邮件分类) 邮箱训练集下载地址 邮件训练集下载地址https://pan.baidu.com/s/1uwDJJeJAr-DX82XlCRGR9Q 模块导入 import re import os from jieba import cut from sklearn.naive_bayes import Mul…
2021-8-05 16:24
|
106
|
|
67 字
|
几秒读完
scikit-learn库之朴素贝叶斯
scikit-learn库之朴素贝叶斯 在scikit-learn库中朴素贝叶斯由于数据分布的不同,主要分为以下三种BernoulliNB、GaussianNB和MultinomialNB,先验分布分别对应伯努利分布、高斯分布和多项式分布。 接下来将会讨论这三者的区别,由于MUltinomiallNB…
2021-8-05 16:21
|
98
|
|
867 字
|
4 分钟
朴素贝叶斯引入
朴素贝叶斯 朴素贝叶斯是基于贝叶斯公式与特征条件独立假设的分类方法(注:贝叶斯公式是数学定义,朴素贝叶斯是机器学习算法)。朴素贝叶斯基于输入和输入的联合概率分布,对于给定的输入,利用贝叶斯公式求出后验概率最大的输出$y$。即可以总结为以下三点 已知类条件概率密度函数表达式和先验概率 利用贝叶斯公式转换成后验概率 根据后验概率…
2021-8-05 16:19
|
85
|
|
2925 字
|
13 分钟
决策树(鸢尾花分类)
决策树(鸢尾花分类) 导入模块 import numpy as np ListedColormap font = FontProperties(fname='/Library/Fonts/Heiti.ttc') 获取数据 iris_data = datasets.load_iris() X = iris_data.data[:,…
2021-8-05 16:16
|
126
|
|
44 字
|
几秒读完