![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
机器学习
m0_38056893
没怎么在用了,评论可能没回复
展开
-
anaconda下安装opencv库
打开Anaconda Prompt,输入pip install opencv-python。原创 2019-12-11 15:25:05 · 1213 阅读 · 0 评论 -
机器学习 -- 梯度下降法(Ⅸ 梯度下降法的总结)
对比批量梯度下降法和随机梯度下降法: 维度 批量梯度下降法 随机梯度下降法 计算方式 每次对所有的样本看一遍才可以计算出梯度 每一次只需观察一个样本 速度 慢 快 稳定性 高,...原创 2019-11-23 10:10:51 · 221 阅读 · 1 评论 -
机器学习 -- 梯度下降法(Ⅷ 随机梯度下降法)
之前这种梯度下降法又称为批量梯度下降法(Batch Gradient Descent) 梯度下降法每次求梯度都需要将所有的样本代入进行运算,当样本的数量较大时,耗费的时间将会很多。为了改进,提出了随机梯度下降法。它采用的公式如下,即每次只取1个样本进行运算。由于是随机的,所以不能保证每次损失函数都能是下降的趋势。 由于我们使用的是随机梯度下降法,所以导致...原创 2019-11-23 09:57:30 · 364 阅读 · 0 评论 -
机器学习 -- 多项式回归(Ⅸ L1,L2正则和弹性网)
比较Ridge和LASSO一. L1,L2正则1. 明可夫斯基距离:2.范数:3. L1正则项和L2正则项:模型正则化中,通常不会使用p>2的正则项。4. L0正则:让 的个数尽量小(非零 元素个数)实际上不用L0正则,因为L0正则的优化是一个NP难的问题,一般用L1取代。二. 弹性网 Elastic Net ...原创 2019-11-22 20:54:20 · 669 阅读 · 0 评论 -
机器学习 -- 多项式回归(Ⅷ LASSO回归 LASSO Regression)
1. LASSO回归(LASSO Regression)2. LASSO回归和岭回归对比:3. 编程实现LASSO回归from sklearn.linear_model import Lassodef LassoRegression(degree, alpha): return Pipeline([ ("poly", PolynomialFe...原创 2019-11-22 20:41:56 · 1452 阅读 · 0 评论 -
机器学习 -- 多项式回归(Ⅶ 岭回归 Ridge Regression)
岭回归Ridge Regression(模型正则化的方式之一) 编程实现岭回归:(1)导入数据集import numpy as npimport matplotlib.pyplot as plt# 模型样本np.random.seed(42)x = np.random.uniform(-3.0, 3.0, size=100)X = x.reshape(-1,...原创 2019-11-22 20:18:17 · 2603 阅读 · 0 评论 -
机器学习 -- 多项式回归(Ⅵ 偏差方差均衡 Bias Variance Trade off)
一. 偏差与方差偏差描述样本偏离实际值的情况,方差描述样本的分布疏密情况。下图中红色点为真值,蓝色点为样本点,描绘了不同偏差和方差分布情况:1. 一般来说,模型的误差 = 方差(Bias) + 偏差(Variance) + 不可避免的误差(例如测量带来的精度损失、噪声等)2. 导致偏差和方差的因素: 导致偏差的原因,可能是对模型的假设是错误的,例如用线性的假设去预...原创 2019-11-22 20:00:10 · 591 阅读 · 0 评论 -
机器学习 -- 多项式回归(Ⅴ 验证数据集与交叉验证)
一. 验证数据集 如图所示。为了得到泛化能力强的模型,将数据分为测试数据和训练数据,当模型在测试数据也有较好的拟合效果时,则可以说模型的泛化能力较强。但是依然存在一个问题,一旦训练数据得出的模型在测试数据没有得到较好的效果,则需要调整测试数据的参数,换言之,其实就是为了使模型更好地拟合测试数据集,带来的问题就是该模型对于测试数据集将可能是个过拟合的。为此将数据集分成三部分,引入验...原创 2019-11-22 15:50:53 · 1683 阅读 · 0 评论 -
机器学习 -- 多项式回归(Ⅳ 学习曲线)
1. 什么是学习曲线?随着训练样本的逐渐增多,算法训练出的模型的表现能力的变化情况。2. 学习曲线的比较(1)生成测试用例import numpy as npimport matplotlib.pyplot as pltx = np.random.uniform(-3, 3, size=100)X = x.reshape(-1, 1)# 一元二次方程y = 0....原创 2019-11-22 14:55:03 · 1032 阅读 · 1 评论 -
机器学习 -- 多项式回归(Ⅲ 过拟合(overfitting) 和 欠拟合(underfitting))
一. 定义 我们实际希望的,是在新样本上能表现得很好的学习器。为了达到这个目的,应该从训练样本中尽可能学出适用于所有潜在样本的“普遍规律”,这样才能在遇到新样本时做出正确的判别.然而,当学习器把训练样本学得“太好”了的时候,很可能巳经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降这种现象在机器学习中称为“过拟合”。与"过拟合"相对的是“...原创 2019-11-22 09:48:12 · 2195 阅读 · 0 评论 -
机器学习 -- 多项式回归(Ⅱ scikit-learn中的多项式回归于pipeline)
简单案例(1)导入数据集import numpy as npimport matplotlib.pyplot as pltx = np.random.uniform(-3, 3, size=100)X = x.reshape(-1, 1)# 一元二次方程y = 0.5 * x ** 2 + x + 2 + np.random.normal(0, 1, size=100)(...原创 2019-11-22 09:34:15 · 757 阅读 · 1 评论 -
机器学习 -- 多项式回归(Ⅰ 什么是多项式回归)
之前的线性回归具有很大的局限性,它假设我们数据背后存在线性关系,然而实际上更多数据间存在的关系是非线性的。多项式回归方法可以通过非常简单的手段改进线性回归法,使得他们能对非线性数据进行预测。 以上这样的方式,就是所谓的多项式回归。相当于我们为样本多添加了一些特征,这些特征是原来样本的多项式项,增加了这些特征之后,我们可以使用线性回归的思路更好的我们的数据。...原创 2019-11-21 21:46:03 · 1604 阅读 · 0 评论 -
机器学习 -- PCA(Ⅵ 使用PCA降噪)
回顾之前的案例: 数据集展现出如上结果,可是有没有可能数据集本身就是一条直线。换句话说,这个数据集展现的是在一根直线上下进行抖动式的分布,实际上这种抖动和这根直线本身的距离是噪音。这个噪音的产生原因可能有很多,如测量人员的粗心,测量手段有问题等等原因,都会使得我们在现实世界中采集的数据是有噪音的。 我们使用PCA进行降维然后在反转回原来的维度,经过这样一个操...原创 2019-11-21 19:00:56 · 2527 阅读 · 2 评论 -
机器学习 -- PCA(Ⅴ scikit-learn中的PCA)
使用sklearn中的PCA对datasets的digits进行操作。(1)导入坐标并加载数据集import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasetsdigits = datasets.load_digits()X = digits.datay = digits.target...原创 2019-11-20 21:14:43 · 368 阅读 · 0 评论 -
机器学习 -- PCA(Ⅳ 高维数据向低维数据映射)
对于一个m行n列的数据集X,代表有m个样本n个特征。通过我们前面学习的主成分分析法,假设我们已经求出了针对这个数据来说的前k个主成分,每一个主成分对应一个单位方向,用W来表示。W也是一个矩阵,他有k行,代表我们求出的前K个主成分,每一行有n列,代表每一个主成分的坐标轴应该是有n个元素的。这是因为我们的主成分分析法主要就是将数据从一个坐标系转化成了另外一个坐标系,原来这个坐标系有n个...原创 2019-11-20 20:29:53 · 1916 阅读 · 0 评论 -
机器学习 -- PCA(Ⅲ 求数据的前n个主成分)
上一节实现的只是将二维数据降维至一维数据,而若数据有多维,我们可能不止需要一个主成分。问题:求出第一主成分后,如何求出下一个主成分?解决方法:(1)数据进行改变,将数据在第一个主成分上的分量去掉。(2)在新的数据上求第二主成分。(3)以此类推循环往复。详解:(1)将数据在第一个主成分上的分量去掉。由上图,通过之前可知:则:将数据去掉在主成分上的分...原创 2019-11-20 19:31:02 · 1113 阅读 · 0 评论 -
机器学习 -- PCA(Ⅱ 梯度上升法解决主成分分析问题)
一. 原理经过上一节,我们有如下结论。1. 目标:求w,使得f(X)最大。其中:2. 梯度可表示为:即:对其进行向量化处理:也可写成:故将梯度向量化结果为:二. 实现1. 生成数据集(1)导入需要的模块和包import numpy as npimport matplotlib.pyplot as plt(2)生成...原创 2019-11-20 16:54:07 · 679 阅读 · 1 评论 -
机器学习 -- PCA(Ⅰ PCA介绍)
1. PCA是什么? PCA,全称Principal Component Analysis(主成分分析)。主成分分析法本身是一个非监督的机器学习算法,主要用于数据的降维。降维可以发现更便于人们理解的特征。主成分分析法也有其他应用:如可视化;去噪。举例:如图所示有二维平面,横轴和纵轴分别代表不同特征,坐标上有如下样本。要将此二维特征进行降维,则考虑以下两种方式...原创 2019-11-20 15:27:40 · 6341 阅读 · 0 评论 -
机器学习 -- 支持向量机SVM(Ⅵ SVM中的核函数)
一. 什么是核函数? 支持向量机算法分类和回归方法中都支持线性和非线性类型的数据。非线性类型通常在二维平面不可分,为了使数据可分,需要通过一个函数将原始数据映射到高维空间,从而使得数据在高维空间很容易区分,这样就能达到数据分类或回归的目的,而实现这一目标的函数就称为核函数。二. 为什么要使用核函数? 因为在从低维空间映射到高维空间时,样本向量会不断做内...原创 2019-11-18 20:47:29 · 789 阅读 · 0 评论 -
机器学习 -- 支持向量机SVM(Ⅴ SVM处理非线性数据问题)
datasets中make_moons()函数:(1)函数定义Signature:datasets.make_moons( n_samples=100, shuffle=True, noise=None, random_state=None,)Docstring:Make two interleaving half circlesA simpl...原创 2019-11-17 21:38:03 · 835 阅读 · 0 评论 -
机器学习 -- 支持向量机SVM(Ⅳ sklearn中的SVM)
使用SVM算法和使用kNN一样,要做数据标准化处理(涉及距离,需要统一量纲)。(1)导入所需的模块和包import numpy as npimport matplotlib.pyplot as pltfrom sklearn import datasets(2)加载并提取部分数据集iris = datasets.load_iris()X = iris.datay = ...原创 2019-11-17 21:03:36 · 298 阅读 · 0 评论 -
机器学习 -- 支持向量机SVM(Ⅲ Soft Margin和SVM的正则化)
当有一个蓝色点位于如下位置时,变成了一个线性不可分的问题。Soft Margin SVM1. 目的 让分类错误的点越少越好,而不是必须将所有点分类正确,也就是允许有noise存在。这种做法很大程度上不会使模型过于复杂,不会造成过拟合,而且分类效果是令人满意的。2. 宽松约束条件:,其中。对每个数据点都有对应的容错空间。即允许一些数据点在如下直线与...原创 2019-11-17 20:16:21 · 582 阅读 · 1 评论 -
机器学习 -- 支持向量机SVM(Ⅰ SVM简介)
一. 算法概述 支持向量机(SVM)是用来解决分类问题的。作为数据挖掘领域中一项非常重要的任务,分类目前在商业上应用最多。而分类的目的是构造一个分类函数或分类模型,该模型能把数据库中的数据项映射到给定类别中的某一个,从而可以预测未知类别。二. 算法分类 支持向量机可以分为线性可分支持向量机(又称硬间隔支持向量机)、线性支持向量机和非线性支持向量机(又称...原创 2019-11-17 19:49:46 · 727 阅读 · 0 评论 -
机器学习 -- 支持向量机SVM(Ⅱ 支持向量机思想 Hard Margin SVM)
一. 数学基础(1)点到直线的距离:点(x, y)到直线Ax + By + C = 0的距离为: (与截距C无关)(2)拓展到n维空间: ==> 其中:二. 数学推导支持向量机思想如图所示,用于分类的超平面可以用函数表示。我们可以做如下定义:当f(x) = 0时,x便是位于超平面的点;f(x) > 0...原创 2019-11-17 19:52:12 · 201 阅读 · 0 评论 -
机器学习 -- K-MEANS算法(Ⅱ K-MEANS概述)
一. 介绍 k-Means算法是最经典的基于划分的聚类算法。所谓基于划分的方法是将样本集组成的矢量空间预先初始化,划分为多个区域,每个区域有一个区域中心,对于每个样本,可以建立一种样本到区域中心的映射。通过不断的迭代,不断的重新定位,从一个组移动到另一个组来进行划分。不同的映射方式产生不同的基于划分的聚类算法.k-means算法要求样本点与中心点的欧几里得距离最小。二...原创 2019-11-17 16:23:00 · 512 阅读 · 0 评论 -
机器学习 -- K-MEANS算法(Ⅰ 聚类概述)
聚类是一种无监督的学习,它将相似的对象归到同一个簇中。聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇。聚类方法几乎可以应用于所有对象,簇内的对象越相似,聚类的效果越好。聚类的概念(1)聚类就是将集合划分成由类(相)似的对象组成的多个类的过程。(2)聚类分析是研究(样品或指标)分类问题的一种统计分析方法。(3)聚类所要求划分的类是未知的,一般把它理解为...原创 2019-11-17 16:08:04 · 401 阅读 · 0 评论 -
机器学习 -- K-MEANS算法(Ⅲ KMEANS迭代过程可视化展示)
网址:https://www.naftaliharris.com/blog/visualizing-k-means-clustering/1. 选择初始化中心点的选择方式为随机选择。2. 随便选择一个类型的数据集,这边选择Gaussian Mixture数据。3. 选择完进入初始数据中。左下角有一个添加中心点。4. 这边我们点击三次即为初始化三个点(K=3):...原创 2019-11-17 15:33:34 · 1750 阅读 · 0 评论 -
机器学习 -- 梯度下降法(Ⅶ 梯度下降法向量化计算实际数据)
本次我们利用之前向量化的梯度下降法进行波士顿房价预测。1. 线性回归模型:里面包含正规化方程训练模型和梯度下降法训练模型的方式。import numpy as npfrom sklearn.metrics import r2_scoreclass LinearRegression: # 初始化LinearRegression模型 def __init__(sel...原创 2019-11-12 21:58:03 · 349 阅读 · 0 评论 -
机器学习 -- 梯度下降法(Ⅵ 线性回归中梯度下降法的向量化)
一. 改为向量化公式上节中我们求得梯度下降的计算公式如下:对上式子进行向量化处理。(1)首先将第0项和其他项进行统一:(X0恒等于1)进一步化成矩阵的乘法:(2)最后转置得梯度为:二. 修改梯度的函数实现方式:(1)原本计算的代码:def dJ(theta, X_b, y): res = np.empty(len(theta)) ...原创 2019-11-12 21:34:07 · 338 阅读 · 0 评论 -
机器学习 -- jieba库
一. jieba库是什么?1. jieba库是一个用于NLP,即自然语言分析的工具。2. 中文是紧凑连接的,词与词之间不用空格来分割,而当我们进行自然语言处理或者语音识别,或者进行其他的文本操作时,在大部分情况下,词汇是文本的核心,是进行文本处理的前提。因此我们需要一个能把完整文本分解为具体的词的简单高效的工具,为文本处理做出更加准确的词库。这样的操作称为“分词”。jieba是一个对新手非...原创 2019-11-12 20:39:19 · 1778 阅读 · 0 评论 -
机器学习 -- 梯度下降法(Ⅴ 在线性回归模型中使用梯度下降法)
一. 构建一个简单的数据集1. 导入需要的模块和包:import numpy as npimport matplotlib.pyplot as plt2. 生成一组一维向量x,有100个样本,每个样本只有一个特征。通过线性方式生成y,y = 3x + 4 + 噪音。np.random.seed(666)x = 2 * np.random.random(size=100)y...原创 2019-11-11 20:42:41 · 922 阅读 · 0 评论 -
机器学习 -- 梯度下降法(Ⅳ 多元线性回归中的梯度下降法)
之前都使用二次曲线作为损失函数进行梯度下降法过程的模拟。本次将梯度下降法应用在多元线性回归中。由于多元线性回归中θ 为一组向量,故将J对θ求导变为J对θ向量分别求偏导。目标:根据上式发现:计算出的梯度大小与样本数量有关,若样本数量越大则梯度越大。(不合理)要使每个梯度求出来的值与m无关,故我们将整个梯度值除以m。...原创 2019-11-11 10:59:18 · 402 阅读 · 0 评论 -
机器学习 -- 梯度下降法(Ⅲ 绘制梯度下降过程和梯度下降函数的实现)
一. 梯度下降过程绘制上节仅仅给出计算梯度下降的过程,本次则通过matplotlib绘制梯度下降的过程。(1)初始化参数θ值。(2)设置一个保存所有θ值的数组theta_history,每取一个新的θ值则将其保存。(3)循环更新θ值和损失函数J(θ)的值,直到满足精度要求。(4)以红色的"*"作为标记标记出学习的过程。theta = 0.0theta_history =...原创 2019-11-11 10:44:55 · 1169 阅读 · 0 评论 -
机器学习 -- 梯度下降法(Ⅱ 模拟实现梯度下降法)
模拟梯度下降法过程1. 导入需要的模块和包:import numpy as npimport matplotlib.pyplot as plt2. 选取-1到6之间的141个点作为x的取值(参数θ):plot_x = np.linspace(-1, 6, 141)plot_x查看所有x取值的点的值:3. 假设函数y = f(x)对应的方程为y = (x - 2....原创 2019-11-11 10:28:00 · 265 阅读 · 0 评论 -
机器学习 -- 梯度下降法(Ⅰ 初识梯度下降法)
梯度下降法(Gradient Decend)1. 梯度下降法不是一个机器学习的算法,而是一种基于搜索的最优化方法。2. 作用:最小化一个损失函数。目标:找到一个最合适的参数theta,使得损失函数J达到最小。导数代表参数单位θ变化时,J相应的变化:3.学习率η:梯度下降法的一个超参数。η的取值影响获得最优解的速度;若η取值不合适,甚至得不到最优解。(...原创 2019-11-11 10:11:48 · 282 阅读 · 0 评论 -
机器学习 -- 已完成笔记汇总
KNN算法(共12节):机器学习 -- KNN算法(Ⅰ 初步认识KNN)机器学习 -- KNN算法(Ⅱ 肿瘤预测案例)机器学习 -- KNN算法(Ⅲ 肿瘤预测案例 -- 封装成函数)机器学习 -- KNN算法(Ⅳ 使用sklearn中的kNN)机器学习 -- KNN算法(Ⅴ 构建属于自己的KNN分类器)机器学习 -- KNN算法(Ⅵ 数据集的拆分)机器学习 -- KNN...原创 2019-11-10 12:12:51 · 2328 阅读 · 3 评论 -
机器学习 -- 多元线性回归(Ⅱ 多元线性回归预测波士顿房价)
(1)自定义一个用于实现多元线性回归的类:import numpy as npfrom sklearn.metrics import r2_scoreclass LinearRegression: # 初始化LinearRegression模型 def __init__(self): self.coef_ = None self.in...原创 2019-11-10 10:54:05 · 1510 阅读 · 0 评论 -
机器学习 -- KNN算法(十三 使用归一化后的数据进行KNN算法分类)
使用归一化后的数据进行KNN算法分类1. 导入需要的模块和包:import numpy as npfrom sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom sklearn.neighbors import KNeighborsClassifierfrom sklearn...原创 2019-11-10 09:21:16 · 731 阅读 · 0 评论 -
机器学习 -- KNN算法(十二 使用sklearn进行数据归一化处理)
1. 对测试数据集归一化的方法2. 使用sklearn中的Scalar(1)导入需要的包:import numpy as npfrom sklearn import datasetsfrom sklearn.model_selection import train_test_splitfrom sklearn.preprocessing import StandardSca...原创 2019-11-10 09:21:05 · 977 阅读 · 0 评论 -
机器学习 -- KNN算法(十一 数据归一化)
一. 为什么需要数据归一化?假设有如下数据,当我们在计算距离的时候会发现样本间的距离被发现时间所主导,此时就需要进行数据的归一化操作。二. 归一化:将所有数据映射到同一尺度。1. 最值归一化:将所有数据映射到0到1之间。(1)适用场景:适用于分布有明显边界的情况;受outlier影响较大。(2)计算公式:2. 均值方差归一化(standardization):...原创 2019-11-09 19:33:13 · 2765 阅读 · 0 评论