《机器学习》第三章——LDA

import numpy as np
x=np.zeros((2,17))
y=np.zeros((1,17))
def dataload(filename):
    f=open(filename)
    ar=f.readlines()
    num=len(ar)
    ind=0
    for line in ar:
        line.split(‘\n‘)
        linelist=line.split(‘ ‘)
        x[0:2,ind]=linelist[0:2]
        y[0:1,ind]=linelist[2:3]
        ind=ind+1
    return
dataload("1.txt")
u0=np.zeros((2,1))
u1=np.zeros((2,1))
cnt0=0
cnt1=0
for i in range(17):
    for j in range(2):
        if(y[0,i]==1):
            u1[j,0]=u1[j,0]+x[j,i]
            cnt1=cnt1+1
        else :
            u0[j,0]=u0[j,0]+x[j,i]
            cnt0=cnt0+1
for j in range(2):
    u1[j,0]=u1[j,0]/cnt1
    u0[j,0]=u0[j,0]/cnt0
sigma0=np.zeros((2,2))
sigma1=np.zeros((2,2))
for i in range(17):
    tep=np.zeros((2,1))
    for j in range(2):
        tep[j,0]=x[j,i]
    if(y[0,i]==1):
        sigma1=sigma1+np.dot((tep-u0),(tep-u0).T)
    else :
        sigma0=sigma0+np.dot((tep-u1),(tep-u1).T)
Sw=np.zeros((2,2))
Sw=sigma0+sigma1
Sw=np.linalg.inv(Sw)
w=np.dot(Sw,u0-u1)
for i in range(17):
    tep=np.dot(w.T,x[:,i])
    if(tep<=-0.01):
        print("1 ",y[0,i])
    else :
        print("0 ",y[0,i])

  额,这个数据集反正就是有几个特例,好气啊,欢迎指正错误!!

时间: 2024-10-11 13:12:22

《机器学习》第三章——LDA的相关文章

《机器学习导论》第三章 贝叶斯决策定理 学习笔记

在机器学习领域,我们碰到的第一个问题就是:如何选择特征量. 可是看了一些资料,这点好像都是一笔带过,因为很多都是所谓的不可观测量,如何把不可观测量量化呢?这个或许能给机器学习带来新的契机,就像当年牛顿把力.质量.加速度等模糊的概念定义下来,经典物理出现了前所未有的发展,香农把信息量化,造就了信息革命. 以前觉得贝叶斯好像没有大家说的那么神奇,现在知道,是因为当年对它的理解就有问题,贝叶斯更重要的一点应该是能够在加入evidence的情况下,从先验概率进化到后验概率,这点简直就是机器学习的内涵啊

《机器学习》第三章 决策树学习 笔记加总结

<机器学习>第三章 决策树学习 决策树学习方法搜索一个完整表示的假设空间,从而避免了受限假设空间的不足.决策树学习的归纳偏置是优越选择较小的树. 3.1.简介 决策树学习是一种逼近离散值目标函数的方法,在这种方法中学习到的函数被表示为一棵决策树. 决策树(Decision Tree)是一种简单但是广泛使用的分类器.通过训练数据构建决策树,可以高效的对未知的数据进行分类. 决策数有两大优点: 1)决策树模型可以读性好,具有描述性,有助于人工分析: 2)效率高,决策树只需要一次构建,反复使用,每一

3-Spark高级数据分析-第三章 音乐推荐和Audioscrobbler数据集

偏好是无法度量的. 相比其他的机器学习算法,推荐引擎的输出更直观,更容易理解. 接下来三章主要讲述Spark中主要的机器学习算法.其中一章围绕推荐引擎展开,主要介绍音乐推荐.在随后的章节中我们先介绍Spark和MLib的实际应用,接着介绍一些机器学习的基本思想. 3.1 数据集 用户和艺术家的关系是通过其他行动隐含提现出来的,例如播放歌曲或专辑,而不是通过显式的评分或者点赞得到的.这被称为隐式反馈数据.现在的家用电视点播也是这样,用户一般不会主动评分. 数据集在http://www-etud.i

Python机器学习(三)--决策树算法

