精华内容
下载资源
问答
  • 本文讨论了与休哈特x-图相对应的X-图,纠正了Montgomery对T2值计算的原则错误,并提出利用Bonferroni不等式对异常样本点进行再检验的方法
  • MATLAB中均值、方差、均方差的计算方法 1、均值 数学定义: Matlab函数:mean >>X=[1,2,3] >>mean(X)=2 如果X是一个矩阵,则其均值是一个向量组。mean(X,1)为列向量均值,...
    MATLAB中均值、方差、均方差的计算方法
     

    1、 均值

    数学定义: 

     

    Matlab函数:mean

    >>X=[1,2,3]

    >>mean(X)=2

     

    如果X是一个矩阵,则其均值是一个向量组。mean(X,1)为列向量的均值,mean(X,2)为行向量的均值。

    >>X=[1 2 3

         4 5 6]

    >>mean(X,1)=[2.5, 3.5, 4.5]

    >>mean(X,2)=[2

                 5]

     

    若要求整个矩阵的均值,则为mean(mean(X))。

    >>mean(mean(X))=3.5

    也可使用mean2函数:

    >>mean2(X)=3.5

     

    median,求一组数据的中值,用法与mean相同。

    >>X=[1,2,9]

    >>mean(X)=4

    >>median(X)=2

     

    2、 方差

    数学定义:

     

    均方差:

    Matlab 函数:var

    要注意的是var函数所采用公式中,分母不是 ,而是 。这是因为var函数实际上求的并不是方差,而是误差理论中“有限次测量数据的标准偏差的估计值”。

    >>X=[1,2,3,4]

    >>var(X)=1.6667

    >> sum((X(1,:)-mean(X)).^2)/length(X)=1.2500

    >> sum((X(1,:)-mean(X)).^2)/(length(X)-1)=1.6667

     

    var没有求矩阵的方差功能,可使用std先求均方差,再平方得到方差。

    std,均方差,std(X,0,1)求列向量方差,std(X,0,2)求行向量方差。

     

    >>X=[1 2

         3 4]

    >>std(X,0,1)=1.4142  1.4142

    >>std(X,0,2)=0.7071

                0.7071

     

    若要求整个矩阵所有元素的均方差,则要使用std2函数:

    >>std2(X)=1.2910

    转载于:https://www.cnblogs.com/fangchunying/p/9049352.html

    展开全文
  • 数学定义: (自己搜一下)Matlab函数:mean>...mean(X,1)为列向量均值,mean(X,2)为行向量均值。>>X=[1 2 34 5 6]>>mean(X,1)=[2.5, 3.5, 4.5]>>mean(X,2)=[25]若要求整个矩阵的均...

    数学定义: (自己搜一下)

    Matlab函数:mean

    >>X=[1,2,3]

    >>mean(X)=2

    如果X是一个矩阵,则其均值是一个向量组。mean(X,1)为列向量的均值,mean(X,2)为行向量的均值。

    >>X=[1 2 3

    4 5 6]

    >>mean(X,1)=[2.5, 3.5, 4.5]

    >>mean(X,2)=[2

    5]

    若要求整个矩阵的均值,则为mean(mean(X))。

    >>mean(mean(X))=3.5

    也可使用mean2函数:

    >>mean2(X)=3.5

    median,求一组数据的中值,用法与mean相同。

    >>X=[1,2,9]

    >>mean(X)=4

    >>median(X)=2

    2、 方差

    数学定义:(自己搜一下)

    方差是各个数据与平均数之差的平方的和的平均数,即3aaddf88667f7d2b24564cffab6478b0.png ,其中,x_表示样本的平均数,n表示样本的数量,x

    n

    表示个体,而s^2就表示方差。

    而当用

    5b0cdfd902016bcc081b5fe9d63044dd.png 作为样本X的方差的估计时,发现其数学期望并不是X的方差,而是X方差的(n-1)/n 倍,

    5d3167350393e959fbc86655172b0d83.png 的数学期望才是X的方差,用它作为X的方差的估计具有“无偏性”,所以我们总是用 

    980b708b29f19eae6cf8c09575888a14.png来估计X的方差,并且把它叫做“样本方差”。(引自百度百科)

    均方差:

    Matlab 函数:var

    要注意的是var函数所采用公式中,分母不是 ,而是 。这是因为var函数实际上求的并不是方差,而是误差理论中“有限次测量数据的标准偏差的估计值”。

    >>X=[1,2,3,4]

    >>var(X)=1.6667

    >> sum((X(1,:)-mean(X)).^2)/length(X)=1.2500

    >> sum((X(1,:)-mean(X)).^2)/(length(X)-1)=1.6667

    var没有求矩阵的方差功能,可使用std先求均方差,再平方得到方差。

    std,均方差,std(X,0,1)求列向量方差,std(X,0,2)求行向量方差。

    >>X=[1 2

    3 4]

    >>std(X,0,1)=1.4142  1.4142

    >>std(X,0,2)=0.7071

    0.7071

    若要求整个矩阵所有元素的均方差,则要使用std2函数:

    >>std2(X)=1.2910

    展开全文
  • 参考《机器学习实战》 首先给出k均值算法 输入:样本集  聚类簇数k 过程: ...  计算样本与各均值向量的距离:  根据距离最近的均值向量确定的簇标记:  将样本划入相应的簇:  end f...

    参考《机器学习实战》

    首先给出k均值算法


    输入:样本集D=\{x_1,x_2,...,x_m\}

               聚类簇数k

    过程:

    1. 从D中随机选择k个样本作为初始均值向量\{\mu_1,\mu_2,...,\mu_k\}
    2. repeat
    3.     令C_i=\phi(1\leq i\leq k)
    4.     for j = 1, 2, ..., m do
    5.         计算样本x_j与各均值向量\mu_i(1\leq i\leq k)的距离:d_{ij}=\left \| x_j-\mu_i \right \|_2
    6.         根据距离最近的均值向量确定x_j的簇标记:\lambda _j=argmin_{i\in \{1,2,...,k\}}d_{ji}
    7.         将样本x_j划入相应的簇:C_{\lambda _j}=C_{\lambda _j}\bigcup \{x_j\}
    8.     end for
    9.     for i = 1, 2, ..., k do
    10.         计算新均值向量:\mu '_i=\frac{1}{|C_i|}\sum_{x\in C_i}x
    11.         if \mu'_i\neq \mu_i then
    12.             将当前均值向量\mu_i更新为\mu'_i
    13.         else
    14.             保持当前均值向量不变
    15.         end if
    16.     end for
    17. until 当前均值向量均未更新

    输出:簇划分C=\{C_1,C_2,...,C_k\}


    # -*- coding: utf-8 -*-
    """
    Created on Mon Jul 16 21:54:20 2018
    
    @author: Li Qingquan
    """
    
    import numpy as np
    from sklearn.datasets import make_blobs
    import time
    import matplotlib.pyplot as plt
    
    seed = np.random.seed(2018)
    
    class KMeans(object):
    
        def __init__(self, n_clusters):
            '''
            :param n_clusters:
            '''
            self.n_clusters = n_clusters
    
    
        def fit(self, X):
            '''
            :param X:
            :return:
            '''
            '''
            write your code here
            '''
            # pass
            '''
            Compute K-Means clustering
            '''
            # choose k centroids randomly
            n = X.shape[1]
            centroids = np.zeros((self.n_clusters, n)) # store the centroids
            for i in range(n):
                minNum = np.min(X[:, i])
                maxNum = np.max(X[:, i])
                centroids[:, i] = minNum + (maxNum - minNum) * np.random.rand(self.n_clusters)
            self.centroids = centroids
            
            # update centroids to find the optimum solution
            m = X.shape[0]
            Assment = np.zeros((m, 2)) # store the index of the family and the distance from centroids of sample points
            clusterChanged = True;
            while clusterChanged:
                clusterChanged = False
                for i in range(m): # find the closest centroid
                    minDist = np.inf
                    minIndex = -1;
                    for j in range(self.n_clusters):
                        distBetw = np.math.sqrt(sum(np.power(centroids[j, :] - X[i, :], 2))) # the distance between point and centroid
                        if distBetw < minDist:
                            minDist = distBetw
                            minIndex = j
                    if Assment[i, 0] != minIndex:
                        clusterChanged = True;
                        Assment[i, :] = minIndex, minDist**2
                for i in range(self.n_clusters): # update centroids
                    indexAll = Assment[:, 0]
                    valueI = np.nonzero(indexAll==i)
                    pointsIn = X[valueI[0]]
                    centroids[i, :] = np.mean(pointsIn, axis=0) # compute the mean to be the new centroids
            self.centroids = centroids
            self.Assment = Assment
    
    
        def predict(self, X):
            '''
            :param X:
            :return:
            '''
            '''
            write your code here
            '''
            # Predict the closet cluster each sample in X belongs to
            m = X.shape[0]
            y_pred = np.empty((m,))
            for i in range(m): # distribute sample points
                minDist = np.inf
                for j in range(self.n_clusters):
                    distBetw = np.math.sqrt(sum(np.power(self.centroids[j, :] - X[i, :], 2)))
                    if distBetw < minDist:
                        minDist = distBetw
                        y_pred[i] = j
            return y_pred
    
    
        def fit_predict(self, X):
            '''
            :param X:
            :return:
            '''
            self.fit(X)
            return self.predict(X)
    
    if __name__ == '__main__':
    
        ################################# 1. define params ###################################
        # number of samples
        n_samples = 1000
        # number of clusters, you can define the param by yourself, the recommend value is 3
        n_clusters = 4
    
        # read data
        X, y = make_blobs(n_samples=n_samples, random_state=seed)
    
        ################################# 2. initialize the model ###################################
        kmeans_model = KMeans(n_clusters=n_clusters)
    
    
    
        ################################# 3. training and predicting #######################################
        start_time = time.time()
        y_pred = kmeans_model.fit_predict(X)
        end_time = time.time()
        print('Training and predicting Time: ', end_time - start_time)
    
    
    
        ################################ 4. plot #######################################################
        plt.scatter(X[:, 0], X[:, 1], c=y_pred)
        plt.title("Unevenly Sized Blobs")
    
        plt.show()

     

    展开全文
  • 目录13.1 导言13.2 原型方法13.2.1 K均值聚类13.2.2 学习向量量化Learning Vector Quantization, LVQ13.2.3 高斯混合13.3 k近邻分类器13.3.1 例子:比较研究13.3.2 例子:k近邻和图像场景分类13.3.3 不变度量...

    13.1 导言

    • P459 本章介绍免模型方法model-free methods,这些方法具有高度无结构性highly unstructured,所以对特征理解的作用不大,可看作黑箱预测器
    • P459 高维特征中,偏差和方差之间的权衡中,回归没有分类好

    13.2 原型方法

    • P459 原型方法用特征空间中的一组代表性的点来表示训练数据。原型并不一定是训练集的样本点,1-NN分类器除外。每个原型有一个对应的类别,xx的分类即是找最近的原型(参考西瓜书9.4节)
    • P460 14章讨论类别和其他类型特征的距离度量
    • P460 如果原型比较多,而且位置对,那么能得到不规则的类别边界。主要的挑战是有多少原型以及放哪,由此产生不同方法

    13.2.1 K均值聚类

    • P460 用K-means做分类,每个类给自进行K-means,原型个数要提前给定。这种分类方法的一个问题是,在某一类中,没有考虑到其他类的样本点

    13.2.2 学习向量量化Learning Vector Quantization, LVQ

    • P462 在线算法online algorithm,每次处理一个观测
    • P462 学习率的指导原则满足11.4节的随机近似P397
    • P463 LVQ的一个缺点是它们被算法定义,而不是一些固定准则的优化;这导致很难理解它们的性质(理解不了这句话,估计是说原型个数RR的选择没有固定的准则)

    13.2.3 高斯混合

    • P463 强调了高斯混合式软聚类方式,K-means是硬聚类方式
    • P464 高斯混合分类边界是弯曲的,K-means是折线。虽然原型位置差不多。原图中,K-means有一个分错的原型,并会在这个原型处展开该类区域,高斯混合分类则不会

    13.3 k近邻分类器

    • P465 适用于很多原型,而且决策边界复杂的情况
    • P465 1-nn中,每一个训练数据点,就是一个原型
    • P465,468 1-nn的渐近误差率不会超过贝叶斯率的两倍. 习题13.3给了一个更紧的界。这种界原论文总结了一堆。该结果可以提供给定问题中最优效果的大致死率,例如1-NN误差为10%,则渐进贝叶斯误差至少为5%。这里是渐近情形,假设最近邻偏差为0. 实际问题中,偏差可能很大,给定问题中,偏差和方差可以决定最优的最近邻个数。下个例子中有解释

    13.3.1 例子:比较研究

    • P468 造了两个二分类问题,进行比较。不同问题KNN还是的参数KK还是要调的

    13.3.2 例子:k近邻和图像场景分类

    • P471 利用一个像素点和局部8个点拼起来,造特征,再过kNN
    • P471 kNN表现好,说明判别边界有可能非常不规则

    13.3.3 不变度量invariant metrics和正切距离tangent distance

    • P471 对于经过旋转的数字图像“3”,应该看成很近的
    • P473 不变流形invariance manifolds
    • P473 不变度量invariant metric:两张图像间的距离取为第一张图像的任意旋转版本与第二张图像的任意旋转版本间的最短欧氏距离
    • P473 正切距离的motivation:1)不变度量实际中很难算。主要是流形本身很难算。2)如果允许大的变换,可能效果很差。(限制小的变换为什么用正切距离,在切线上远离样本点的位置也近似地不好吧。不理解)正切距离找了高维空间中两个低维超平面之间的距离,这两个低维超平面分别是两个样本点的流形切面,以此作为两点的距离度量。并计算kNN。书上这里就用了1-NN
    • P474 一种代替方法是往训练集中加入每张训练图像的一些旋转版本,然后只需要用标准的最近邻分类器
    • P482 习题13.6 有一个仿射变换的题,讨论了两种目标来寻找形状平均shape averaging问题,比较其优劣。适合练手线性代数

    13.4 自适应最近邻分类器

    • P475 NN个点均匀分布在pp维单位超立方体,最近的点到原点有距离RRRR的分布有中位数median(R)median(R),给出了median(R)median(R)p,Np,N的公式和图。可以看到距离很快到0.5,也即到边界的距离。(这和PRML第一章的结论类似。高维中,数据分布在远离中心的“尖刺”上)
    • P475 高维特征中,如果预测只和特征子集有关,则其余特征会给kNN带来影响。所以自适应的度量非常重要
    • P475 判别自适应最邻近discriminant adaptive nearest-neighbor。在每个查询点,构造50个点的邻域,并且用这50个点的类别分布来决定怎么对邻域进行变形——也即对度量进行更新,接着更新后的度量用在该查询点的最近邻规则中.因此每一个查询点都可能采用不同的度量.
      图13.13是容易的情况。一般,类别概率变化最大的方向不会和类别重心连线垂直,如P116图4.9。假定一个局部判别模型,局部类内within-和类间between-的协方差矩阵信息就足够确定邻居的最优形状。
      DANN在查询点x0x_0的度量为
      在这里插入图片描述
      (看起来是一个马氏距离)其中
      在这里插入图片描述
      W=k=1KπkWk\bm W=\sum_{k=1}^K \pi_k\bm W_k是一个合并的类内协方差矩阵,B=k=1Kπk(xˉkxˉ)(xˉkxˉ)T\bm B=\sum_{k=1}^K \pi_k (\bar x_k-\bar x)(\bar x_k - \bar x)^T是类间协方差矩阵。W,B\bm W,\bm B的计算只采用x0x_0的50个最近邻结点
      然后真正的kNN可能用别的数量的点,例如图13.14中的15个点
      关于这个Σ\bm \Sigma的解释要翻书,先把数据根据W\bm W球面化,再沿着B\bm B^*的零特征值方向。拉伸ϵ\epsilon一般取1,来把无限长的条带变成椭圆,防止是用离查询点过远的点

    13.4.1 例子

    • P478 这个例子中没有单独的噪声变量,最近邻子集选择可能不适用.在特征空间中的每个点,类别判别值沿着一个方向.然而,当我们在特征空间中移动时方向会发生变化,并且所有变量在这个空间中某个地方都是有用的

    13.4.2 最近邻的全局降维

    • P479 DANN进行了局部降维,也即每个查询点单独降维. 许多问题中,全局降维也有用。即对原特征空间的最优子空间应用最近邻。
    • P479 Hastie and Tibshirani(1996a)讨论了DANN的变形,在每个查询点,计算类间协方差矩阵的均值
      在这里插入图片描述
      如果想降到LL维,拿Bˉ\bar \bm B最大的LL个特征值对应的特征向量方向。原因在于这是Bˉ\bar \bm B的最优LL秩近似,它也是下式的解
      在这里插入图片描述
      (书上写了点笔记,这最后可以化作是最优化F范数,用Eckart-Young定理。这感觉跟PCA有点像)

    13.5 计算考虑

    • P480 最近邻的问题在于算的慢、耗内存。研究者提出了各种编辑editing压缩condensing过程。想法是单独拿出能进行最近邻预测的训练集的子集,并且把剩下的训练数据丢掉.直观上看,保留靠近判别边界处和在边界正确一侧的训练点是很重要的,而那些离边界很远的点可以舍弃
    • P480 多编辑算法multi-edit algorithm
    • P480 Hart(1968)的压缩condensing更进一步,试图仅保留类别类别的外点exterior point,随机选择单个观测作为训练集开始,每次处理一个额外的数据点,仅当它被误分类时才加入到训练集中

    参考文献:
    [1] Trevor Hastie, Robert Tibshirani, Jerome Friedman. The Elements of Statistical Learning, Second Edition
    [2] ESL CN

    展开全文
  • 同时,为了增强网格模型显示的真实感,通过网格简化、网格平滑、网格数据点法向量计算、纹理贴图等方法,对网格模型进行优化,提高了整形后网格显示效果。实验证明,该方法交互方式简便,变形效果较好。
  • 基于Fisher判别思想,计算出两类样本在分类超平面法向量上投影后的均值和方差,再依据两类错分概率相等准则,给出新的阈值计算方法对超平面进行调整。该方法可补偿非平衡数据分类的倾向性,提高预测分类精度。最后在...
  • 基于Fisher判别思想,计算出两类样本在分类超平面法向量上投影后的均值和方差,再依据两类错分概率相等准则,给出新的阈值计算方法对超平面进行调整。该方法可补偿非平衡数据分类的倾向性,提高预测分类精度。最后在...
  • K 均值算法简介 : k均值算法是一种比较简单的聚类算法,它针对数据经行...计算每一个样本到所有均值向量的的距离,根据距离的大小将所有的点归类 通过求平均值的方法调整均值向量的位置 重复2、3步骤知道目标函数收
  • 采用K-均值聚类算法对已有的标记样本和所有的无标记样本进行多次聚类, 根据最终的聚类结果去构造聚类核函数, 从而更好地反映样本间的相似程度, 然后将其用于支持向量机的训练和分类。理论分析和计算机仿真结果表明, ...
  • 目录 1.聚类概念 2.聚类结果的“好坏”评价指标 2.1外部指标 2.2内部指标 2.3距离的计算 3聚类类算法 ...3.1 k均值算法 ...3.2LVQ学习向量量化算法 ...3.6 BIRCH层次方法的平衡迭代规约和聚类(Balanced I...
  • 在 V1.3 中,将有一个选项可以显示矩阵/向量中每个值与均值之间的标准差数。 在 V1.4 中,将有一个选项可以在图中绘制结果,并将值放在它们所属的标准偏差曲线上。 在 V1.5 中,将有一种方法可以对矩阵进行“双”...
  • 距离计算方法-聚类

    千次阅读 2018-05-17 15:53:33
    k-均值聚类算法的性能会受到所选距离计算方法的影响;所以,今天总结了一下有关距离计算的一些总结。如有错误,望大家指正。1、欧式距离是大家最熟悉的了。比如两点之间的距离的计算。可以写成向量的运算形式,工程...
  • 一、求均值 % 求一副灰度图像的均值 close all; clear; clc; i=imread('d:/lena.jpg'); %载入真彩色图像 ... %将uint8型转换为double型,否则不能计算统计量 ... %列向量均值 % avg2=mean(i,2); %行向量均值 % a
  • 首先讨论核函数的本质,并且基于黎曼几何结构和数据依赖的方法,提出了一种改进的修正核函数,改进后的核函数形式简单,计算量较低,其中保形因子与支持向量无关,较之于以前的研究克服了支持向量的数目和分布的影响...
  • spss实现k均值聚类

    千次阅读 2020-04-10 12:30:46
    机器学习中的k均值聚类属于无监督学习,所谓k指的是簇类的个数,也即均值向量的个数。算法初始状态下,要根据我们设定的k随机生成k个中心向量,随机生成中心向量的方法既可以随机从样本中抽取k个样本作为中心向量,...
  • 相似度计算方法学习

    2018-01-17 11:26:09
    方差公式:Var = E[(X-μ)²] = E[X²-2Xμ+μ²] = E(X²)-2μ²+μ² = E(X²)-μ² (*)最后推出方差就是平方的均值减去 均值的平方皮尔逊相关系数①协方差就是看两个变量是否正负相关,也就是数值上变化是否同或...
  • k-means 聚类用于图像压缩。 在这个 matlab 程序中,特征向量只是图像中 NXN 非重叠像素块。... K-means 聚类是一个迭代过程,其中通过计算属于各个聚类的输入向量的质心,在每个阶段对代码向量进行细化。
  • C均值聚类

    2020-03-27 20:03:40
    文章目录1. 基本思路2. 样本在类间调整思路3. 具体步骤4. 初始化类的方法4.1 选择代表点4.2...假设第iii类样本集合τi\tau_iτi​的数目为NiN_iNi​,则该类样本均值向量为mi\boldsymbol{m_i}mi​的计算公式为: mi=...
  • 方法利用快速离散curvelet变换提取图像的纹理特征,利用平稳小波变换提取图像的统计特征,将两种多尺度特征融合成高维的特征向量,采用模糊C均值聚类的方法进行分割。在仿真SAR图像和真实SAR图像的分割实验结果...
  • K-均值散列:学习二进制压缩码的近邻保留量化方法 摘要:在计算机视觉中,人们对散列码的学习兴趣日益增加,散列码的汉明距离近似于数据的相似性。散列函数在量化向量空间,并生成相似性保护代码这两个方面都发挥着...
  • K均值和LVQ算法的主要差异是更新原型向量的方法,K均值是根据分配到簇内的所有样本计算新的均值向量;LVQ是随机抽取一个样本,找到与其最近的原型向量,如果标记相同,则计算出更靠近随机样本的新原型向量,否则相反...
  • 四种方法的matlab代码实现:链接: ...中心点是与每个数据点向量长度相同的位置。这需要我们提前预知类的数量(即中心点的数量)。 (2) 计算每个数据点到中心点的距离,数据点距离哪个中心点最近...

空空如也

空空如也

1 2 3 4 5 ... 14
收藏数 278
精华内容 111
关键字:

均值向量计算方法