zoukankan      html  css  js  c++  java
  • 数据挖掘和机器学习

    机器学习:

        是人工智能的核心研究领域,目前把他定义为:利用经验来改善计算机系统性能。 对于“经验”,实际上在计算机中,“经验”是以数据的形式存在的,所以机器学习需要对数据进行分析运用。

        提高泛化能力(generalization ability)是机器学习中最重要的问题之一。泛化能力表征了机器学习系统对新事件的适应能力,简单来说泛化能力越强,系统对事件做出的预测就越准确。

        机器学习本质上就是一种对问题真实模型的逼近(我们选择一个我们认为比较好的近似模型,这个近似模型就叫做一个假设),但毫无疑问,真实模型一定是不知道的(如果知道了,我们干吗还要机器学习?直接用真实模型解决问题不就可以了?对吧,哈哈)既然真实模型不知道,那么我们选择的假设与问题真实解之间究竟有多大差距,我们就没法得知。比如说我们认为宇宙诞生于150亿年前的一场大爆炸,这个假设能够描述很多我们观察到的现象,但它与真实的宇宙模型之间还相差多少?谁也说不清,因为我们压根就不知道真实的宇宙模型到底是什么。

        这个与问题真实解之间的误差,就叫做风险(更严格的说,误差的累积叫做风险)。我们选择了一个假设之后(更直观点说,我们得到了一个分类器以后),真实误差无从得知,但我们可以用某些可以掌握的量来逼近它。最直观的想法就是使用分类器在样本数据上的分类的结果与真实结果(因为样本是已经标注过的数据,是准确的数据)之间的差值来表示。这个差值叫做经验风险Remp(w)。以前的机器学习方法都把经验风险最小化作为努力的目标,但后来发现很多分类函数能够在样本集上轻易达到100%的正确率,在真实分类时却一塌糊涂(即所谓的推广能力差,或泛化能力差)。此时的情况便是选择了一个足够复杂的分类函数(它的VC维很高),能够精确的记住每一个样本,但对样本之外的数据一律分类错误。回头看看经验风险最小化原则我们就会发现,此原则适用的大前提是经验风险要确实能够逼近真实风险才行(行话叫一致),但实际上能逼近么?答案是不能,因为样本数相对于现实世界要分类的文本数来说简直九牛一毛,经验风险最小化原则只在这占很小比例的样本上做到没有误差,当然不能保证在更大比例的真实文本上也没有误差。

    统计学习因此而引入了泛化误差界的概念,就是指真实风险应该由两部分内容刻画,一是经验风险,代表了分类器在给定样本上的误差;二是置信风险,代表了我们在多大程度上可以信任分类器在未知文本上分类的结果。很显然,第二部分是没有办法精确计算的,因此只能给出一个估计的区间,也使得整个误差只能计算上界,而无法计算准确的值(所以叫做泛化误差界,而不叫泛化误差)。

    置信风险与两个量有关,一是样本数量,显然给定的样本数量越大,我们的学习结果越有可能正确,此时置信风险越小;二是分类函数的VC维,显然VC维越大,推广能力越差,置信风险会变大。

    泛化误差界的公式为:

    R(w)≤Remp(w)+Ф(n/h)

    公式中R(w)就是真实风险,Remp(w)就是经验风险,Ф(n/h)就是置信风险。统计学习的目标从经验风险最小化变为了寻求经验风险与置信风险的和最小,即结构风险最小。

     precision      查准率 = 识别出的真正的正面观点数 / 所有的识别为正面观点的条数
     recall         查全率 = 识别出的真正的正面观点数 / 样本中所有的真正正面观点的条数

    数据挖掘:

       “数据挖掘”和“知识发现”通常被认为是一样的。在许多场合是可替代的术语。

        数据挖掘顾名思义:从海量数据中找出有用的知识。数据挖掘可以认为是 机器学习和数据库的交叉应用。它利用机器学习的技术来分析海量数据,利用数据库技术来管理海量数据。

    还有“统计学”,统计学的的很多算法通常需要通过机器学习进一步研究才能变成有效的算法应用到数据挖掘。

        从数据分析上来看,绝大部分数据挖掘的技术都应用机器学习技术,但是我们不能认为数据挖掘就是机器学习的一个应用。传统的机器学习并不把海量数据作为研究处理对象,很多技术

    都只是适用于中小规模的数据,如果将这些技术应用到海量数据,那么结果会很糟糕。因此数据挖掘还需要对这些技术进行专门的改造。

        比如“决策树”,它是一种很好的机器学习技术,不仅泛化能力强而且学习结果是可理解的。传统的做法是把所有数据读入内存进行分析,然而对于海量数据显然不可以,这时候就需要处理,

    比如通过引入高效的数据结构和调度策略。

       例外,作为一门独立的学科,数据挖掘有他自己“独特”的东西。比如“关联分析”。简单来说关联分析就是从很多数据找出像啤酒喝尿布这样很奇怪但是有意义的关联。如果在100位顾客中有20位购买了尿布,购买尿布的20位顾客中有16位购买了啤酒,那么就可以写成“尿布→啤酒[支持度=20%,置信度=80%]”这样的一条关联规则。

    从菜鸟走向大神,这是道路。
  • 相关阅读:
    C# SocketAsyncEventArgs Server
    C# Socket 入门5 UPD 结构体 与 C++ 通信
    如何取得 Func 对象 字段
    动态调用对象的属性和方法——性能和灵活性兼备的方法
    C# 读写锁 ReaderWriteLock
    C# IP多播
    C# 广播通信
    程序员那点儿事
    wince上数据库:sqlce和sqlite
    evc vc字符串转换处理
  • 原文地址:https://www.cnblogs.com/GuoJiaSheng/p/3851034.html
Copyright © 2011-2022 走看看