刚刚接触数据挖掘没有许久,对数据挖掘的学习仅限于比较浅显的地步。
寻的一处总结自己的知识的学习和理解。
--------------------------------------------数据挖掘分割线--------------------------------------------------------
基本概念
1.数据挖掘定义
数据挖掘是从一系列模糊的,没有规则的数据中寻求出我们需要或者未来可能需要的知识。
2.监督学习和无监督学习
监督学习:给出一系列的含有标签(类别)的训练数据集,机器可以根据给出的数据集预测出合适的模型,从而推演出目标变量的结果。监督学习包括分类和回归。
注意:区别分类和回归
分类:预测目标变量离散类别(标称)---比如预测明天下不下雨
回归:预测目标变量连续类别(数值)---比如预测明天几度
无监督学习:数据没有指明标签。根据给出的数据,对他们进行聚类或者关联分析。
3.如何选择合适的算法
如果想要预测的目标变量值,可以选择监督学习算法。否则可以选择无监督学习算法。
确定了监督学习算法之后,需要进一步的选择目标变量的类型。
-----目标变量是离散型(如黑\红),则可以使用分类器算法
-----目标变量是联系型的数值(如0~999),则选择回归算法
4.数据挖掘的基本过程
收集数据--数据预处理--数据挖掘算法挖掘数据--评估结果
----通过各类方式收集数据,将数据放入数据数据库或者数据仓库之中,对数据进行处理分析之后,输入到数据挖掘中工具中,从而获取有用的知识,将知识传递至联机分析处理,帮助主管做出决策(将数据库,数据挖掘工具,联机分析处理结合利用)
分类挖掘--k-近邻算法
(一)分类挖掘技术方法(经典):决策树--ID.3,c4.5以及CART.
贝叶斯方法
k-近邻算法
支持向量机
(二)k-近邻算法
1.优缺点
优点:精度高,对异常值比较敏感,无数据输入假定
缺点:计算复杂度高,空间复杂度高
2.工作原理:存在一个数据样本集,也称之为训练样本集,我们知道这个训练集中的每一个数据的标签(即类别),当输入没有标签的新数据的后,我们将新数据每一个特征和训练集数据相对应的特征进行一一的比较,计算出新数据和每一个训练集数据的相似程度(通过欧式距离计算,欧氏距离越小,相似度越高),从训练集中选出k个和新数据相似度最高的数据,最后选择出k个数据所属类别最多的那个类别,作为我们输入的新数据的类别。
3.欧氏距离
其中:a[i]代表的是新输入数据的第i个属性(特征)值,Xn[i]中n代表的是第n个数据,i代表的是第n个数据中的第i个属性值。
!!!!欧氏距离越小,则相似度越高。
4.优化
在最近邻算法中存在一个问题:对于所有的属性的依赖程度相同
(个人理解:当对于所有的属性的依赖程度相同的时候,因为要比较每一个特征,所以计算量比较大。最重要的是,数据中的无关属性和相关属性对于相似度量起到相同的作用,比如一个数据有20个属性,其中18个属性是无关的,只有两个属性是相关的,可能18个属性距离比较近,而两个属性距离比较小,这时候度量的距离是比较小的,两个数据的相似度高,从而产生误差比较大)
------因此需要进行优化:为每个特征加一个不同的权重(让其在不同的测量中,起到的作用不一样)-FW-KNN
5.基于特征加权的KNN算法
加权距离度量公式:
手写公式这么大!!!!也是棒棒哒!!!
其中:Wj即为第j个特征加权(权重值)
Xp(j)为数据Xp的第j个元素,另一个x同理。
因此如何确定权重成为关键。