机器学习
文章平均质量分 83
高通量
这个作者很懒,什么都没留下…
展开
-
3.7 应用实例
本章通过例题回顾NumPy的各种功能。原创 2017-07-23 15:25:57 · 546 阅读 · 0 评论 -
3.6 矩阵运算
矩阵的加减法运算规则与数组相同,即元素运算,其结果返回新的矩阵。倍乘数运算也是矩阵内元素乘以倍数,返回新的矩阵,且倍数应置于运算符左边。原创 2017-07-23 15:15:47 · 1520 阅读 · 0 评论 -
3.5 数组运算
ufunc是universal function的缩写,它是一种能对数组的每个元素进行操作的函数。本节主要介绍算术运算、比较运算和统计运算等函数。原创 2017-07-23 14:46:41 · 704 阅读 · 0 评论 -
8.7 特征分解
许多数学对象可以通过将它们分解成多个组成部分,或者找到它们的一些属性而更好地理解,这些属性是通用的,而不是由我们选择表示它们的方式产生的。原创 2017-07-22 17:23:03 · 5449 阅读 · 4 评论 -
8.6 特殊类型的矩阵和向量
有些特殊类型的矩阵和向量是有特别用处的。 对角矩阵(diagonal matrix)只在主对角线上含有非零元素,其他位置都是零。形式上,矩阵DD是对角矩阵,当且仅当对于所有的i≠j,Di,j=0i\ne j,D_{i,j}=0。原创 2017-07-18 15:47:36 · 3592 阅读 · 0 评论 -
2.5 程序流程控制
流程控制是指在程序设计中控制完成某种功能的次序,只有按正确的次序执行代码才能完成指定的任务。Python程序语言有三种基本流程控制结构,即顺序结构、选择结构和循环结构。原创 2017-07-09 13:51:34 · 268 阅读 · 0 评论 -
1.1 机器学习与Python
本节首先探讨人工智能、机器学习及深度学习的关系脉络,然后明确了数据挖掘与机器学习的概念边界,最后介绍引入目前广泛应用于数据科学领域的Python语言。原创 2017-07-05 21:50:42 · 3961 阅读 · 0 评论 -
2.4 函数
模块化程序设计是进行复杂程序设计的一种有效措施。其基本思想是将一个复杂的程序按功能进行分割,得到一些相对较小的独立模块,每一个模块都是功能单一、结构清晰、接口简单、易于理解的小程序,这些模块称为函数。函数可以被其他模块多次调用,甚至可以调用自己。其目的是提高了程序的模块性和代码的重复利用率,对大型程序的开发很有帮助。 本章节主要介绍内置函数、模块函数和自定义函数。原创 2017-07-09 13:45:03 · 320 阅读 · 0 评论 -
2.3 运算符与表达式
运算即对数据的操作,对于最基本的运算形式,常常可以用一些简洁的符号记述,这些符号称为运算符或操作符,被运算的对象(数据)称为运算量或操作数。Python中的数据运算主要是通过对表达式的计算完成的。表达式(expression)是将运算量用运算符连接起来组成的式子,其中的运算量可以是常量、变量或函数。原创 2017-07-09 13:33:46 · 708 阅读 · 0 评论 -
2.2 常量与变量
在程序运行过程中,常量和变量都可以用来存储数据,它们都有自己的名字和数据类型。不同的是,在程序执行过程中,变量中存储的值是可以改变的,而常量的值始终保持不变。原创 2017-07-09 13:22:35 · 605 阅读 · 0 评论 -
2.1 数据类型
数据类型是指数据在计算机内部的表达和存储形式。根据性质和用途,数据被划分为多种不同的类型。Python基本数据类型包括数值型、字符串型、逻辑型等。此外,Python还有列表、元组、字典和集合等复合类型。原创 2017-07-09 13:03:18 · 822 阅读 · 0 评论 -
3.1 NumPy介绍及导入
Python在科学计算方面提供了完备的程序扩展库,包括机器学习、数学分析、可视化库、GPU并行库等。Continuum Analytics公司开发的Anaconda使得程序扩展库的管理非常方便。原创 2017-07-17 11:39:55 · 3402 阅读 · 0 评论 -
3.2 创建与存取数组
本节主要介绍NumPy库ndarray对象的创建与保存方法,以及对其属性的操作方法。原创 2017-07-19 15:48:46 · 400 阅读 · 0 评论 -
3.3 索引与切片
索引或切片都是根据条件对数组的元素进行存取的方法,本节主要介绍一维和二维数组的元素索引、切片索引及花式索引。>原创 2017-07-19 16:03:52 · 868 阅读 · 0 评论 -
3.4 数组操作
本节主要介绍对数组的变形、拼接、切分和复制等操作。原创 2017-07-19 16:14:30 · 353 阅读 · 0 评论 -
9.7 python模拟常用分布
本章用Python统计模拟的方法,介绍四种常用的统计分布,包括离散分布:二项分布和泊松分布,以及连续分布:指数分布和正态分布,最后查看人群的身高和体重数据所符合的分布。 首先导入python相关模块:import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns%matplo原创 2017-09-16 22:45:58 · 13386 阅读 · 0 评论 -
9.5 条件概率
在很多情况下,我们感兴趣的是某个事件,在给定其他事件发生时出现的概率。这种概率叫做条件概率。我们将给定x=x,y=y\mathbb x=x,\mathbb y=y发生的条件概率记为P(y=y|x=x)P(\mathbb y=y|\mathbb x=x)。这个条件概率可以通过下面的公式计算: P(y=y|x=x)=P(y=y,x=x)P(x=x)P(\mathbb y=y|\mathbb x=x)=原创 2017-09-02 20:26:40 · 3865 阅读 · 0 评论 -
9.6 期望、方差和协方差
期望(Expectation)数学期望(mean)(或均值,亦简称期望)是试验中每次可能结果的概率乘以其结果的总和,是最基本的数学特征之一。它反映随机变量平均取值的大小。 离散型随机变量的一切可能的取值xix_i与对应的概率p(xi)p(x_i)乘积之和称为该离散型随机变量的数学期望(若该求和绝对收敛),记为E(x)\mathbb E(x) 。它是简单算术平均的一种推广,类似加权平均。 离散型随原创 2017-09-09 13:40:10 · 3088 阅读 · 0 评论 -
9.4 边缘概率
有时候,我们知道了一组变量的联合概率分布,但想要了解其中一个子集的概率分布。这种定义在子集上的概率分布被称为边缘概率分布(marginal probability distribution)。 例如,假设有离散型随机变量x和y,并且我们知道P(x,y)P(x,y)。我们可以依据下面的求和法则来计算P(x)P(x): ∀x∈x,P(x=x)=∑yP(x=x,y=y)\forall x\in \ma原创 2017-08-22 17:01:47 · 1115 阅读 · 0 评论 -
8.11 实例:主成分分析
主成分分析(principal components analysis,PCA)是一个简单的机器学习算法,可以通过基础的线性代数知识推导。 假设在Rn\mathbb R^n空间中我们有mm个点{x(1),…,x(m)}\{x^{(1)},\dots,x^{(m)}\},我们希望对这些点进行有损压缩。有损压缩表示我们使用更少的内存,但损失一些精度去存储这些点。我们希望损失的精度尽可能少。 一种编码原创 2017-08-03 16:08:34 · 2017 阅读 · 0 评论 -
9.3 概率分布
概率分布(probability distribution)用来描述随机变量或一簇随机变量在每一个可能取到的状态的可能性的大小。我们描述概率分布的方式取决于随机变量是离散的还是连续的。离散型变量和概率质量函数离散型变量的概率分布可以用概率质量函数(probability mass function,PMF)来描述。我们通常用大写字母PP 来表示概率质量函数。通常每一个随机变量都会有一个不同的概率质量原创 2017-08-20 17:00:58 · 963 阅读 · 0 评论 -
目录
第一部分 准备篇第二部分 核心篇第三部分 实战篇原创 2017-06-30 17:05:20 · 559 阅读 · 0 评论 -
8.10 迹运算
迹运算返回的是矩阵对角元素的和: Tr(A)=∑iAi,i\mathrm{Tr}(A)=\sum_iA_{i,i}原创 2017-07-27 17:19:30 · 800 阅读 · 0 评论 -
8.9 Moore-Penrose伪逆
对于非方矩阵而言,其逆矩阵没有定义。假设在下面的问题中,我们希望通过矩阵AA的左逆BB来求解线性方程, Ax=yAx=y 等式两边左乘左逆B后,我们得到 x=Byx=By 取决于问题的形式,我们可能无法设计一个唯一的映射将AA映射到BB。 如果矩阵AA的行数大于列数,那么上述方程可能没有解。如果矩阵AA的行数小于列数,那么上述矩阵可能有多个解。原创 2017-07-26 17:44:16 · 2402 阅读 · 3 评论 -
9.1 为什么要使用概率
概率论是用于表示不确定性声明的数学框架。它不仅提供了量化不确定性的方法,也提供了用于导出新的不确定性声明的公理。在人工智能领域,概率论主要有两种用途。首先,概率法则告诉我们AI系统如何推理,据此我们设计一些算法来计算或估算由概率论导出的表达式。其次,我们可以用概率和统计从理论上分析我们提出的AI系统的行为。 概率论使我们能够作出不确定的声明以及在不确定性存在的情况下进行推理,而信息论使我们能够量原创 2017-08-10 16:52:13 · 1333 阅读 · 0 评论 -
8.8 奇异值分解
在上一节,我们探讨了如何将矩阵分解成特征向量和特征值。还有另一种分解矩阵的方法,被称为奇异值分解(singular value decomposition,SVD),将矩阵分解为奇异向量(singular vector)和奇异值(singular value)。通过奇异值分解,我们会得到一些与特征分解相同类型的信息。然而,奇异值分解有更广泛的应用。每个实数矩阵都有一个奇异值分解,但不一定有特征分解。原创 2017-07-25 16:03:49 · 869 阅读 · 0 评论 -
9.2 随机变量
随机变量是可以随机地取不同值的变量。我们通常用无格式字体的小写字母来表示随机变量本身,而用手写体中的小写字体来表示随机变量能够取到的值。例如,x1x_1和x2x_2都是随机变量x可能的取值。对于向量值变量,我们会将随机变量写成x\textbf{x},它的一个可能取值为x\boldsymbol{x}。就其本身而言,一个随机变量只是对可能的状态的描述;它必须伴随着一个概率分布来指定每个状态的可能性。转载 2017-08-16 15:56:22 · 815 阅读 · 0 评论 -
8.5 范数
在机器学习中,我们经常使用被称为范数(norm)的函数衡量向量大小。形式上,LpL^p范数的定义如下: ||x||p=(∑i|xi|p)1p||x||_p=(\sum_i|x_i|^p)^{\frac{1}{p}} 其中p∈Rp\in \mathbb R,p≥1p \ge 1。原创 2017-07-16 16:00:01 · 1119 阅读 · 0 评论 -
8.3 单位矩阵和逆矩阵
线性代数提供了被称为逆矩阵(matrix inversion)的强大工具。对于大多数矩阵A,我们都能通过矩阵逆解析地求解式Ax=bAx=b。原创 2017-07-06 10:38:52 · 27306 阅读 · 0 评论 -
6.7 箱线图
6.7.1 箱线图简介线图就是由一组数据5个特征绘制的一个箱子和两条线段的图形,这种直观的箱线图不仅能反映出一组数据的分布特征,而且还可以进行多组数据的分析比较。这五个特征值,即数据的最大值、最小值、中位数和两个四分位数。如下图所示:箱线图四分位数[Quartile],就是统计学中把所有数值由小到大排列并分成四等份,处于三个分割点位置的数值就是四分位数。第一四分位数 (Q1),又称“较小四原创 2017-06-29 22:08:59 · 1052 阅读 · 0 评论 -
6.8 绘图实例与总结
6.8.1 绘图实例从网络上下载真实数据CSV文件,本数据集汇总了从1970年到2011年之间美国大学各专业中女生数占总学生数的百分比例数值,如下图所示:1970-2011各专业女生百分比例利用Pandas库导入CSV文件,并快速绘制生物学专业女生比例随着年份变化的曲线图(plot方法),示例代码:import pandas as pdimport matplotlib.pyplot原创 2017-06-29 22:09:02 · 604 阅读 · 0 评论 -
7.6 模型拟合及预测
在分析一个数据集合时,有三个需要解决的任务:按照一个或一些选出的模型对数据进行拟合;从一些已经拟合的类型中选取最合适的模型;根据收集的数据做出预测。7.6.1 模型拟合 基于前面章节介绍的Sklearn库提供的各种模型,对预处理后的数据集进行拟合,其主要用到各种模型类的fit方法。示例代码如下:1. 有监督学习 线性回归,示例代码:lr.fit(X, y) 支持向量机,原创 2017-06-29 22:09:13 · 2777 阅读 · 0 评论 -
7.5 创建模型
机器学习是一种重在寻找数据中的模式并使用这些模式来做出预测的研究和算法的门类。使用何种机器学习算法,其很大程度上依赖于可用数据的性质和数量以及每一个特定用例中的训练目标。机器学习算法主要分为监督学习、无监督学习和半监督学习三大类,本书第二部分将具体讨论每种算法模型的数学原理及代码。本节简单介绍每种算法的含义以及导入各种算法模型的方法。sklearn提供了监督模型和无监督模型两类算法,然后通过调节算原创 2017-06-29 22:09:10 · 307 阅读 · 0 评论 -
7.2 数据加载与切分
7.2.1 数据加载数据分析首先要加载数据,一般使用NumPy中的数组或者Pandas中的DataFrame等数据结构来存放数据,示例代码:import numpy as npX = np.random.random((10,5))y = np.array(['M','M','F','F','M','F','M','M','F','F','F'])X[X 以上代码,矩阵X表示的是10行原创 2017-06-29 22:09:07 · 284 阅读 · 0 评论 -
7.1 Scikit-learn库简介及快速入门
7.1.1 Scikit-learn简介Scikit-learn(以下简称sklearn)是开源的Python机器学习库,它基于Numpy和Scipy,提供了大量用于数据挖掘和分析的工具,包括数据预处理、交叉验证、算法与可视化算法等一系列接口。sklearn的官方网站是http://scikit-learn.org/stable/,在上面可以找到相关的Scikit-Learn的资源,模块下载,文原创 2017-06-29 22:09:04 · 694 阅读 · 0 评论 -
7.3 数据预处理
7.3.1 数据预处理preprocessing 现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行提供给机器学习模型。为了提高数据利用的质量产生了数据预处理技术。 数据预处理是指对所收集数据进行分类或分组前所做的审核排序等必要的处理。现实世界中数据大体上都是不完整,不一致的脏数据,无法直接进行数据挖掘,或挖掘结果差强人意。为了提高数据挖掘的质量产生了数据预处理技术。 数据预原创 2017-06-29 22:09:22 · 973 阅读 · 0 评论 -
7.8 回归模型评估与交叉验证
回归模型评估有三种方法,分别是:平均绝对值误差、均方误差和R平方值,如表1所示:指标描述metrics方法Mean Absolute Error(MAE)平均绝对误差from sklearn.metrics import mean_absolute_errorMean Square Error(MSE)平均方差from sklearn.metrics impor原创 2017-06-29 22:09:19 · 16641 阅读 · 0 评论 -
7.4 特征选择
机器学习被广泛定义为“利用经验来改善计算机系统的自身性能”。事实上,“经验”在计算机中主要以数据的形式存在的,因此数据是机器学习的前提和基础。数据来源多种多样,它可以是结构数据,如数值型、分类型,也可以是非结构数据,如文本、语音、图片、视频。对于所有机器学习模型,这些原始数据必须以特征的形式加入到机器学习模型当中,并进行一定的提取和筛选工作。所谓特征提取,就是逐条将原始数据转化为特征向量的形式,此原创 2017-06-29 22:09:25 · 1267 阅读 · 0 评论 -
7.5 数据降维
当特征选择完成后,可以直接训练模型了,但是可能由于特征矩阵过大,导致计算量大,训练时间长的问题,因此降低特征矩阵维度也是必不可少的。常见的降维方法除了以上提到的基于L1惩罚项的模型以外,另外还有主成分分析法(PCA)和线性判别分析(LDA),线性判别分析本身也是一个分类模型。PCA和LDA有很多的相似点,其本质是要将原始的样本映射到维度更低的样本空间中,但是PCA和LDA的映射目标不一样:PCA是原创 2017-06-29 22:09:28 · 967 阅读 · 0 评论 -
7.9 聚类模型评估
如果有了类别标签,那么聚类结果也可以像分类那样计算准确率和召回率。但是不应该将分类标签作为聚类结果的评价指标,除非你有相关的先验知识或某种假设,知道这种分类类内差距更小。但是它还是给出了几种评价标准。7.9.1 调整兰德系数 (Adjusted Rand index)1. 数学原理 兰德系数(Rand index)需要给定实际类别信息C,假设K是聚类结果,a表示在C与K中都是同类别的元素对原创 2017-06-29 22:09:31 · 26486 阅读 · 1 评论