- 博客(36)
- 资源 (1)
- 收藏
- 关注
转载 sklearn文档 — 1.10. 决策树
决策树(Decision Trees ,DTs)是一组用于分类和回归的无参监督学习。它们的目标是创建一个模型,然后这个模型通过从数据特征学习出一套简单的决策规则后,来预测出目标值。以下方的实例为例子,决策树从数据特征中近似地获得一条由一组 如果...就...否则... 这样的决策规则组成的正弦曲线。随着树的深度增加,其决策规则和拟合模型就会变得越来越复杂。决策树的优点有:
2017-08-03 15:23:38
1011
转载 sklearn文档 — 1.9. 朴素贝叶斯
这个朴素贝叶斯方法是一组基于贝叶斯理论的监督学习算法,其对每个特征对都定义了一个"简单"假设。对给定的类变量 y 和独立的特征向量 x1至 xn ,贝叶斯理论的关系如下所示:使用朴素的独立假设后:对全体 i 而言,其等式又能简化为:因为 P(x1, ..., xn) 在给定输入时,它的值就已经固定不变了,所以可以使用下列的分类规则:
2017-08-03 15:21:40
657
转载 sklearn文档 — 1.8. 交叉分解
交叉分解模型包含了两个主要的算法族:偏最小二乘法(PLS)和规范相关分析(CCA)。这些算法族擅长于在两个多变量数据集之间寻找出他们的线性关系。其fit方法里的X和Y参数都是二维向量。交叉分解算法寻找两个矩阵(X和Y)的基本关系。他们这种隐含的可变方法会尝试对这两个空间的协方差结构进行建模。会试图找出在X空间内解释Y空间中最大多维方差的多维方向。PLS-回归非常适用于预测结果的
2017-08-03 15:18:18
634
转载 sklearn文档 — 1.7. 高斯过程
高斯过程(GP)是一种被设计来解决 回归 和 概率分类 的通用监督学习方法。高斯过程有以下的优点:可以预测插值(至少对常规核而言)预测是概率的(高斯分布的)结果,因此可以根据置信区间的计算以决定是否要在一些感兴趣的区域重新进行拟合(在线拟合,自适应拟合)。可以指定不同的 核 。默认是提供了一个普通核,不过也可以根据自己需求来指定自定义的核。同样的,其缺点有:它是非稀
2017-08-03 09:28:18
5351
转载 sklearn文档 — 1.6. 最近邻
sklearn.neighbors 提供了一些在无监督和有监督学习中基于近邻的学习方法。无监督近邻是许多其他学习方法的基石,特别是在流学习和光谱聚类方面。有监督的基于近邻的学习有两个方面:对带有离散标签的数据进行分类 ,对带有连续标签的数据计算回归。最近邻的原则上是先找出距离新点(预测点)最近的预定数量的训练样本,继而预测其所属的标签。样本数可以是用户所定义的常数(此处即为K近邻算法,KN
2017-08-02 23:10:40
1813
转载 sklearn文档 — 1.5. 随机梯度下降
随机梯度下降(SGD) 是一个既有效又简单的方法去用于在诸如(线性)支持向量机 和Logistic回归中,"凸"代价函数下的线性分类器的辨别学习。尽管 SGD 已经在机器学习社区存在了很长一段时间了,但是在最近的大规模学习的浪潮下它还是得到了很多人的关注。SGD 已经很成功的应用在了大规模下和稀疏机器学习问题上,主要是用于进行文本分类和自然语言处理。对给定一个稀疏的数据,(Sklear
2017-08-02 23:09:13
2257
转载 sklearn文档 — 1.4. 支持向量机
支持向量机(SVMs)是一组用于分类,回归和异常值检测的监督学习方法。SVMs的优点有:在高维空间下有效。在样本维度远远高于样本数量时依旧有效。在决策函数中使用训练样本的子集(被称为支持向量),同时其也是内存有效的。能够为不同的决策函数指定不同的核函数。(在sklearn中)已经提供了一个普通核,但是同样也支持将其替换成自定义的核。SVMs的缺点有:若特征的数量远远
2017-08-02 23:07:34
732
转载 sklearn文档 — 1.3. 核岭回归
核岭回归(KRR) [M2012]是使用了核技巧与 岭回归(使用L2范数正则化的线性最小二乘法)结合而成。也因此它是学习由相应的核和数据的空间中的线性函数。对于非线性核,这对应原始空间中的非线性函数。KernelRidge 模型被证明为是支持向量回归(SVR)的。然而,可以使用不同的损失函数:KRR使用平方误差损失而支持向量回归使用 ε不敏感损失 ,并且他们都结合了L2正规化。相比
2017-08-02 23:06:03
2441
转载 sklearn文档 — 1.2. 线性与二次判别分析法
线性判别分析法(discriminant_analysis.LinearDiscriminantAnalysis) 和二次判别分析法(discriminant_analysis.QuadraticDiscriminantAnalysis) 是两种经典的分类器。正如他们的名字所示,分别为线性的与二次决策面。这两种方法很具有吸引力,因为他们拥有容易计算,并且本质是多类的闭合解,提供了在无超
2017-08-02 23:05:07
1899
转载 sklearn中文文档——1.1. 普通线性模型
下面是一组用在回归中的方法,其预期的结果为各输入变量的线性组合。在数学的概念里,如果 ý 表示我们预测出的结果:线性回归的预测结果在这一节中,我们定义向量 w = (w1, ..., wp) 为 系数(coef_) ,而 w0为 截距(intercept_) 。如果要使用线性模型来进行分类的话,可以查看下方的Logistic回归。1.1.1. 普通最小二乘法(Ord
2017-08-02 23:02:22
2827
转载 机器学习精简教程之十——用scikit-learn做聚类分析
本文转自:http://www.shareditor.com/blogshow?blogId=61线性回归和逻辑回归都是监督学习方法,聚类分析是非监督学习的一种,可以从一批数据集中探索信息,比如在社交网络数据中可以识别社区,在一堆菜谱中识别出菜系。本节介绍K-means聚类算法 。K-meansk是一个超参数,表示要聚类成多少类。K-means计算方法是重复
2017-08-02 22:42:24
1072
转载 机器学习精简教程之九——用scikit-learn的网格搜索快速找到最优模型参数
本文转自:http://www.shareditor.com/blogshow/?blogId=60任何一种机器学习模型都附带很多参数,不同场景对应不同的最佳参数,手工尝试各种参数无疑浪费很多时间,scikit-learn帮我们实现了自动化,那就是网格搜索 。网格搜索这里的网格指的是不同参数不同取值交叉后形成的一个多维网格空间。比如参数a可以取1、2,参数b可以取3
2017-08-02 15:05:01
3588
转载 机器学习精简教程之八——二元分类效果的评估方法
本文转自:http://www.shareditor.com/blogshow/?blogId=59效果评估是模型选择和算法设计的重要步骤,知道评估优劣才能选择最佳的模型和算法,本节介绍一些有关评估方法的定义,凡是在统计或大数据领域都用得到 真阳性true positives, TP真阴性true negatives, TN假阳性
2017-08-02 14:42:40
1118
转载 机器学习精简教程之七——用scikit-learn做特征提取
本文转自:http://www.shareditor.com/blogshow/?blogId=58现实世界中多数特征都不是连续变量,比如分类、文字、图像等,为了对非连续变量做特征表述,需要对这些特征做数学化表述,因此就用到了特征提取 (特征数字化)分类变量的特征提取比如城市作为一个特征,那么就是一系列散列的城市标记,这类特征我们用二进制编码来表示,是这个城市为
2017-08-02 11:36:06
627
转载 机器学习精简教程之六——用随机梯度下降法(SGD)做线性拟合
本文转自:http://www.shareditor.com/blogshow/?blogId=57scikit-learn的线性回归模型都是通过最小化成本函数来计算参数的,通过矩阵乘法和求逆运算来计算参数。当变量很多的时候计算量会非常大,因此我们改用梯度下降法,批量梯度下降法每次迭代都用所有样本,快速收敛但性能不高,随机梯度下降法每次用一个样本调整参数,逐渐逼近,效率高,本节我们来利
2017-08-01 23:10:27
2533
转载 机器学习精简教程之五——用scikit-learn求解多项式回归问题
本文转自:http://www.shareditor.com/blogshow/?blogId=56多元真实情况未必是线性的,有时需要增加指数项,也就是多项式回归,现实世界的曲线关系都是通过增加多项式实现的,本节介绍用scikit-learn解决多项式回归问题 住房价格样本样本 面积(平方米) 价格(万元)样本面积(平方米) 价格(万元)
2017-08-01 22:44:27
513
转载 机器学习精简教程之四——用matplotlib绘制精美的图表
本文转自:http://www.shareditor.com/blogshow/?blogId=55绘制一元函数图像y=ax+bimport matplotlib.pyplot as pltimport numpy as npplt.figure() # 实例化作图变量plt.title('single variable') # 图像标题plt.xlabel('x
2017-08-01 21:55:20
1439
1
转载 机器学习精简教程之三——用scikit-learn求解多元线性回归问题
本文转自 http://www.shareditor.com/blogshow/?blogId=54一般情况下,一个因变量是和多个自变量有关的,比如一个商品的价格和原料价格、加工方法、上市时间、品牌价值等有关,也就是多元线性,本节介绍如何用scikit-learn解决多元线性回归问题 多元线性回归模型方程:Y=Xβ 求解多元线性回归问题就是求解β:因为X
2017-07-31 20:46:04
572
转载 机器学习精简教程之二——用scikit-learn求解一元线性回归问题
本文转自 http://www.shareditor.com/blogshow/?blogId=53一元线性回归是最简单的一种模型,但应用广泛,比如简单地预测商品价格、成本评估等,都可以用一元线性模型,本节主要讲解scikit-learn一元线性回归的使用以及作图说明 一元线性回归y=f(x)叫做一元函数,回归的意思就是根据已知数据复原某些值,线性回归(regres
2017-07-31 20:27:24
683
转载 机器学习精简教程之一——线性代数知识
本文转自:http://www.shareditor.com/blogshow/?blogId=1 数学是计算机技术的基础,线性代数是机器学习和深度学习的基础,了解数据知识最好的方法我觉得是理解概念,数学不只是上学时用来考试的,也是工作中必不可少的基础知识,实际上有很多有趣的数学门类在学校里学不到,有很多拓展类的数据能让我们发散思维,但掌握最基本的数学知识是前提,本文就以线性
2017-07-31 20:00:17
1400
原创 03--机器学习之SVM(暂定)
from __future__ import print_functionfrom time import time #某些步骤需要计时,要用到这个模块import logging #打印程序进展方面的信息的模块import matplotlib.pyplot as plt #在程序最后把识别出的人脸绘制出来,看一下预测与实际的是否符合,要用到这个木块from sklearn.cross_
2017-07-29 18:25:45
320
原创 02--机器学习之最近邻规则分类(KNN)
1.例子 实例,两个特征 对例子建模 举例: 上面这个图中,把小手指的这个豆子归为哪个类呢?knn的做法是看它的邻居们是什么类,然后把它归为和邻居一样的类2.算法详述 1)步骤 为了判断未知实例的类别,以所有已知类别的实例作为参照 选择参数K(一般都选择奇数) 计算未知实例与所有已知实例的距离 选择最近K个已知实例 根据少数服从多数的投票法则(majority-voti
2017-07-25 15:19:34
581
原创 01--机器学习之决策树
1.机器学习步骤框架 1)把数据集拆分为训练集和测试集 2)用训练集和训练集的特征向量来训练算法 3)用学习来的算法运用在测试集上来评估算法2.决策树(Decision Tree) 类似于流程图的树结构:其中,每个内部节点表示在一个属性上测试,每个分支代表一个属性输出。而每个树叶节点代表类或者类的分布。树的最顶层是根节点。 这张图
2017-07-25 12:06:00
297
原创 (12)逆波兰表达式(递归的应用)
将运算符前置的一种表达式。很简单,没什么要具体说明的。逐个拆就行。#include<iostream>using namespace std;double notation(){ char str[10]; cin >> str; switch (str[0]){ case '+':return notation() + notation(); case '
2017-07-02 00:24:24
316
原创 (11)分苹果问题:将m个相同的苹果放到n个相同的盘子中,多少钟分法?
分两种方向考虑:1)有盘子空着 2)所有的盘子上都有苹果 另外,如果盘子的个数大于苹果的个数,也要考虑进去。直接把多余的盘子拿掉,对结果是没有影响的。#include<iostream>using namespace std;int count(int m, int n){//主要是运用递归的思想 if (m <= 1 || n <= 0)
2017-07-01 23:58:13
4229
2
原创 (10)逻辑判断的问题:点评赛车(通过枚举处理逻辑判断问题。)
描述4名专家对4款赛车进行评论1)A说:2号赛车是最好的;2)B说:4号赛车是最好的;3)C说:3号赛车不是最好的;4)D说: B说错了。事实上只有1款赛车最佳,且只有1名专家说对了,其他3人都说错了。请编程输出最佳车的车号,以及说对的专家。输入无输入。输出输出两行。第一行输出最佳车的车号(1-4中的某个数字)。第二行输出说对的专家(A-D中的某个字母)。#include<iostream>usi
2017-06-30 21:13:08
890
原创 (9)计算人民币各个面额的数量
描述从键盘输入一指定金额(以元为单位,如345),然后输出支付该金额的各种面额的人民币数量,显示100元,50元,20元,10元,5元,1元各多少张,要求尽量使用大面额的钞票。输入一个小于1000的正整数。输出输出分行,每行显示一个整数,从上到下分别表示100元,50元,20元,10元,5元,1元人民币的张数 使用了一种比较麻烦的算法#include<iostream>using namespa
2017-06-30 20:58:14
5436
原创 (8)分数求和
描述输入n个分数并对他们求和,用约分之后的最简形式表示。比如:q/p = x1/y1 + x2/y2 +….+ xn/yn,q/p要求是归约之后的形式。如:5/6已经是最简形式,3/6需要规约为1/2, 3/1需要规约成3,10/3就是最简形式。PS:分子和分母都没有为0的情况,也没有出现负数的情况输入第一行的输入n,代表一共有几个分数需要求和接下来的n行是分数输出输出只有一行,即归约后的结果很简单
2017-06-30 17:37:47
1870
原创 (7)约瑟夫问题
描述约瑟夫问题:有n只猴子,按顺时针方向围成一圈选大王(编号从1到n),从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王,编程求输入n,m后,输出最后猴王的编号。输入每行是用空格分开的两个整数,第一个是 n, 第二个是 m ( 0 < m,n <=300)。最后一行是:0 0输出对于每行输入数据(最后一行除外),输出
2017-06-29 16:52:25
598
原创 (6)最大奇数与最小偶数之差的绝对值
描述输入6个正整数,且这6个正整数中至少存在一个奇数和一个偶数。设这6个正整数中最大的奇数为a,最小的偶数为b,求出|a-b|的值输入输入为一行,6个正整数,且6个正整数都小于100输入保证这6个数中至少存在一个奇数和一个偶数输出输出为一行,输出最大的奇数与最小的偶数之差的绝对值#include<iostream>using namespace std;int main(){ int a[6
2017-06-29 15:30:39
1783
原创 (5)细菌实验分组
描述有一种细菌分为A、B两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显著差别,A亚种繁殖能力非常强,B亚种的繁殖能力很弱。在一次为时一个小时的细菌繁殖实验中,实验员由于疏忽把细菌培养皿搞乱了,请你编写一个程序,根据实验结果,把两个亚种的培养皿重新分成两组。细菌繁殖能力(繁殖率)的量化标准为一个小时内细菌数量增长的比例(繁殖率 = 一小时后细菌数量 / 原本细菌数量)。两个亚种繁殖能力差异
2017-06-29 14:51:52
2524
原创 (4)按从小到大的顺序排列数组中的元素
使用的是选择排序法,先选择最小的数,然后将其放在第一位;然后寻找第二小的数,将其放在第二位;依次类推……#include<iostream>using namespace std;void selectionSort(int arr[], int n){ for (int i = 0; i < n; i++){ //寻找[i,n)区间里的最小值 int mi
2017-06-28 14:47:22
1360
原创 (3)统计二进制数中1的个数
描述给定一个十进制整数N,求其对应2进制数中1的个数输入第一个整数表示有N组测试数据,其后N行是对应的测试数据,每行为一个整数。输出N行,每行输出对应一个输入。#include<iostream>using namespace std;int main(){ int n; cin >> n;//n次输入 //循环,对每次输入的数进行二进制分解,统计二进制中1的个数
2017-06-27 21:28:57
391
原创 (2)奇偶排序
描述输入十个整数,将十个整数按升序排列输出,并且奇数在前,偶数在后。输入输入十个整数输出按照奇偶排序好的十个整数#include<iostream>using namespace std;int main(){ int a[10]; for (int i = 0; i < 10; i++) { cin >> a[i]; } //首先,把奇数
2017-06-26 22:27:55
752
原创 (1)冒泡法排序代码(另一个应用是找到第K大的数)
#include<iostream>using namespace std;int main(){ int n, a[1000];//一共n个数,n不超过1000.a用来保存这些数 cin >> n; //输入n个数 for (int i = 0; i < n; i++) { cin >> a[i]; } //冒泡,不断比较相
2017-06-26 21:58:41
605
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人