机器学习实战

《机器学习实战》读书笔记(一)

对着背影说爱祢 提交于 2020-01-29 03:04:23
机器学习基础 机器学习就是把无序的数据转换为有用的信息。 开发机器学习应用程序的步骤:(1)收集数据;(2)准备输入数据;(3)分析输入数据;(4)训练算法:(5)测试算法;(6)使用算法。 Numpy函数库基础 交互环境下输入命令 命令构造了一个4×4的随机数组。 转换为矩阵 .I操作符实现了矩阵求逆的运算。通过下面的指令可以存储逆矩阵。 invRandMat中保存的是randMat的逆矩阵,randMat和invRandMat相乘得到的应该是单位矩阵,不过在这里,由于计算机处理会有误差,因而得到的结果和人工计算不同。 按照下列步骤计算误差值 来源: CSDN 作者: 流浪的小鱼孩 链接: https://blog.csdn.net/Shinlikr/article/details/103637812

“机器学习实战”刻意练习——聚类问题:K均值聚类

天涯浪子 提交于 2019-12-24 04:13:54
一、概述 聚类 是一种无监督的学习,它将相似的对象归到同一个簇中。 聚类方法几乎可以应用于所有对象,簇内的对象 越相似 ,聚类的效果越好。 K均值(K-means)聚类算法 可以发现k个不同的簇,且每个簇的中心采用簇中所含值的均值计算而成。 在介绍K-均值算法之前,先讨论一下 簇识别(cluster identification) 。 簇识别给出 聚类结果的含义 。 假定有一些数据,现在将相似数据归到一起,簇识别会告诉我们这些簇到底都是些什么。 聚类与分类的最大不同在于,分类的目标事先已知,而聚类则不一样。 因为其产生的结果与分类相同,而只是 类别没有预先定义 ,聚类有时也被称为 无监督分类(unsupervisedclassification )。 聚类分析试图将相似对象归入同一簇,将不相似对象归到不同簇。 相似 这一概念取决于所选择的相似度计算方法。到底使用哪种相似度计算方法取决于具体应用。 优缺点 优点:容易实现。 缺点:可能收敛到局部最小值,在大规模数据集上收敛较慢。 适用数据类型 数值型数据 K-均值聚类的一般流程 (1) 收集数据:使用任意方法。 (2) 准备数据:需要数值型数据来计算距离,也可以将 标称型数据映射为二值型数据 再用于距离计算。 (3) 分析数据:使用任意方法。 (4) 训练算法:不适用于无监督学习,即 无监督学习没有训练过程 。 (5) 测试算法

《机器学习实战》--KNN

旧城冷巷雨未停 提交于 2019-12-11 23:09:10
代码来自《机器学习实战》 https://github.com/wzy6642/Machine-Learning-in-Action-Python3 K-近邻算法(KNN) 介绍 简单地说,k-近邻算法采用测量不同特征值之间的距离方法进行分类。 优点:精度高、 对异常值不敏感 ,无数据输入假定。 缺点:计算复杂度高、空间复杂度高,无法给出数据的内在含义。 使用数据范围:数值型、标称型。 分类函数的伪代码:   对未知类别属性的数据集中的每个点依次执行以下操作:   (1)计算已知类别数据集中的点与当前点之间的距离;   (2)按照距离递增次序排序;   (3)选取与当前点距离最小的k个点;   (4)确定前k个点所在类别的出现概率;   (5)返回前k个点出现频率最高的类别作为当前点的预测分类。 1 """创建数据集 2 返回: group - 数据集 3 labels - 分类标签 4 """ 5 def createDataSet(): 6 # 四组二维特征 7 group = np.array([[1, 101], [5, 89], [108, 5], [115, 8]]) 8 # 四组特征的标签 9 labels = ['爱情片', '爱情片', '动作片', '动作片'] 10 return group, labels 11 12 13 """ 14 KNN算法,分类器

机器学习逻辑回归算法推导

六月ゝ 毕业季﹏ 提交于 2019-12-06 02:48:38
1.引自 https://www.cnblogs.com/bnuvincent/p/9695666.html 2. 基本原理 Logistic Regression和Linear Regression的原理是相似的,按照我自己的理解,可以简单的描述为这样的过程: (1)找一个合适的预测函数(Andrew Ng的公开课中称为hypothesis),一般表示为 h 函数,该函数就是我们需要找的分类函数,它用来预测输入数据的判断结果。这个过程时非常关键的,需要对数据有一定的了解或分析,知道或者猜测预测函数的“大概”形式,比如是线性函数还是非线性函数。 (2)构造一个Cost函数(损失函数),该函数表示预测的输出( h )与训练数据类别( y )之间的偏差,可以是二者之间的差( h-y )或者是其他的形式。综合考虑所有训练数据的“损失”,将Cost求和或者求平均,记为 J(θ) 函数,表示所有训练数据预测值与实际类别的偏差。 (3)显然, J(θ) 函数的值越小表示预测函数越准确(即 h 函数越准确),所以这一步需要做的是找到J(θ)函数的最小值。找函数的最小值有不同的方法,Logistic Regression实现时有的是梯度下降法(Gradient Descent)。 3. 具体过程 3.1 构造预测函数 Logistic Regression虽然名字里带“回归”

