关键词:
(上接第一章)
1.2 对象、矩阵与矢量化编程
1.2.1对象与维度(略)
1.2.2初识矩阵(略)
1.2.3矢量化编程与GPU运算(略)
1.2.4理解数学公式与NumPy矩阵运算
1.矩阵的初始化
#coding:utf-8 import numpy as np #导入NumPy包 #创建3*5的全0矩阵和全1的矩阵 myZero = np.zeros([3,5])#3*5的全0矩阵 print myZero myZero = np.ones([3,5])##3*5的全1矩阵 print myZero
输出结果:
Connected to pydev debugger (build 141.1580) [[ 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0.] [ 0. 0. 0. 0. 0.]] [[ 1. 1. 1. 1. 1.] [ 1. 1. 1. 1. 1.] [ 1. 1. 1. 1. 1.]]
#生成随机矩阵 myRand = np.random.rand(3,4)#3行4列的0~1之间的随机数矩阵 print myRand 输出结果如下: [[ 0.14689327 0.15077077 0.88018968 0.75112348] [ 0.30944489 0.77563281 0.82905038 0.25430367] [ 0.53958541 0.89695376 0.90681161 0.25453046]]
#单位阵 myEye = np.eye(3)#3*3的矩阵 print myEye 输出结果如下: [[ 1. 0. 0.] [ 0. 1. 0.] [ 0. 0. 1.]]
2.矩阵的元素运算
矩阵的元素运算是指矩阵在元素级别的加减乘除运算。
#元素的加和减:条件是矩阵的行数和列数必须相同 from numpy import *#导入NumPy包 myOnes = ones([3,3])#3*3的全1矩阵 myEye = eye(3) print myOnes+myEye print myOnes-myEye 输出结果如下: [[ 2. 1. 1.] [ 1. 2. 1.] [ 1. 1. 2.]] [[ 0. 1. 1.] [ 1. 0. 1.] [ 1. 1. 0.]]
#矩阵乘法 mymatrix = mat([[1,2,3],[4,5,6],[7,8,9]]) a = 10 print a*mymatrix 输出结果: [[10 20 30] [40 50 60] [70 80 90]]
#矩阵所有元素求和 mymatrix = mat([[1,2,3],[4,5,6],[7,8,9]]) print mymatrix.sum() 输出结果: 45
‘‘‘ 矩阵各元素的积:矩阵的点乘同维对应元素的相乘。 当矩阵的维度不同时,会根据一定的广播将维数扩 充到一致的形式 ‘‘‘ mymatrix1 = mat([[1,2,3],[4,5,6],[7,8,9]]) mymatrix2 = 1.5*ones([3,3]) print multiply(mymatrix1,mymatrix2) 输出结果: [[ 1.5 3. 4.5] [ 6. 7.5 9. ] [ 10.5 12. 13.5]]
#矩阵各元素的n次幂:n=2 mymatrix1 = mat([[1,2,3],[4,5,6],[7,8,9]]) print power(mymatrix1,2) 输出结果: [[ 1 4 9] [16 25 36] [49 64 81]]
#矩阵乘以矩阵 mymatrix1 = mat([[1,2,3],[4,5,6],[7,8,9]]) mymatrix2 = mat([[1],[2],[3]]) print mymatrix1*mymatrix2 输出结果: [[14] [32] [50]]
#矩阵的转置 mymatrix1 = mat([[1,2,3],[4,5,6],[7,8,9]]) print mymatrix1.T #矩阵的转置 mymatrix1.transpose() #矩阵的转置 print mymatrix1 输出结果如下: [[1 4 7] [2 5 8] [3 6 9]] [[1 2 3] [4 5 6] [7 8 9]]
mymatrix = mymatrix1[0]#按行切片 print u"按行切片:",mymatrix mymatrix = mymatrix1.T[0]#按列切片 print u"按列切片:",mymatrix mymatrix = mymatrix1.copy()#矩阵的复制 print u"复制矩阵:",mymatrix #比较 print u"矩阵元素的比较: ",mymatrix<mymatrix1.T 输出结果: 矩阵的行数和列数: 3 3 按行切片: [[1 2 3]] 按列切片: [[1 4 7]] 复制矩阵: [[1 2 3] [4 5 6] [7 8 9]] 矩阵元素的比较: [[False True True] [False False True] [False False False]]
资料来源:《机器学习算法原理与编程实践》郑捷
郑捷《机器学习算法原理与编程实践》学习笔记(第四章推荐系统原理)kmeans
(上接第二章) 4.3.1KMeans算法流程 算法的过程如下: (1)从N个数据文档随机选取K个文档作为质心 (2)对剩余的每个文档测量其到每个质心的距离,并把它归到最近的质心的类 (3)重新计算已经得到的各... 查看详情
郑捷《机器学习算法原理与编程实践》学习笔记(第七章预测技术与哲学)7.3岭回归
7.3岭回归7.3.1验证多重共线性7.3.2岭回归理论7.3.3岭际分析7.3.4k值的判断7.3.5辅助函数 (1)导入多维数据集:加载数据集defloadDataSet(filename):numFeat=len(open(filename).readline().split(‘ ‘))-1#getnumberoffieldsdataMat=[]labelMat=[]fr=ope 查看详情
郑捷《机器学习算法原理与编程实践》学习笔记(第六章神经网络初步)6.5boltzmann机算法
6.5Boltzmann机算法6.5.1问题的提出6.5.2模拟退化原理6.5.3Boltzmann分布与退火过程6.5.4Boltzmann机类与退火过程 Boltzmann网络初始时,需要根据参数设置一系列的初始值,主要参数在_init_中 (1)构造方法如下classBoltzmannNet(object... 查看详情
郑捷《机器学习算法原理与编程实践》学习笔记(第七章预测技术与哲学)7.1线性系统的预测
7.1.1回归与现代预测 7.1.2最小二乘法 7.1.3代码实现(1)导入数据defloadDataSet(self,filename):#加载数据集X=[];Y=[]fr=open(filename)forlineinfr.readlines():curLine=line.strip().split(‘ ‘)X.append(float(curLine[0]) 查看详情
郑捷《机器学习算法原理与编程实践》学习笔记(第二章中文文本分类—朴素贝叶斯算法)
(上接第二章) 2.3分类算法:朴素贝叶斯 2.3.1贝叶斯公式推导(略) 分类的流程: 第一阶段:训练数据生成训练样本集:TF-IDF 第二阶段:对每个类别计算p(yi)。 第三个阶段:对每个特征属性计算... 查看详情
郑捷《机器学习算法原理与编程实践》学习笔记(第三章决策树的发展)_scikit-learn与回归树
(上接第三章) 3.4Scikit-Learn与回归树 3.4.1回归算法原理 在预测中,CART使用最小剩余方差(squaredResidualsMinimization)来判断回归时的最优划分,这个准则期望划分之后的子树与样本点的误差方差最小。这样决策... 查看详情
郑捷《机器学习算法原理与编程实践》学习笔记(第六章神经网络初步)6.3自组织特征映射神经网路(smo)
具体原理网址:http://wenku.baidu.com/link?url=zSDn1fRKXlfafc_tbofxw1mTaY0LgtH4GWHqs5rl8w2l5I4GF35PmiO43Cnz3YeFrrkGsXgnFmqoKGGaCrylnBgx4cZC3vymiRYvC4d3DF3自组织特征映射神经网络(Self-OrganizingFeatureMap。也称Kohonen映 查看详情
机器学习算法原理与编程实践之朴素贝叶斯分类
在介绍朴素贝叶斯分类之前,首先介绍一下大家都比较了解的贝叶斯定理,即已知某条件概率,如何得到两个时间交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)?可以通过如下公式求得:而朴素贝叶斯分类是一种简单... 查看详情
常用机器学习算法knn原理与实践
推荐两篇讲解与实践KNN比较好博客,感谢原作者总结http://blog.csdn.net/u012162613/article/details/41768407http://www.cnblogs.com/ybjourney/p/4702562.html 查看详情
机器学习算法与编程实践之中文文本分类
这周学习了机器学习算法与编程实践第二章——中文文本分类的部分内容。该章以文本挖掘为大背景,以文本分类算法为中心,详细介绍了中文文本分类项目的相关知识点。一、文本挖掘与文本分类的概念被普遍认可的文本挖掘... 查看详情
《深度卷积神经网络原理与实践》笔记第一章机器学习基础
...记(Version:1.0.2)整理作者:sq_csl第一章机器学习基础1.1机器学习概述1.1.1概念概念ML(MachineLearning)是一门发展了比较长时间的学科,其在发展过程中定义也发生了一些变化早期概念源于TomMit 查看详情
机器学习之逐次下降法(机器学习算法原理与实践)郑捷
逐次下降法的定义:对于给定的方程组,使用公式: 其中k为迭代次数(k=0,1,2,…) 逐步代入求近似解的方法称为迭代法如果存在(记为),称此迭代法收敛,显然就是方程组的解,否则称此迭代法发散。研究的收敛... 查看详情
机器学习笔记_prml_adaboost算法的原理与推导
转自:http://blog.csdn.net/v_july_v/article/details/40718799 Adaboost算法的原理与推导 1Adaboost的原理1.1Adaboost是什么 AdaBoost,是英文"AdaptiveBoosting"(自适应增强)的缩写,由YoavFreund和Robert 查看详情
《ros理论与实践》学习笔记机器人语音交互(代码片段)
《ROS理论与实践》学习笔记(七)机器人语音交互课程内容1.讯飞开放平台使用2.ROS语音识别与语音输出3.语音交互本讲作业结语在学习《ROS理论与实践》课程时,记录了学习过程中的编程练习,课后作业以及发现... 查看详情
学习笔记|机器学习决策树
文章目录一、算法原理二、基础知识1.自信息、信息熵与条件熵2.信息增益和增益率3.Gini值和Gini指数三、过拟合与剪枝四、连续值和缺失值处理1.连续值处理2.缺失值处理五、总结通过这篇博客,您将收获如下知识:熟悉决策树相... 查看详情
学习笔记|机器学习决策树
文章目录一、算法原理二、基础知识1.自信息、信息熵与条件熵2.信息增益和增益率3.Gini值和Gini指数三、过拟合与剪枝四、连续值和缺失值处理1.连续值处理2.缺失值处理五、总结通过这篇博客,您将收获如下知识:熟悉决策树相... 查看详情
阅读书单2020
...程序深入浅出密码学——常用加密技术原理与应用机器学习深入理解Java虚拟机:JVM高级特性与最佳实践HotSpot实战深入浅出promethuseElasticSearch源码解析与优化实践Tensorflow:实战Google深度学习框架深度学习原理与实践深度学... 查看详情
ufldl学习笔记与编程作业:linearregression(线性回归)
...。在deeplearning高质量群里面听一些前辈说。不必深究其它机器学习的算法。能够直接来学dl。于是近期就開始搞这个了,教程加上matlab编程,就是完美啊。新教程的地址是:http://ufldl.stanford.edu/tutorial/本节学 查看详情