一.决策树原理 决策树是用样本的属性作为结点,用属性的取值作为分支的树结构. 决策树的根结点是所有样本中信息量最大的属性.树的中间结点是该结点为根的子树所包含的样本子集中信息量最大的属性.决策树的叶结点是样本的类别值.决策树是一种知识表示形式,它是对所有样本数据的高度概括决策树能准确地识别所有样本的类别,也能有效地识别新样本的类别. 决策树算法ID3的基本思想: 首先找出最有判别力的属性,把样例分成多个子集,每个子集又选择最有判别力的属性进行划分,一直进行到所有子集仅包含同一类型的数据为止.最后

机器学习实战三(Naive Bayes)

机器学习实战三(Naive Bayes) 前两章的两种分类算法,是确定的分类器,但是有时会产生一些错误的分类结果,这时可以要求分类器给出一个最优的猜测结果,估计概率.朴素贝叶斯就是其中一种. 学过概率论的人对于贝叶斯这个名字应该是相当的熟悉,在学条件概率的时候,贝叶斯公式可谓是一针见血.这里的"朴素贝叶斯",是因为在计算贝叶斯概率的时候只考虑最原始.最简单的假设. Naive Bayes(朴素贝叶斯) 优点:在数据较少的情况下依然有效,可处理多类别问题. 缺点:对于输入数据的格式要求严

第三章 经典算法

第三章  经典算法 0  写在前面 本章介绍了 SVM,逻辑回归和决策树 三个经典算法.这三个算法在李航的<统计学习方法>中分别拿出了三章重点讲解.本节的提问需要有相应的基础,通过书中的提问发现自己基础太弱了,而基础知识最能考察一个人的学习能力.(记得考研时张宇说过,基础知识不等于简单知识,越是抽象的基础知识越困难,双手赞成!)<百面机器学习>是本很好的书,一遍远远不够,鉴于时间和需求不同,第一遍暂时快速浏览,从宏观把我覆盖的知识点. 1 支持向量机SVM 关于SVM的介绍,网上有

实现 RSA 算法之改进和优化(第三章)(老物)

第三章 如何改进和优化RSA算法 这章呢,我想谈谈在实际应用出现的问题和理解. 由于近期要开始各种忙了,所以写完这章后我短时间内也不打算出什么资料了=- =(反正平时就没有出资料的习惯.) 在讲第一章的时候我提到过两个函数在真实应用时舍弃掉的,为何这样说呢? 因为在实际应用中,生成了数据规模N和两把密钥E与D即可进行RSA算法的运作,在应用RSA时只需要一个a^b%c幂模运算函数,所以优化点集中在了数据类型和数据加密解密速度上. 注意RSA函数有个特点,就是根据源数据产生的密文一定是属于n内的,

构建之法前三章读后感

一. 软件作为一个产品,在提供用户使用前经历了许多工序,我们用工程的方式将开发软件的工序,过程加以工程化,系统化.成立了一套完整的体系后,有利于帮助我们开发软件,乃至于大型的系统. 软件具有一定的特殊性,使得软件工程师们做开发提升了一定的难度,但软件工程有助于软件系统的开发,帮助工程师们设计,构建,测试和维护软件.所以,软件工程的最终目的是帮助工程师们创造“足够好”的软件,提高软件的质量,用户满意度,可靠性,可维护性等. 第一章问题:怎么才算是一个真正的软件工程师? 二.   一个优秀的软件,通

0320 《构建之法》前三章观后感

第一章.为我们解释什么是软件,什么是软件工程,读完这章对这些概念有一定的认识这章让我明白,代码不能盲目的敲,好的软件并非两三天,并非一两个人就能赶出来的,需要大家的精诚合作.同时,在编写程序之前,还需要做一系列的分析.设计,要满足客户的需求,后续还要对软件进行测试.维护等.在这之前,我一直觉得能把程序运行,能有正确的结果,那就完成任务了,可这只是整个软件流程的一部分而已.看了邹老师的书,才知道其实创新有很多的方面,除了技术,还有商业思路,差异化等等,这些都给了我很大的感触,作为一名程序员,我们不