自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(110)
  • 资源 (1)
  • 收藏
  • 关注

原创 window10+VS2017下配置opencv4.0.1

因为VS2017在之前就已经装好了,所以这里就不介绍如何安装VS2017了,不会的朋友可以另外百度一下,接下来讲解一下如何安装opencv4.0.1。一、下载并安装opencv4.0.11. 官网下载opencvhttps://opencv.org/releases.htmlwindow操作系统下载Win pack版本,这里下载了最新的opencv版本4.0.1...

2019-04-04 14:42:11 631 1

原创 10种主要的统计学习方法总结

《统计学习方法》笔记1.感知机适用问题:二分类问题模型特点:分离超平面模型类型:判别模型学习策略:极小化误分类点到超平面距离学习的损失函数:误分类点到超平面距离学习算法:随机梯度下降法2.k近邻适用问题:多类分类,回归模型特点:特征空间,样本点模型类型:判别模型3.朴素贝叶斯法适用问题:多类分类模型特点:特征与类别的联合概率分布、条件独立假设...

2019-03-19 16:33:07 2152

原创 《Python机器学习基础教程》处理文本数据

《Python机器学习基础教程》笔记一、文本数据中的数据类型一般有如下四种类型:①分类数据:来自固定列表中的数据(例如,红、黄、蓝)。②可以在语义上映射为类别的自由字符串:表达上自由发挥,但归根结底能与固定的类别对应(例如,倾国倾城的烈焰红色——红)。③结构化字符串数据:不与固定的类别对应(例如,地址,人名,地名)。④文本数据:由单词组成的文本(例如,一篇文章)二、将文...

2019-03-14 20:40:21 751

原创 《Python机器学习基础教程》构建管道(make_pipeline)

《Python机器学习基础教程》笔记 大多数机器学习应用不仅需要应用单个算法,而且还需要将许多不同的处理步骤和机器学习模型链接在一起,例如对数据进行缩放,然后手动合并特征,再利用无监督学习来学习特征。为了简化构建变换和模型链的过程,Scikit-Learn提供了pipeline类,可以将多个处理步骤合并为单个Scikit-Learn估计器。pipeline类本身具有fit、pre...

2019-03-12 21:01:32 16464

原创 《Python机器学习基础教程》模型评估指标(精度、混淆矩阵、准确率、召回率、f-分数、准确率召回率曲线、ROC曲线以及AUC)

《Python机器学习基础教程》笔记总结监督模型在给定数据集上的表现有很多种方法,例如,精度、混淆矩阵、准确率、召回率、f-分数、准确率召回率曲线、ROC曲线以及AUC。下面先以二分类为例,解释各种评估指标的含义,然后再拓展多分类的指标,最后简单介绍一下回归指标。一、二分类首先需要掌握几个术语的含义:①假正例(FP):预测错误,预测为“正”类,但实际是“反”类。②假反例(FN)...

2019-03-12 19:44:50 2949

原创 《Python机器学习基础教程》网格搜索GridSearchCV

《Python机器学习基础教程》笔记 机器学习模型的泛化性能可以通过调参来提升,但找到一个模型的重要参数(提供最佳泛化性能的参数)的取值是一项棘手的任务,不过,Scikit-Learn中有一些标准方法可以帮助找到最佳参数,最常用的方法就是网格搜索,主要是尝试我们关心的参数的所有可能组合。 接下来先根据网格搜索的思路,用自己的代码实现最优参数值搜索,以便理解,然后...

2019-03-12 16:59:01 3132

原创 《Python机器学习基础教程》各种交叉验证方法

《Python机器学习基础教程》笔记 交叉验证时一种评估泛化性能的统计学方法,它比单次划分训练集和测试集的方法更加稳定、全面。最常用的交叉验证是k折交叉验证,在此思想上改进的交叉验证方法还有分层交叉验证、打乱划分交叉验证、分组交叉验证、嵌套交叉验证。接下来逐一介绍。1.k折交叉验证原理:将数据划分为大致相等的k折(部分),轮流将某一折作为测试集,其它折作为训练集来训练模型和...

