数据挖掘知识规整与心得体会

一.大数据的特点:

        数据多,类型多,更新快,更新内容多。

二.分类(classification)与混淆矩阵(confusion matrix)

        这里的分类说的是二分类问题,比如说把人分为好人和坏人,即非黑即白。混淆矩阵就是将Actual value和predicted value进行统一整理,其实就是记录模型的准确程度,比如说我们可以规定Actual是好人,Predicted也是好人,那么矩阵值为0.Actual是好人,Predicted是坏人为1.Actual是坏人,Predicted是坏人,值为2等等。这样可以清晰的看到,模型在什么地方出现了偏差。比如说,我们要区分男女,那我们模型规定身高高于一米二的全是男人,那混淆矩阵中肯定会出现很多Actual为女人,Predicted是男人,值为2的情况,那我们就能很清楚的知道,我们要把身高提高了,因为很多女生其实也是很高的。并且classification是一个supervised learning过程,就是从训练资料中学到或建立一个模式或者是函数,并依此模式推测新的实例。

三.聚类(clustering)

         聚类是一种unsupervised learning过程,比如研究超市商品购物组合,用了聚合函数后我们发现牛奶面包黄油可以归为一类(subset),但整个过程中的这些subset都不是我们预先给模型的,都是模型自己发现的,所以是一种unsupervised过程。

四.回归(regression)

        回归其实属于聚类的一种结果,就比如说我们在二维图像上有很多点,最后我们通过clustering我们发现其实有三组点,那我们不能跟小学生似的,对这些点直接画圈,而是通过回归,将其整合成三条曲线,以三个函数表达这三个subset。另外这里引进一个overfitting的概念,过学习,就是在聚类的regression过程中,如何找一条切合的曲线呢,最简单的就是直接把所有点穿起来,肯定准确,但是这条曲线的表达是很复杂的,并且不能泛化,通俗来讲就是,我们自己都不知道曲线接下来会往哪里弯曲,完全取决于新加进来的点,这样显然是不对的。另外在classification也就是supervised learning中,体现在特征的过多选取中,就比如我们要实现人脸识别,我们的特征连他每根头发的摆放位置都包含,头发位置对于人脸识别并不是重要特征,并且储存量巨大,且极难泛化,明显属于过拟合现象。

五.可视化

        一是可以用于拿到数据之后直接对整体进行可视化,也就是通过我们的人眼直接对数据进行大体的分析。二是可以用于将结果呈现给大众。

六.问卷的隐私调查

        例如调查人群当中有多少人吸大麻,我们可以将同一批人群分为两组。一共两个问题,第一个问题是你吸大麻吗?第二个问题是你不吸大麻吗?选其一回答,回答True or False。然后一组直接选其一回答True or False得到p*(true)和p*(false)。另一组问你会回答第一个问题还是第二个问题得到p(回答第一个问题的概率)。那么人群中抽大麻的概率为p(True)的话。就有p*(true) = p * p(true) + (1 - p) (1 - p(true)),那么p(true) = (p*(True) + p - 1)/(2p - 1).

七.cloud computing(云计算)

        总体一句就是“Pay as you go”, 就比如我们平时购物的话,客流量会很少,但是当购物节的时候买东西的人就会很多,但是我们如果按顶流购置服务器的话,就会导致很大的浪费,所以产生了云服务器,也就是需要的时候我们再去租服务器。当然也有别的云服务,比如一些平台,我们平常不怎么使用,那么就是“platform as a service”。

八.survivalship bias

        这个例子就是说,一所军工厂想为飞机加装甲,找了个统计学家来,发现飞回来的飞机都是机翼与尾翼中弹,可能很多人直接就会给这两个地方加装甲,但是我们忽略的问题是击中其他位置的飞机是不是都飞不回来,其实飞回来的飞机没有中弹的地方是否才是最重要的位置呢?比如说油箱,驾驶舱等。这也就启示我们,不要被一些数据的表面现象所迷惑,要结合事实,比如要调查天猫集团商铺数量与每个商铺机器交易额的关系,那我们可能发现商铺数量越多,平均交易额会更大,但我们如果要从这个图看这个行业的发展状况,通常我们会忽略时间这个维度,可能我们看的60万商家,平均每天交易额是20w只是前年的数据,但今年的数据是只有10万商家,每天交易额是2000.也就让我们重视起bias问题,有效解决bias问题的方法就是结合现实来综合考虑。

九.数据清洗

        我们这里说的清洗一般就是去特征值,补数据,或者抽象出一个数据类型。就比如我们要找一块石头大概的密度,我们就可以把石头的形状以及颜色这些特征值去掉,然后只保留体积和质量,那就把一块石头抽象成了一个序对。然后是补数据,比如说人的体重很多人没有填,那我们可以做一个正态分布,对称轴是65kg,让数据显得更为自然。

十.聚类算法中找outlier点的方法

        distancek(A,B) = max{distancek(A,B),distancek(A)}, k的意思是选择一个圆心,让其距离最近的k个点,使得圆内点数最多。distancek(A,B)就是A到B的距离,distancek(A)就是到圆心的距离。lrd(A) = 1 / (distancek(A,所有近邻)的累加) / Nk(A)) 所以,如果A是outlier点,则lrd(A)会很小。lofk(A) = (所有近邻的lrd/lrdA)/NkA 所以如果A电视outlier点,那么lofA会很大。

十一.duplicate data

        如何找相似数据的问题,如果n是1e6级别的,那么我们让每一条都与其余作对比,那么明显是On^2级别的,但是通过数据库的排列,我们可以让近似的数据放在一起,那么就可以用滑动窗口法,让数据只与相邻的五条数据进行比较,那么我们算法的复杂度就会降低到O5*N近似等于ON

你可能感兴趣的:(数据挖掘,机器学习,人工智能)