《机器学习实战》高清中文带标签PDF+高清英文PDF+源代码

。_饼干妹妹 提交于 2019-12-03 05:45:02
1 写在前面 最近在做机器学习项目的时候发现一本好书,《机器学习实战》, 介绍并实现机器学习的主流算法。 面向日常任务的高效实战内容, 《机器学习实战》没有从理论角度来揭示机器学习算法背后的数学原理,而是通过“原理简述+问题实例+实际代码+运行效果 我们都知道,机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存、谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域越来越为人们所瞩目。 入门建议参考《机器学习实战》,分为4个部分,分别是分类(有监督学习,包括KNN/决策树/朴素贝叶斯/逻辑斯蒂回归/svm/改变样本权重的bagging和adaboosting)、回归(有监督学习,线性回归、局部加权、特征维度比样本个数多时缩减系数,如岭回归、lasso等,树回归,这块掌握不太好)、无监督学习(kmeans、apriori/fp-growth)以及其他工具(PCA/SVD/MAPREDUCE)。 2 学习参考 《机器学习实战》高清中文版, 339页,带目录书签,文字可复制;高清英文版, 382页,带目录书签,文字可复制; 中英文两版对比学习。讲解详细并配有源代码。 本书百度云盘下载链接: 《机器学习实战》高清带标签PDF + 源码下载 3 本书目录 第1章 机器学习基础   1.1

《机器学习实战》9.3树回归之模型树和项目案例

梦想的初衷 提交于 2019-11-27 13:41:28
《机器学习实战》9.3树回归之模型树和项目案例 搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多人工智能、机器学习干货 csdn:https://blog.csdn.net/baidu_31657889/ github:https://github.com/aimi-cn/AILearners 本文出现的所有代码,均可在github上下载,不妨来个Star把谢谢~: Github代码地址 一、引言 这一节我们来介绍模型树以及进行一个简单的树回归的项目实战 二、模型树 2.1 模型树简介 回归树的叶节点是常数值,而模型树的叶节点是一个回归方程。 用树来对数据建模,除了把叶节点简单地设定为常数值之外,还有一种方法是把叶节点设定为分段线性函数,这里所谓的 分段线性(piecewise linear) 是指模型由多个线性片段组成。 我们看一下图中的数据,如果使用两条直线拟合是否比使用一组常数来建模好呢?答案显而易见。可以设计两条分别从 0.0-0.3、从 0.3-1.0 的直线,于是就可以得到两个线性模型。因为数据集里的一部分数据(0.0-0.3)以某个线性模型建模,而另一部分数据(0.3-1.0)则以另一个线性模型建模,因此我们说采用了所谓的分段线性模型。 决策树相比于其他机器学习算法的优势之一在于结果更易理解。很显然

《机器学习实战》9.2树回归之树剪枝(tree pruning)

情到浓时终转凉″ 提交于 2019-11-27 13:40:25
《机器学习实战》9.2树回归之树剪枝(tree pruning) 搜索微信公众号:‘AI-ming3526’或者’计算机视觉这件小事’ 获取更多人工智能、机器学习干货 csdn:https://blog.csdn.net/baidu_31657889/ github:https://github.com/aimi-cn/AILearners 本文出现的所有代码,均可在github上下载,不妨来个Star把谢谢~: Github代码地址 一、引言 本篇文章将会根据上节的回归树的构建过程是否得当来引入的剪枝(tree pruning)技术。 二、树剪枝 一棵树如果结点过多,表明该模型可能对数据进行了“过拟合”。 通过降低树的复杂度来避免过拟合的过程称为剪枝(pruning)。上小节我们也已经提到,设置tolS和tolN就是一种预剪枝操作。另一种形式的剪枝需要使用测试集和训练集,称作后剪枝(postpruning)。本节将分析后剪枝的有效性,但首先来看一下预剪枝的不足之处。 2.1 预剪枝 预剪枝有一定的局限性,比如我们现在使用一个新的数据集。 数据集下载地址: 数据集下载 用上节的代码绘制数据集看一下: 可以看到,对于这个数据集与我们使用的第一个数据集很相似,但是区别在于y的数量级差100倍,数据分布相似,因此构建出的树应该也是只有两个叶结点