2019-03-11 22:00:21 1286

原创 《Python机器学习基础教程》数据表示与特征工程总结

《Python机器学习基础教程》笔记 数据是机器学习中很重要的一部分,对于不同的应用,数据的收集方式也会有所不同,一般来说,可分为三种特征类型:连续特征、分类特征(离散特征)和文本特征。 连续特征是可以用浮点数的大小去衡量,例如像素明暗程度、花的尺寸等;而分类特征通常不是数值,是固定列表中的元素,例如产品的品牌、产品的颜色等;文本特征,即自然语言。 ...

2019-03-11 21:26:18 587

原创 《Python机器学习基础教程》无监督学习总结

《Python机器学习基础教程》笔记 无监督算法的一个常见应用是作为监督算法的预处理步骤,有时可以提高监督算法的精度,或者减少内存占用和时间开销。不过评估无监督算法却没有什么好方法,唯一的方法就是人工检查。一、无监督学习的分类无监督学习主要有两种类型:数据集变换与聚类。数据集变换:数据集的无监督变换是创建数据新的表示,与数据原始表示相比,新的表示可能更容易被人或其他机器...

2019-03-08 22:04:24 931

原创 机器学习之数据变换——基于Scikit-Learn

《Python机器学习基础教程》笔记一些算法,例如神经网络和SVM对数据缩放非常敏感,因此,通常的做法是对特征进行调节,使数据表示更适合于这些算法。Scikit-Learn中有4中数据变换方法,分别为:1.StandardScaler:确保每个特征的平均值为0,方差为1,使所有特征都位于同一量级。2.RobustScaler:工作原理与StandardScaler类似,但RobustS...

2019-03-08 19:37:17 354

原创 机器学习之分类器的不确定度估计——基于Scikit-Learn

《Python机器学习基础教程》笔记Scikit-Learn接口的一个有用之处就是分类器能够给出预测的不准确定估计,即分类器预测某个测试点属于某个类别的置信程度。Scikit-Learn中有两个函数可以用于获取分类器的不确定度估计:decision_function和predict_proba。大多数分类器都至少有其中一个函数。下面对这两个函数进行简单的介绍:1.decision_fu...

2019-03-08 19:10:08 1384 1

原创 《Python机器学习基础教程》估计器接口小结

《Python机器学习基础教程》笔记Scikit-Learn中的所有算法(预处理、监督学习、无监督学习等)都被实现为类。这些类在Scikit-Learn中叫作估计器,关于估计器的用法,以上做个小结:①首先需要将特定类的对象实例化。②在构建模型对象时,应该设置模型的所有参数。③所有估计器都有fit方法,fit方法要求第一个参数总是数据X,用一个numpy数组或scipy稀疏矩阵表示,...

2019-03-08 16:46:13 208

原创 《Python机器学习基础教程》监督学习总结

