精华内容
下载资源
问答
  • 本文是吴恩达《机器学习》视频笔记第15篇,对应第1周第15个视频。“Linear Algebra review(optional)——Matrix-vector multiplication”上一小节讲了矩阵的加法、矩阵和标量相乘;...其运算的规则...

    本文是吴恩达《机器学习》视频笔记第15篇,对应第1周第15个视频。

    “Linear Algebra review(optional)——Matrix-vector multiplication”

    上一小节讲了矩阵的加法、矩阵和标量相乘;除此之外,矩阵还可以和矩阵相乘,本节讲稍微特殊一点的情况,即矩阵和向量相乘。

    一个示例

    如下图,让一个3×2的矩阵和一个2维的列向量相乘,会得到什么样的结果呢?

    d74bdc9ba01f655d091aeeae39548dd4.png

    其运算的规则如下图,

    73a9da524b53b1c2b20471f527a23515.png

    从上图可知,矩阵和向量的乘法规则比较有意思,一个矩阵和一个向量乘得到一个新的列向量。而列向量的维数就是矩阵的行数,等式左边的矩阵和向量的形状也比较意思,矩阵的列数必须等于向量的维数,只有这样才能进行矩阵和向量的乘法。上面这个例子,一个3×2的矩阵和一个2×1的向量相乘,得到一个3×1的向量。

    矩阵、向量相乘的过程

    把上面的特例抽象成更一般的形式如下图:

    70790426fcc354e8562ec57ce77d82d1.png

    一个m×n的矩阵乘一个n×1的向量,这里要注意矩阵的列数必须等于向量的行数才能相乘,得到的结果是一个m×1的向量。

    而且我们还可以看出,在做矩阵和向量的乘法时,它们的次序也很重要。一个列向量和矩阵乘,矩阵必须在前面、列向量必须在后面。比如:

    800a88c5ebc7cfe44e768631107509c7.png

    那么,我们费事巴拉地规定这种矩阵和向量的乘法有啥用呢?

    我们还是以卖房子的事为例,假设我有四套房,每个房的面积不同,而房屋面积和房屋售价之间的线性模型我已经确定了。

    如下图:

    dad15b6d981a91f32dda2ab7133e7fd6.png

    上图中,如果把左边四套房的面积代入右边的式子中,就可以得分别得到四套房的售价。如果我们用刚刚讲到的矩阵和向量的乘法表示上面这个事,写出来的式子会非常漂亮。如下图:

    04cb0f3835550674b389f5de661efc5b.png

    我们把模型中的两个参数揪出来组成一个列向量。然后呢,因为-40参数对应的是1,而0.25对应的是x,所以得到一个4×2的一个矩阵,而矩阵的第1列都是1. 就会得到上面图中下半部分的这样的一个矩阵与向量乘法的式子,再利用前面讲的矩阵与向量乘法的运算规则,可以用一个式子就表示出4套房子的售价的运算,厉害吧?

    有些同学可能觉得这种写法多此一举,更加麻烦。要注意,现在我们基础的运算都是用计算机来实现的,如果用代码来写这样的过程就更加容易了,这样一件事用一行代码就搞定了,而且房子的套数增加不会影响程序的结构,非常方便。如果没有这样的规定,我们可能需要for循环在代码中实现这个事情,这就有点麻烦了。

    下一讲将介绍更一般的矩阵和矩阵的乘法。

    展开全文
  • 在讨论SVM的时候,我们聊到了向量到超平面的距离,还说“距离”是个很重要的概念。这一次,我们将直接以向量之间的欧式距离为基础,探索一下传说中的K-means聚类,是个怎样的东东,据说它还有个很高大上的名字:“非...

    在讨论SVM的时候,我们聊到了向量到超平面的距离,还说“距离”是个很重要的概念。这一次,我们将直接以向量之间的欧式距离为基础,探索一下传说中的K-means聚类,是个怎样的东东,据说它还有个很高大上的名字:“非监督学习”

    首先,来个餐前菜,聊两个在平时聊天中经常被问到的话题,我把我的理解写在下面,不一定严谨,但用来应付我们对模型内部的理解,到目前来看,我觉得没有任何问题,下面就分别说一下。先贴张图:

    7617514d665568b7f7d070d604b332ed.png

    右边手写体是某大咖学习花书做的笔记,左边宋体字是我做的标注

    问题1:机器学习中,经常提到的向量是什么,张量又是什么?

    这个问题,在前几篇中略有提及,这里做一个大概的总结吧:

    在数学意义上,在二维中,向量是平面上的一个点。

    在物理意义上,你可以把它想成一条线,但需要定义一个原点,从原点到该点的连线,就是向量。

    三维类推,数学上,向量是三维空间中的一个点,物理上,也要定义原点,再连线。

    计算机数据里,一个向量,可以把它看成数据库中的一条记录,或一列数据,因为有时候你需要转置。

    张量,数学上和物理上的定义,和向量是一回事。

    但在机器学习和深度学习这个领域内,他们把张量,说成是一组向量的集合。名字上有区别,张量是tensor,向量是vector,一个tensor可以是一个或一个以上vector的集合。

    ————————————————————————

    问题2:张量,亦即是向量的集合,存在的意义是什么?

    意义是形成矩阵,往线性代数上面靠,便于批量计算。所以在这种计算中,很少会用for循环,而是直接一个矩阵丢进去,用矩阵乘法或加法进行计算,满足一些计算规律,比如分配律啊,交换律啊,啥的,好变换一些,这也是numpy存在的意义。

    来看看python代码里,观察到的向量和张量是什么样子的:

    我们在爬坡,从线性回归开始,数据分析中一大波数学方法即将袭来里,曾经这样使用过线性回归,

    X = np.array(sport_data[factor_name][:, np.newaxis])model.fit(X, sport_data[target_name])  # sport_data[target_name]就是Y

    X和Y的区别看出来没有,X用的数据,多了一个[:, np.newaxis],这是用来扩展维度的,这里的维度指的是向量维度dim,而不是数据维度,也就是说,X比Y多了一层方括号,为啥要多这层方括号?因为X是一组向量vector的集合,他们称这是“张量”,即tensor。

    我们在用from sklearn.model_selection import train_test_split这个工具直接进行数据集切分的时候,返回的X数据,也比Y数据,多一层方括号,即多一个维度的dim,就是因为X是一个张量tensor。例如:

    8884e7de5146e13f457191dbd9d46242.png

    看出区别没有,需要这么做,而且必须这么做,无论是一条记录还是多条记录,X都是要比Y多一个维度的(保个底,大部分时候是这样)。

    ——————————————————————————

    Now,进入今天的正题

    我们先看看,什么是“欧式距离”,顾名思义,欧式距离就是欧几里得距离,就是几何距离,我们仍以平面上的两个点,作为向量,来做示意图:

    7ffc29c542b13f34ac396abcf9a515de.png

    图1

    向量a和向量b之间的距离dist,完全可以求出来吧,上勾股定理,下面直接列一下公式,二维情况下,令(a1,a2)=(x1,y1),(b1,b2)=(x2,y2):

    f2966907f2c4f5b072adce571a3776f3.png

    推广到N维情况下:

    34a079e74d08cd9bce29c127d3569c12.png

    不要被公式吓到,说白了,就是将两个向量,对应的元素相减,再平方,再把所有的这些值,累加起来,然后开方,即可。

    python表达式是:

        import numpy as np    def dist_E(vector1, vector2):        return np.sqrt(np.sum(np.square(vector1-vector2)))

    当然,scipy库中有现成的欧式函数方法,可以直接调用

    from scipy.spatial.distance import cdist# metric='euclidean'即为欧式距离cdist(vector1, vector2, metric='euclidean')

    计算这个欧式距离能做什么呢?还是看图1,如果这两个向量之间的欧式距离越小,他俩就挨得越近,我们通常可以认为他俩越相似,越有可能属于同一类,诸如此类的表述,总之就是说他俩关系密切。

    比如,还是以我们之前用过的数据,学生的体育成绩表,如果学生A和学生B的数据['100m', '身高',  '体重', 'bmi'],这个4维数据,做成两个向量后,计算两个向量之间的距离,发现距离很小的话,那么如果我们知道学生A的1000m跑的很快,我们是否可以基本确定学生B的1000米也能跑的很快呢?

    接下来我们就来验证这个事。首先,我们挑两个差不多数据的学生出来,怎么挑呢,先确定一个学生,然后把这个学生和所有其他学生之间的数据,计算欧式距离,距离最小的,我们挑选出来,然后用线性相关的皮尔逊相关系数来验证一下(这个系数,往往也用来衡量相似度啊,越接近1,越相似,但不能跟线性方程中自变量的系数弄混)。——因为维度较少(参与计算的是4维),这样做稍微有点牵强,但作为示例来说,是够了的,只要记住这个方法可以推广到更多维的情况。

    依然用爬坡,从线性回归开始,数据分析中一大波数学方法即将袭来中造的数据

    # coding:utf-8import pandas as pdimport numpy as np###标准化def standard(df, filter_column):    for col in df.columns:        if col in filter_column:            continue        a = df[col].astype('Float64')        df[col] = (a - np.mean(a)) / np.std(a)    return dfdef _sigmoid(x):    u = 1 / (2.71 ** (-x) + 1)    return u###映射def sigmoid(df, filter_column):    for col in df.columns:        if col in filter_column:            continue        a = df[col].astype('Float64')        df[col] = _sigmoid(a)    return dfsport_data = pd.read_csv('体育成绩表.csv', encoding='utf-8-sig', engine='python').set_index('姓名')filter_column = ['1000m']sport_data = standard(sport_data, filter_column=filter_column)sport_data = sigmoid(sport_data, filter_column=filter_column)# 分为三类sport_data['grade'] = 1m1000_grade_0 = sport_data['1000m'].quantile(q=0.33)m1000_grade_1 = sport_data['1000m'].quantile(q=0.66)sport_data.loc[sport_data['1000m'] > m1000_grade_1, 'grade'] = 2sport_data.loc[sport_data['1000m'] < m1000_grade_0, 'grade'] = 0my_data = np.array(sport_data)X_data = my_data[:, :-2]  # 用于计算的数据,不要标签和1000m成绩

    批量计算欧式距离的方法:

    source_vector = X_data[-1, :]  # 姑且用最后一个学生的数据做对比标的吧# 批量计算欧式距离distances = np.sqrt(np.sum(np.asarray(source_vector - X_data)**2, axis=1))# 除了自己以外,距离最小的人的序号similar_vector_index = list(distances).index(np.sort(distances)[1])# 打印两个向量print(X_data[similar_vector_index, :])print(source_vector)# 打印两个学生数据print(sport_data.iloc[similar_vector_index])print(sport_data.iloc[-1])

    f28b9d66786bd4ba7c98b205b40b4826.png

    没错,这两个学生的grade,都是0,的确是一类人。

    计算一下我们挑选出来的两个向量,之间的皮尔逊相关系数

    from scipy.stats import pearsonrp_1 = pearsonr(source_vector, X_data[similar_vector_index, :])print(p_1)

    5d277b54ddb8f36ec69276df319092b0.png

    这个值是一个元组,p_1[0]是皮尔逊相关系数,0.95是一个相当不错的值,强相关。而p_1[1]是这对关系的p_value值,当这个值小于0.05的时候,才具有统计意义,这里似乎太靠近阈值,没关系,这主要是因为我们的维度少,向量不够长。

    我们用最小二乘法再验证一下

    import statsmodels.api as smX2 = sm.add_constant(source_vector)est = sm.OLS(X_data[similar_vector_index, :], X2)  # OLS就是最小二乘法est2 = est.fit()print(est2.summary())

    acfdf6c32c60d788630f2f40e2e32a6d.png

    最上面那个红框,就是我们之前聊过的R^2判断系数,右下的红框就是刚刚计算皮尔逊相关系数给出的p_value,这个值最好小于0.05,才有统计意义,这涉及到统计分析方法中的F检验和T检验,各位有空可以去恶补一下。左下的红框,就是线性回归方程的系数和常数。

    总的来说,这两个向量的相关性,距离,都是符合预期的。

    说了这么多,还没进入正题,K-means还没弄,下面就弄。

    K-means的算法原理,可以上网去搜一下,简单说,和世界上其他的聚类,几乎是同一个原则,即:让类内距离尽量的小,同时,让类间距离尽量的大。对K-means来说,指定一个K值(簇数),本着让簇内距离最小的原则,一顿迭代,找到各个簇的成员,然后,随机初始化每个簇的中心点,经过一顿迭代操作,找出每个簇中心点的距离,把多次迭代后,最大的那个间距记下来,作为簇间间距。经过这两个类型的迭代(两种迭代是嵌套进行的)之后,确定综合性能(簇内间距小,簇间间距大)最好的一种方案

    首先,我们假定事先,我们并不知道究竟该聚为多少簇(一个簇,看成一类)合适,因此,我们做一个循环迭代,让簇数量从1~20,迭代着看看效果

    from sklearn.cluster import KMeans  # k-means包from scipy.spatial.distance import cdist  # 欧式距离import matplotlib.pyplot as pltimport matplotlib as mplmpl.rcParams['font.sans-serif'] = ['SimHei']  # 指定默认字体mpl.rcParams['axes.unicode_minus'] = False  # 解决保存图像是负号'-'显示为方块的问题K = range(1, 20)mean_distortions = []for k in K:    kmeans = KMeans(n_clusters=k)    kmeans.fit(X_data)    # 这里出现cdist这个函数,就是我们上面说过的欧式距离    mean_distortions.append(sum(np.min(cdist(X_data, kmeans.cluster_centers_, metric='euclidean'), axis=1)) / X_data.shape[0])plt.plot(K, mean_distortions, 'bx-')plt.xlabel('k')plt.ylabel(u'平均畸变程度')plt.title(u'用肘部法确定最佳的K值')plt.show()

    这里用来确定分类效果的,是K-means的肘部法则,即处于曲线转弯位置的簇的数量,是比较合适的分类数量。

    74eea48e5fabb7a0ea20bb5bf5130e0d.png

    红框中,都可以认为是肘部K=(2,3,4),最后,我们验证出来的结果是,K=2及K=3时,分类效果和我们事先打的标签,效果比较接近。

    K-means算法的评估方法有2个。

    一个是“肘部法则”,依据是一个被称为“畸变程度”的东东,每个簇的质点(中心点)与簇内样本点的平方距离误差和称为畸变程度(distortions),那么,对于一个簇,它的畸变程度越低,代表簇内成员越紧密,畸变程度越高,代表簇内结构越松散。很显然,如果每个点单独作为一个簇,那么这个畸变程度是最低的,但那也是没有意义的。而所有点都在一个簇内,畸变程度最高,但也没有意义。我们要找的“肘部”,就是畸变程度受簇数增加,变化不大的时候,前面那几个数,当作肘部,有时候肘部只有一个数,有时候不止一个,但起码可以大概把范围确定下来,我们可以再逐个尝试。

    另一个是“轮廓系数”,也是围绕距离去计算的,原理和实现方法,各位看官可以去网上搜一下,依然可以用本例中的数据测试。

    我们把最终效果打印出来看看,还是以分三类为例

    from sklearn.cluster import KMeansestimator = KMeans(n_clusters=3)  # 构造聚类器estimator.fit(X_data)  # 聚类label_pred = estimator.labels_  # 获取聚类标签print('聚类结果:', label_pred)print('标签:', sport_data['grade'].tolist())#绘制k-means结果x0 = X_data[label_pred == 0]x1 = X_data[label_pred == 1]x2 = X_data[label_pred == 2]K-means聚类出来的结果idx_0 = [i for i, x in enumerate(label_pred) if x == 0]idx_1 = [i for i, x in enumerate(label_pred) if x == 1]idx_2 = [i for i, x in enumerate(label_pred) if x == 2]# 我们之前打的标签idx_0_m = [i for i, x in enumerate(sport_data['grade'].tolist()) if x == 0]idx_1_m = [i for i, x in enumerate(sport_data['grade'].tolist()) if x == 1]idx_2_m = [i for i, x in enumerate(sport_data['grade'].tolist()) if x == 2]# 各类各有多少个样本print(len(x0))print(len(x1))print(len(x2))# 各类聚类结果在原始数据中的位置print(idx_0)print(idx_1)print(idx_2)# 各类原始标签位置print(idx_0_m)print(idx_1_m)print(idx_2_m)

    03031d2e2b3dbf47a90faf970433d7b9.png

    差不多就是这么个结果,有点相似,各位看官自己找不同,O(∩_∩)O

    分成3类后,挑选100m和tall两个特征来画聚类二维图,效果如下:

    739ae1ef425d16bff98af529f1b0dcf1.png

    如果想要真正探究一下准确率,应该怎么做呢?

    有个办法,我想到了另一个相似性(或距离,1-相似性),这个相似性叫做:杰卡德相似性  Jaccard similarity,定义如下:

    a84db13539216ceac59856ca6deff7e3.png

    即,杰卡德相似度,等于,集合A和集合B的交集长度,除以他俩的并集长度。这个值处于[0, 1]区间,值越大,说明两个集合就越相似,如果这两个集合完全重合,交集和并集一样大,那么这个值就是1。

    于是,我们在某次聚类之后,挑选出两个list去计算,如下:

    # 被挑选出来的两列数,每个数字是学生处于数据表中的index位置a_list = [0, 1, 5, 8, 9, 11, 16, 17, 18, 19, 20, 21, 22, 23, 29, 32, 37, 40, 41, 43, 45, 48, 49, 50, 59, 64, 68, 69, 71, 86, 90, 95]b_list = [0, 1, 8, 11, 14, 16, 17, 18, 21, 22, 23, 32, 37, 41, 42, 43, 45, 46, 48, 49, 50, 59, 60, 61, 62, 63, 64, 69, 71, 86, 87, 90, 93, 95]# 交集intersection = list(set(a_list).intersection(set(b_list)))# 并集union = list(set(a_list).union(set(b_list)))print(intersection)jaccard_similarity = len(intersection) / len(union)print(jaccard_similarity)

    1bebee786dd0c229b178d9130f63dbf0.png

    交集: [0, 1, 8, 11, 16, 17, 18, 21, 22, 23, 32, 37, 41, 43, 45, 48, 49, 50, 59, 64, 69, 71, 86, 90, 95]

    jaccard_similarity: 0.6097560975609756

    效果一般,勉强可信。

    如果分成2类,效果如下:

    9a36e325d2534a6bfff5695eacfe344d.png

    因为聚类非监督学习打标签和我们自己打的标签,0、1、2是无法指定的,因此,聚类结果的标签和自己打的标签,基本是对不上的,但是,看下面我们找出来各个类别中,包含元素的具体位置,目测,相似度还是可以的。

    2分类时的散点情况,100m和tall特征

    39a64ec4be84ec697c1fe151df84a7d5.png

    从聚类结果中,挑选两列出来,比较杰卡德相似度情况:

    a_list = [2, 3, 4, 6, 7, 10, 12, 13, 15, 24, 25, 26, 27, 30, 31, 34, 35, 36, 38, 44, 47, 51, 52, 53, 54, 55, 56, 58, 65, 66, 67, 70, 72, 73, 75, 77, 78, 80, 81, 82, 83, 84, 88, 89, 91, 92, 94, 97, 98, 99]b_list = [0, 2, 4, 9, 10, 12, 13, 15, 24, 25, 26, 29, 30, 31, 34, 36, 38, 40, 44, 47, 51, 52, 53, 54, 55, 65, 66, 67, 70, 72, 73, 75, 77, 81, 83, 84, 85, 88, 89, 91, 92, 97, 99]intersection = list(set(a_list).intersection(set(b_list)))union = list(set(a_list).union(set(b_list)))print('交集:', intersection)jaccard_similarity = len(intersection) / len(union)print('jaccard_similarity:', jaccard_similarity)

    交集: [2, 4, 10, 12, 13, 15, 24, 25, 26, 30, 31, 34, 36, 38, 44, 47, 51, 52, 53, 54, 55, 65, 66, 67, 70, 72, 73, 75, 77, 81, 83, 84, 88, 89, 91, 92, 97, 99]

    jaccard_similarity: 0.6909090909090909

    2分类时,聚类效果和人工标签的效果稍微好一些,不过也只有7成左右相似。这个可能与数据有关,也有可能是算法需要打磨,不过,作为例子来说,本例基本能够说明问题。

    至此,我们在一个例子中,使用了欧式距离,使用了皮尔逊相关系数,并进行了最小二乘法验证,最后用K-means聚类,自动确定需要分的类别数量,并使用杰卡德相似度,将自动打标签,和我们手工打的标签进行对比。

    ——————分割线——————

    至此,可能有些看官心存狐疑,似乎觉得有很多计算包,或者机器学习包,python都提供了,没必要讲那么多原理,推导那么些公式,直接调包不就行了?究竟行不行呢?答案是,行!但天花板就低了。

    这里我解释一下:

    在将来的很多时候,我们可能并不是用这些模型去直接输出结果,判断分类啥的,说到底,就算调包,也是工具,最多就是做个demo玩玩。真正有用的是理解这些工具包的计算逻辑,理解他们的一些中间变量的含义,代表了什么,我们可能需要把这些中间变量,拿去做另一个模型的输入,或者用来表示一个相对量,类似对原始数据进行了编码。如果我们不能深入理解这些算法的含义,我们的思想就会受到局限,很多玩法甚至都不会进入我们的脑海,思路嘎然而止。——这就是天花板。

    理解得越深,天花板越高,直至拿掉天花板,面对整个天空。

    很明显的,我们将来会用本文中的很多知识,去做更有意思的事。

    一套打完,各位看官是否满意。

    876fde45c27b34c2f90be6c38a05761e.png

    展开全文
  • 向量运算的基本性质 向量加法也遵循交换、结合。 数量乘法也遵循分配、结合。 这些并不是定义得来的,而是通过严谨的数学证明得来。 例如 零向量 不定义什么是零向量,我们从推导出一个性质出发。 举例...

    向量运算的基本性质

    向量加法也遵循交换律、结合律
    在这里插入图片描述

    数量乘法也遵循分配律、结合律
    在这里插入图片描述
    在这里插入图片描述
    这些并不是定义得来的,而是通过严谨的数学证明得来。
    例如
    在这里插入图片描述

    零向量

    不定义什么是零向量,我们从推导出一个性质出发
    在这里插入图片描述

    举例:证明确实存在一个向量 O
    在这里插入图片描述
    意味着在每一个维度上都需要相等 u1 + O2 = u1 …
    在这里插入图片描述

    注意这个零向量 O 没有箭头。坐标原点,各个维度都为0,都指向自己

    对于任意一个向量 u,都存在一个向量 -u,满足:u + -u = u
    上述 -u 是唯一的。

    反证法,证明-u 是唯一的。
    在这里插入图片描述

    反证法和数学归纳法是经常被使用的方法。
    当同学面对一个证明问题没有思路,使用这个两个方法几乎都能找到方法。

    展开全文
  • a·b=|a|·|b|·cos〈a,b〉是定义,推出交换,分配率,与数的乘法的结合,以及垂直时为零。∴(x1,y1)·(x2,y2)=[x1i+y1j]·[x2i+y2j]=x1x2(i·i)+y1y2(j·j)+[x1y2+x2y1](i·j)=x1x2+y1y2.[ i,j是x轴。y轴上...

    a·b=|a|·|b|·cos〈a,b〉是定义,推出交换律,分配率,与数的乘法的结合

    律,以及垂直时为零。

    ∴(x1,y1)·(x2,y2)=[x1i+y1j]·[x2i+y2j]

    =x1x2(i·i)+y1y2(j·j)+[x1y2+x2y1](i·j)=x1x2+y1y2.

    [ i,j是x轴。y轴上的单位向量。i²=1, j²=1, i·j=0 ]

    看你是要高中证明还是大学证明还是更严密的证明。

    向量有点量积、矢量积、旋量积之分。大多高中只接触个点积而已

    三维向量外积(即矢积、叉积)可以用几何方法证明;也可以借用外积的反对称性、内积的分配律和混合积性质,以代数方法证明。

    下面把向量外积定义为:

    a

    ×

    b

    =

    |a|·|b|·Sin

    b>.

    分配律的几何证明方法很繁琐,大意是用作图的方法验证。有兴趣的话请自己参阅参考文献中的证明。

    下面给出代数方法。我们假定已经知道了:

    1)外积的反对称性:

    a

    ×

    b

    =

    -

    b

    ×

    a.

    这由外积的定义是显然的。

    2)内积(即数积、点积)的分配律:

    a·(b

    +

    c)

    =

    a·b

    +

    a·c,

    (a

    +

    b)·c

    =

    a·c

    +

    b·c.

    这由内积的定义a·b

    =

    |a|·|b|·Cos

    展开全文
  • 第二节 常用矩阵运算称为列矩阵(或列向量)。称为行矩阵(或行向量)。行数相等且列数相等的两个矩阵,称为同型矩阵一、矩阵的加法(具体看线性代数)说明:...矩阵乘法运算律(1)(AB)C=A(BC);(2)A(B+C)=AB+AC;(B+C)A...
  • 矩阵乘法

    2019-09-19 15:26:56
    矩阵乘法必须要满足矩阵A的列数必须与矩阵B的行数相同并且A的行数必须与B的列向量维数相同,这样才能进行矩阵的乘法运算 (矩阵的乘法不满足乘法的交换 但是满足结合) ...
  • 掌握目标:1、了解矩阵的基本概念以及矩阵的意义2、掌握矩阵的加法减法乘法(包括数乘),以及两个矩阵能做上面运算的条件3、 矩阵是否满足交换和结合4、掌握矩阵的转秩和性质,以及对称矩阵大纲1.矩阵的基本概念...
  • 第三章,矩阵,02-矩阵乘法定义规则1规则2规则3规则4运算律不满足交换律满足方阵的幂可交换单位矩阵E纯量阵 定义 规则1 行向量与列向量乘法要求两个向量的元素个数相等。 规则2 行向量与列向量乘法是用行向量的...
  • 高数 向量、矩阵回顾

    万次阅读 2019-10-22 11:39:49
    如果是向量的加法和数乘运算,统称为向量的线性运算。对于不同线性运算一般有不同的形式,它们满足交换、结合、分配等。 2、隐函数:可以转为显函数如,不可转为显函数如。 3、显函数:y=2x+1。 ...
  • 线性运算是加法和数量乘法,对于不同向量空间线性运算一般有不同的形式,它们必须满足交换,结合,数量加法的分配向量加法的分配。线性是指量与量之间按比例、成直线的关系,在空间和时间上代表规则和光滑...
  • 对每个 ,令 表示所有形如 的集合,...域上的向量空间E是定义了加法和数乘运算向量的集合,满足:1)关于加法E是阿贝尔群,并且包含单位元02)对于域K上的数,满足对向量空间E中元素加法的分配3)分配4)数乘运...
  • 3.矩阵乘法没有交换:AXB!=BXA(矩阵的乘法没有交换)  矩阵乘法有结合:AxBxC=(AxB)xC=Ax(BxC) 4.单位矩阵。nxn单位矩阵,不同的单位矩阵有不同的维度n 5.对于任意矩阵A,乘以单位矩阵后的结果都等于矩阵...
  • 本节首先以R2\mathbb{R}^2R2和R3\mathbb{R}^3R3空间为例,引入了向量的概念、向量的几何表示,并介绍了向量的一些基本运算和性质,例如向量的加法和标量乘法、交换、结合等。接着引入了线性组合的概念,并将线性...
  • 向量满足一些与加法和乘法相关的结合、交换、分配等,矩阵也满足某些定律,它们是: (1)A + B = B + A(加法交换) (2)A + (B + C) = (A + B) + C(加法结合) (3)A*(B*C) = (A*B)*C(乘法结合...
  • 一个开始于(x1,y1),结束于(x2,y2)的向量可以写成v=(x2-x1,y2-y1).  ... v-w = (x1-x2, y1-y2). ca=(ca1,ca2)称为标量乘法. 向量运算法则(交换,结合) <br />【点积(内积
  • 3.矩阵向量(矩阵)乘法 4.矩阵乘法性质 满足结合,不满足交换 5.单位矩阵 对角线为1,其他位置为0的矩阵 6.逆 矩阵A*矩阵B = 单位矩阵 那么A和B就互为逆矩阵 7.转置 行列互换 数组间运算 1.数组与数字是直接...
  • 矩阵乘法分配和结合 矩阵的转置 *特别注意(iv) 对称矩阵(对称阵) 方阵的行列式 伴随矩阵(伴随阵) 2.3 逆矩阵 线性变换引入逆矩阵: 逆矩阵定义及定理 奇异矩阵及非奇异矩阵 逆矩阵的运算...
  • 注:内积类似于行列式,是向量间的运算,实际上是一个数。 几点注意: 如果x和y都是列向量,则 [x,y] = [y,x] (乘法交换) [λx,y] =λ[x,y]= [x, λy] (提取公因子、乘法结合) [x+y,z] = [x,z]+[y,z] ...
  • 如果这两种运算满足封闭性、结合、交换和对逆元素的要求,那么这些标量就构成了一个标量场。我们熟悉的标量有实数、复数和有理函数等。 二. 线性空间(向量空间): 它也许是最重要的数学空间。向量空间中包...
  • 加法封闭性、乘法封闭性,且满足8条运算规则:加法交换、加法结合、存在零元素、存在负元素、1、两个系数一个向量乘法结合、两个系数一个向量乘法分配、一个系数两个向量乘法分配、 2、正规矩阵。...
  • Hilbert Space

    2019-05-11 21:17:00
    - 加法运算- 纯量乘法运算 这两个运算有8个特性: - 加法交换性- 加法结合性\(\alpha+\beta=\beta+\alpha\)- 加0得到自身(零元性)- 负元素性- 乘1得到自身- 乘法结合- 乘法交换\((k+l)\alpha=k\alpha+l\...
  • 线性代数回顾前言矩阵和向量1、张量2、矩阵3、向量矩阵和向量运算1、矩阵加法2、矩阵与标量乘除法3、矩阵与矩阵乘法(重要警告)矩阵运算特性1、不满足乘法交换2、满足乘法结合3、单位矩阵4、特殊技巧逆矩阵和...
  • 代数-线性代数

    2020-10-23 22:33:20
    (1)线性空间(向量空间):在数域P和集合K上定义加法和标量乘法运算,满足K上的加法交换/结合/单位元/可逆、P与K之间的数乘结合/单位元/向量加法分配/标量加法分配,一共8条运算规则,则称K是域P上的...
  • OI中的线性代数

    2019-03-14 15:00:43
    ##矩阵与矩阵的基本运算 定义: 行向量:矩阵的某一行所形成的...矩阵乘法的分配 A(B+C)=AB+AC (B+C)A=BA+CA 矩阵乘法的结合 ABC=A(BC) 不满足交换 单位矩阵 逆矩阵 行列式定义 ...
  • 线性代数学习笔记

    2017-10-17 16:25:23
    一、向量概念 向量是有顺序的一组数字,每个数字都是该向量的一个因素(element) 因素横着排列的...矩阵乘法不满足乘法交换:AB =! BA 线性代数8件运算规则: 1、x + y = y + x. 2、x + (y + z) = (x + y) + z
  • 线性代数

    2019-01-20 18:18:13
    矩阵与矩阵的基本运算 定义: 行向量:矩阵的某一行所...矩阵乘法的分配 A(B+C)=AB+AC (B+C)A=BA+CA 矩阵乘法的结合 ABC=A(BC) 不满足交换 单位矩阵 逆矩阵 行列式定义 行列式的展开 ...
  •  乘法运算需要满足数因子分配率、分配率、结合以及 2、线性相关。对于任一向量组而言,不是线性相关就是线性无关的,若没有向量可以被有限个其他向量的线性组合表示,则是线性无关的,否则是线性相关。 3、线性...
  • 上述的四种布尔运算可以扩展到位向量(固定长度为ω,由0和1组成的串),对于位向量运算可以定义成参数的每个对应元素之间的运算。 布尔代数和整数算术运算有很多相似之处。例如乘法对加法有分配,写为 a∗(b+c)...

空空如也

空空如也

1 2 3
收藏数 48
精华内容 19
关键字:

向量乘法运算律