数据分析、数据挖掘之特征分解、特征分析

模型:从二维数据中挖掘出新的特征,必须进行分解,从分解的矩阵中得出结论
     A=[          word1,word2,word3,...,wordN
          docu1:
          docu2:
               ...
          docuN:
          ]
 
非负矩阵因式分解(NMF)算法思想:
          1.找到特征矩阵和权重矩阵,使其乘积和原矩阵近似
               特征矩阵:每个特征对应一行,单个单词对应一列,矩阵中的数代表了某个单词对这个特征的重要程序
               权重矩阵:作用是将特征映射到文章矩阵,每一行对应一篇文章,每一列对应一个特征,矩阵的数代表了某个特征应用于某篇文章的程度;将权重*特征矩阵=文章矩阵;现实中这种可能性较小,算法的目标是尽可能的重新构造出原来的数据集
          2.使用成本优化方法与乘法更新法则(multiplication update rules;http://hebb.mit.edu/people/seung/papers/nmfconverge.pdf),此法则产生了4个新的更新矩阵,原始的文章矩阵称为数据矩阵
                    hn:转置后的权重矩阵与数据矩阵相乘得到的矩阵
                    hd:转置后的权重矩阵与原权重矩阵相乘,再与特征矩阵相乘得到的矩阵
                    wn:数据矩阵与转置后的特征矩阵相乘得到的矩阵
                    wd:权重矩阵与特征矩阵相乘,再与转置后的特征矩阵相乘得到的矩阵
               特征矩阵和权重矩阵的更新方法:
                    先将矩阵用array()转为数组
                    将特征矩阵中的每个值与hn中对应的值相乘,并除以hd中的值得到新的权重矩阵
                    将权重矩阵中的每个值与wn中的对应值相乘,并除以wd中的值得到新的权重矩阵
               能最快的得到最优的解
          3.根据特征矩阵和权重矩阵展示特征的topN文章以及文章的topN特征
 
 
     

1.目的:

     不是为了预测,而是尝试对数据进行特征识别,并且告诉客户值得关注的重要信息
     杂音分离、文档主题的识别(一篇文章多个主题,一个主题包含多个文章)
 
2.数据准备:
     i.从各个网站或者RSS下载文章
     ii.对文章进行分词(简单的以空格,并且选取长度大于3的单词,以过滤掉副词、stop词等)
     iii.将结果组合成一个矩阵,每一个行是一篇文章中出现的词的次数,而列数是所有文章中出现的词(过滤掉出现次数小于3,且在所有文章中出现的比例大于60%的词)的个数(且按字典顺序排列)
          
               构造矩阵               
    
 
3.模型选择:
     i.贝叶斯分类:
          缺陷:开发人员在训练数据前,必须确定所有的分类,包括决策树、支持向量机等监督学习算法
     
     ii.聚类
          缺陷:结果不够准确,且耗时
 
     iii.非负矩阵因式分解(NMF)
          目的是为了找到两个更小的矩阵,使得两者的乘机能得到原来的矩阵,两个矩阵分别是:
          a.特征矩阵:
               每个特征对应一行,单个单词对应一列,矩阵中的数代表了某个单词对这个特征的重要程序
          b.权重矩阵:
               作用是将特征映射到文章矩阵,每一行对应一篇文章,每一列对应一个特征,矩阵的数代表了某个特征应用于某篇文章的程度;将权重*特征矩阵=文章矩阵;现实中这种可能性较小,算法的目标是尽可能的重新构造出原来的数据集
    
 
          c.具体的算法:
               python中的numpy包,可以通过matrix()、shape()、transpose()来构造矩阵、得到矩阵的维度便于遍历以及转置
               成本函数的引入:
                    将特征矩阵和权重矩阵的乘积与原始文章矩阵的差值的平方累加起来构造成本函数
                    
               其后用退火优化算法找到一个满意的题解,但是最优的方法是使用乘法更新法则(multiplication update rules;http://hebb.mit.edu/people/seung/papers/nmfconverge.pdf),此法则产生了4个新的更新矩阵,原始的文章矩阵称为数据矩阵
                    hn:转置后的权重矩阵与数据矩阵相乘得到的矩阵
                    hd:转置后的权重矩阵与原权重矩阵相乘,再与特征矩阵相乘得到的矩阵
                    wn:数据矩阵与转置后的特征矩阵相乘得到的矩阵
                    wd:权重矩阵与特征矩阵相乘,再与转置后的特征矩阵相乘得到的矩阵
               特征矩阵和权重矩阵的更新方法:
                    先将矩阵用array()转为数组
                    将特征矩阵中的每个值与hn中对应的值相乘,并除以hd中的值得到新的权重矩阵
                    将权重矩阵中的每个值与wn中的对应值相乘,并除以wd中的值得到新的权重矩阵
                     

        

 

4.结果展示:

     i.特征应用于所有文章的情况:
          对每一个特征,先在特征矩阵中求出其单词权重最高的6个单词,成为模式名称,然后在权重矩阵中,将所有的文章对此特征的权重、特征索引、文章名称作为toppattern
          

      

           

     
     ii.以文章的形式呈现
          列出每篇文章及应用于该文章的前三项特征
    
 
5.新闻对股票的交易量的影响:
     以交易量建模,是因为NMF使用的都是非负的
  

 

 
posted @ 2017-01-07 10:09  成金之路  阅读(2969)  评论(0编辑  收藏  举报