《Python机器学习基础教程》笔记一、监督学习的分类监督学习主要有两种:分类与回归。分类问题的目标是预测类别标签,回归任务的目标是预测一个连续值。二、一些术语解释泛化:从训练集中学习出的模型应用到测试集上的能力过拟合:模型在训练集上表现良好,在测试集上表现不好欠拟合:模型在训练集和测试集上表现均不好特征工程:对已有特征做运算,导出新特征(例如,两个特征的积作为新特...

2019-03-07 22:25:38 3156 1

原创 机器学习案例:鸢尾花分类——基于Scikit-Learn

《Python机器学习基础教程》笔记针对鸢尾花分类这个课题,我们按以下步骤进行:①获取数据集②检查数据③构建训练模型④进行预测并评估这只是几个简单的步骤,供初学者熟悉机器学习的大致流程,以及如何使用Scikit-Learn,对于大型工程来说,这些步骤还远远不够的。下面就这几个简单的步骤进行说明。一、获取数据集这里为了简单,直接用Scikit-Learn自带的鸢尾花数...

2019-03-06 19:25:17 6415 3

原创 机器学习必要的库和工具介绍

《Python机器学习基础教程》笔记 本书的所有例程都是基于Scikit-Learn,用Python实现的,因此,首先要保证已经装上了Python,然后,强烈推荐使用Jupyter notebook运行代码,另外,numpy,scipy,matplotlib,pandas也是不可或缺的。如果已经安装了Python和Jupyter notebook,便可以在Jupyter noteb...

2019-03-06 16:22:15 1236

原创 机器学习之高斯混合模型——基于Scikit-Learn

《Python数据科学手册》笔记一、高斯混合模型(GMM)的由来 首先回顾一下k-means模型:它在每一个簇中心放置一个圆圈(在更高维空间中是一个超空间),圆圈半径根据最远的点与簇中心点的距离算出,在圆圈之外的任何点都不是该簇的成员。这里最核心的一点是,k-means要求这些簇的模型必须是圆形,k-算法没有内置的方法来实现椭圆形的簇。因此,拟合非圆形的分类数据时,效果不好。如...

2019-03-05 21:43:42 2471

原创 Scikit-Learn 高版本(0.18版及以上)与低版本(0.18版以上)的部分用法对比

学习《Python数据科学手册》的机器学习部分时,里面所有的处理都是基于Scikit-Learn程序包,但是书上用的Scikit-Learn版本低于0.18,而我安装的Scikit-Learn版本高于0.18,照着书上的代码敲进去运行有时会报错,说没有某某模块,摸索了许久才推敲出来高版本的Scikit-Learn对应的用法。在此将这本书上遇到的高低版本用法不同的地方总结出来,也希望...

2019-03-05 21:07:36 5344 2

原创 机器学习案例:k-means用于色彩压缩——基于Scikit-Learn

《Python数据科学手册》笔记聚类算法的一个有趣应用是图像色彩压缩。高分辨率的图像可能包含几百万种颜色,但是其实很大一部分色彩通常不会被眼睛注意到,而且图像中的很多像素都拥有类似或者相同的颜色,因此,在需要的时候,我们可以对其进行压缩。在此,用k-means实现对一幅包含几百万种颜色的图像将近一百万压缩比的压缩处理。图像来源:Scikit-Learn的datasets模块,原图像存储在一...

2019-03-05 19:24:40 1411 1

原创 机器学习之 k-means聚类——基于Scikit-Learn

《Python数据科学手册》笔记聚类算法直接从数据的内在性质中学习最优的划分结果或者确定离散标签类型。一、k-means需要达到的效果k-means算法在不带标签的多维数据中寻找确定数量的簇,聚类结果应符合以下两个假设:①“簇中心点”是属于该簇的所有数据点坐标的算术平均值。②一个簇的每个点到该簇中心点的距离,比到其他簇中心点的距离短。例如图1的二维数据,应用k-means算...

2019-03-05 16:34:45 390

原创 机器学习之流形学习——基于Scikit-Learn

《Python数据科学手册》笔记流形学习是一种无监督评估器,使用流形学习评估器希望达成的基本目标是:给定一个高维嵌入数据,寻找数据的一个低维表示,并保留数据间的特定关系。流形学习的产生主要是为了弥补主成分分析(PCA)对非线性关系的数据集处理效果不好的缺陷。对“流形”的理解:将一张纸弯折或卷起,嵌入三维空间看上去不再是线性,但实际上并不会改变其平面特性,它仍是一个二维流形。流形法包括:...

2019-03-05 15:25:51 2951 1

原创 机器学习案例:利用主成分分析为人脸数据降维——基于Scikit-Learn

《Python数据科学手册》笔记该案例用的数据集为Scikit-Learn中的Wild数据集。首先将人脸数据中前几个主成分的图像进行可视化,然后再看看这些成分的累计方差,最后根据累计方差图选择合适的主成分对人脸数据进行低维重构,观察效果。一、特征脸from sklearn.datasets import fetch_lfw_peoplefaces = fetch_lfw_peo...

2019-03-04 22:22:36 1410

原创 机器学习之主成分分析——基于Scikit-Learn

《Python数据科学手册》笔记主成分分析(PCA)是一个快速灵活的数据降维无监督方法,是应用最广泛的无监督算法之一。尤其适用于数据可视化、噪音过滤、特征抽取和特征工程等领域。用PCA降维意味着去除一个或多个最小主成分,得到一个更低维度且保留最大数据方差的数据投影。PCA的主要弱点是经常受数据集的异常点影响。一、“主成分”的含义例如如下的数据点(左图),可以找出一个主轴(右图长...

2019-03-04 21:28:30 679

原创 机器学习之决策树与随机森林——基于Scikit-Learn

《Python数据科学手册》笔记随机森林是一种集成算法,通过集成多个比较简单的评估器形成累积效果。更具体一点就是,随机森林是建立在决策树基础上的集成学习器。一、决策树决策树采用非常直观的方式对事物进行分类或打标签,它的每一个节点都根据一个特征的阈值将数据分成两组。在一棵结构合理的决策树中,每个问题基本上都可以将种类可能性减半,而难点也在于如何设计每一步的问题。二、随机森林通过组...

2019-03-04 19:53:45 867

原创 机器学习之支持向量机——基于Scikit-Learn

《Python数据科学手册》笔记一、支持向量机概念 画一条到最近点边界、有宽度的线条(二维空间中的直线或曲线)或者流体形体(多维空间中的曲线、曲面等概念)将各类分开,选择边界最大的那条线即是模型的最优解,支持向量机就是一个边界最大化评估器。有些点正好在边界线上,这些点正是拟合的关键支持点,被称为支持向量,任何在正确分类一侧原理边界线的点都不会影响拟合结果。二、支持向量机...

2019-03-04 18:57:46 440

原创 机器学习案例:预测自行车流量——基于Scikit-Learn

《Python数据科学手册》笔记(因为没有下载到数据集,只能纸上谈兵的总结一下过程(o(╥﹏╥)o))针对这个例子,首先要明确任务,细分目标;然后准备数据集并提取相应特征;最后选择模型进行训练与预测。另外,如果预测效果不好,还得认真分析原因。一、明确目标,细分任务 首先要明确,我们的目的是预测自行车流量,而从经验来看,自行车流量可能与季节、天气、气温,是否为节假日,甚至...

2019-03-04 14:34:40 3850 1

原创 机器学习之线性回归——基于Scikit-Learn

《Python数据科学手册》笔记一、简单线性回归最简单的线性回归模型是将数据拟合成一条直线,拟合方程为 y = ax + b,其中a是斜率,b是直线截距。二、基函数回归通过基函数对原始数据进行变换,将变量间的线性回归模型转换为非线性回归模型。常用的基函数有多项式基函数、高斯基函数。需要注意的是,基函数是对原始数据进行变换,模型仍然是一个线性模型。下面举例用Scikit-Learn...

2019-03-01 20:31:45 673

原创 机器学习之朴素贝叶斯分类——基于Scikit-Learn

《Python数据科学手册》笔记一、朴素贝叶斯分类原理在贝叶斯分类中,我们希望确定一个具有某些特征的样本属于某类标签的概率,通常记为P(L|特征)。贝叶斯公式为:假设要确定两种标签,定义为L1,L2,通过两个标签的后验概率比值其中P(L1)和P(L2)易知,故只需要求出P(特征|Li)即可,即要知道每类数据中各特征的概率分布。而这个概率分布很难确知,通常是用一些常见的分布做简单...

2019-03-01 19:20:26 1012

原创 机器学习之特征工程——基于Scikit-Learn

《Python数据科学手册》 笔记前几篇博客的所有示例都假设已经拥有一个干净的[n_samples,n_features]特征矩阵。但在现实工作中,数据很少会这么干净,例如,数据中含有缺失值、含非数值内容等等。这时候,就需要用到特征工程——将其转换为特征矩阵的数值。接下来简要介绍如何处理分类特征、文本特征、图像特征,如何在已有的特征基础上衍生特征,以及如何填充缺失值。一、分类特征当数据...

2019-02-28 17:13:23 421

原创 机器学习之模型验证——基于Scikit-Learn

《Python数据科学手册》 笔记一、超参数 在模型拟合数据之前必须确定好的参数。二、交叉验证 将模型分为N组,每一轮依次用模型拟合其中的 N-1 组数据,再预测剩下一组数据,评估模型准确率。 以五轮交叉验证为例:用函数实现:这是在我上一篇博客代码的基础上添加的,单独这两行代码是要报错的哦!(上一篇博客)其中,model是实例化的...

2019-02-28 15:21:28 1575 1

原创 Scikit-Learn简介 —— 数据表示及评估器API

《Python 数据科学手册》笔记一、Scikit-Learn的数据表示 1.Scikit-Learn基本的数据表示二维网格数据,每一行表示数据集中的每个样本,每一列表示相关特征 (量化观测值)。例如鸢尾花数据集:2.通常将上述除开最后一列的表格称为特征矩阵,记为变量X,它是维度为[n_samples,n_features](即 [样本数,特征数])的二维矩阵。而最后一列...

2019-02-27 20:46:39 578

原创 机器学习概念、分类及应用简介

《Python数据科学手册》 笔记一、机器学习的概念 机器学习的本质是借助数学模型理解数据,通俗来讲,就是给模型装上合适的可调参数,通过观测数据不断去调参,更新模型,最终“学习”到一个适应于新的观测数据的模型。二、机器学习的分类三、机器学习的应用垃圾邮件自动识别:根据垃圾邮件关键词与短语出现的频次来分类“垃圾邮件”和“普通邮件”计算星系距离:根据星系的波长...

2019-02-27 19:30:16 2803

原创 程序基本算法习题解析 写作业:学生需要完成几项作业,其中的每项作业都有一个提交的截止日期和完成所需的时间。若晚于截止日期,每晚一天,总分便会被减去一分。请计算此同学能在最少减去多少分......

题目:学生需要完成几项作业,其中的每项作业都有一个提交的截止日期和完成所需的时间。若晚于截止日期,每晚一天,总分便会被减去一分。请计算此同学能在最少减去多少分的情况下完成所有作业,给出完成作业的顺序的方案。输入第一行为一个整数T,表示数据的组数。对于每一组数据,第一行为一个整数N(1<=N<=14),表示作业的项数。接下来的N行,每行有一个字符串str(至多100个字符)和两个整数...

2019-01-22 15:52:38 2575

原创 程序基本算法习题解析 动态规划-统计单词个数:给出一个长度不超过200,而且全部小写英文字母组成的字符串。 要求将此字符串分成k份,输出最大的包含单词个数。

题目:给出一个长度不超过200,而且全部小写英文字母组成的字符串(该字符串必须每行20个字母的方式输入)。要求将此字符串分成k份(1<k<=40),输出最大的包含单词个数。限制条件如下:1.每份中包含的单词可以部分重叠。2.当选用一个单词后,其第一个字母不能再用。例如字母串this中可包含this和is,选用this之后就不能包含th,因为t开头的单词已经包含在内了。3.单词由...

2019-01-21 20:56:38 3726

原创 c++ 求字符串中最大的包含单词个数

题目:给定一个字符串,输出其最大的包含单词个数以及所包含的单词。限制条件如下:1.每份中包含的单词可以部分重叠。2.当选用一个单词后,其第一个字母不能再用。例如字母串this中可包含this和is,选用this之后就不能包含th,因为t开头的单词已经包含在内了。输入一个字符串、字典中单词的个数以及词典内容,输出最大的包含单词个数以及所包含的单词。该题目是CODEVS2010的变体(...

2019-01-21 18:55:41 796

原创 程序基本算法习题解析 动态规划-数的划分 将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序)。求整数n分为k份,共有多少种不同的分法。

题目:将整数n分成k份,且每份不能为空,任意两种划分方案不能相同(不考虑顺序)。求整数n分为k份,共有多少种不同的分法。输入两个整数n,k(6<n<=200,2<=k<=6)。输出一个整数,即有几种不同的分法。思路:定义一个数组dp[][],dp[i][j]表示将整数 i 划分为 j 份 的方案数。dp[i][j]的动态转移方程为 :如何理解该式子呢?首...

2019-01-18 14:14:55 19163 11

原创 程序基本算法习题解析 动态规划-乘积最大:设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积最大。

题目:设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积最大。例如,数字串为312,当N=3,K=1时会有以下两种分法:3*12=36和31*2=62,符合题目要求的结果为31*2=62。程序的输入共有两行:第一行共有两个自然数N、K(6<=N<=40,1<=K<=6),第二行是一个长度为N的数字串,输出一个整数,...

2019-01-17 15:43:56 9322 1

原创 程序基本算法习题解析 动态规划-过河卒

题目:A点有一个过河卒,需要走到目标B点。卒可以向下或者向右走。同时在棋盘上任意一点有一个对方的马,该马所在的点和马跳跃一步可达的所有点称为马的控制点。棋盘用坐标表示,A点(0,0)、B点(n,m)(n,m为不超过20的整数,并由键盘输入),马的位置坐标也要给出(约定:C不等于A,同时C不等于B)。要求计算出卒从A点能够到达B点的路径的条数。输入B点的坐标(n,m)(1<=n,m<...

2019-01-17 11:18:59 1021

原创 程序基本算法习题解析 动态规划-装箱问题:有一个箱子容积为v,同时有n个物品,每个物品有一个体积。要求从n个物品中,任取若干个装入箱内,使箱子的剩余空间最小。

题目:有一个箱子容积为v(0~20000),同时有n(0~30)个物品,每个物品有一个体积。要求从n个物品中,任取若干个装入箱内,使箱子的剩余空间最小。输入一个整数v,表示箱子容积,一个整数n,表示物品个数。接下来输入n个整数,分别表示这n个物品的体积。输出一个整数,表示箱子剩余空间。思路:可设一个元素个数为 max(v)+1的数组dp[20001],里面任意一个元素dp[i]表示箱子...

2019-01-16 15:17:40 8491 2

原创 程序基本算法习题解析 动态规划-线段覆盖: 数轴上有n条线段,线段的两端都是整数坐标,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合),且线段价值之和最大。

题目:线段覆盖:数轴上有n条线段,线段的两端都是整数坐标,坐标的范围为0~1000000,每条线段有一个价值,请从n条线段中挑出若干条线段,使得这些线段两两不覆盖(端点可以重合),且线段价值之和最大。输入第一行一个整数n(n<=1000),表示有多少条线段接下来的n行,每行3个整数ai,bi,ci,分别代表第i条线段的左端点ai,右端点bi,价值ci。输出能够获得的最大价值。思路:...

2019-01-15 18:04:14 2406

原创 快速排序算法

最开始学习编程,遇到排序问题,一般都是用冒泡法,因为冒泡法好理解,代码量少。但是这种算法时间复杂度高,当需要排序的元素较多时,程序运行时间很长,因此产生了快速排序算法。该算法的实现可分为以下几步:1. 在数组中选一个基准数(通常为数组第一个);2. 将数组中小于基准数的数据移到基准数左边,大于基准数的移到右边;3. 对于基准数左、右两边的数组,不断重复以上两个过程,直到每个子集只有一个...

2019-01-11 21:09:08 226291 88

程序基本算法习题解析

《程序基本算法习题解析》第一章 第七页 第6题 程序 任意给一个四位数(各位数不完全相同), 各位上的数可组成一个最大数和一个最小数, 它们的差又能组成一个最大数和一个最小数, 直到某一步得到的差将会出现循环重复。写一个程序统计所有满足以上条件的四位数。

2018-12-14

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除