大数据挖掘主要算法
- 格式:doc
- 大小:1000.00 KB
- 文档页数:18
大数据常用的算法一、引言随着大数据时代的到来,大数据分析已经成为各个行业的重要组成部份。
而在大数据分析过程中,算法的选择和应用起着至关重要的作用。
本文将介绍大数据常用的算法,包括聚类算法、分类算法、关联规则挖掘算法和推荐算法。
二、聚类算法1. K均值算法K均值算法是一种常用的聚类算法,它将数据集划分为K个簇,每一个簇都具有相似的特征。
算法的步骤如下:a. 随机选择K个初始聚类中心;b. 根据欧氏距离计算每一个样本与聚类中心的距离,并将样本分配到距离最近的簇;c. 更新聚类中心,将每一个簇的中心点更新为该簇内所有样本的均值;d. 重复步骤b和c,直到聚类中心再也不改变或者达到最大迭代次数。
2. DBSCAN算法DBSCAN算法是一种基于密度的聚类算法,它将数据集划分为若干个密度相连的簇。
算法的步骤如下:a. 随机选择一个未被访问的样本点;b. 以该样本点为中心,找出其邻域内的所有样本点;c. 如果该样本点的邻域内包含至少MinPts个样本点,则将其作为核心对象,并创建一个新的簇;d. 以核心对象的邻域内的样本点为中心,继续寻觅新的样本点,并将其加入到簇中;e. 重复步骤c和d,直到所有的样本点都被访问。
三、分类算法1. 决策树算法决策树算法是一种常用的分类算法,它通过构建树形结构来对数据进行分类。
算法的步骤如下:a. 选择一个最佳的属性作为根节点;b. 根据该属性的取值将数据集划分为若干个子集;c. 对每一个子集递归地重复步骤a和b,直到子集中的样本属于同一类别或者达到住手条件;d. 构建决策树。
2. 支持向量机算法支持向量机算法是一种常用的二分类算法,它通过在高维空间中找到一个最优超平面来进行分类。
算法的步骤如下:a. 将样本点映射到高维空间;b. 在高维空间中找到一个最优超平面,使得正负样本点之间的间隔最大化;c. 根据超平面将样本进行分类。
四、关联规则挖掘算法1. Apriori算法Apriori算法是一种常用的关联规则挖掘算法,它通过挖掘频繁项集来发现数据集中的关联规则。
十大经典大数据算法大数据算法是指应用于大规模数据集的算法,旨在从这些数据中提取有价值的信息和洞察力。
下面是十大经典大数据算法的介绍:1. MapReduce算法:MapReduce是一种用于处理大规模数据集的编程模型,它将任务分成多个子任务并在分布式计算环境中并行执行。
这种算法在Google的大数据处理框架Hadoop中得到广泛应用。
2. PageRank算法:PageRank是一种用于评估网页重要性的算法,通过分析网页之间的链接关系来确定网页的排名。
它在谷歌搜索引擎的排名算法中起到了重要作用。
3. Apriori算法:Apriori算法用于挖掘关联规则,通过发现数据集中的频繁项集来识别项目之间的关联。
该算法在市场篮子分析和推荐系统中有广泛应用。
4. k-means算法:k-means算法是一种聚类算法,用于将数据集划分为k个不重叠的簇。
该算法在数据挖掘和图像分析中常用于聚类分析。
5. 随机森林算法:随机森林是一种集成学习算法,通过构建多个决策树并对它们的结果进行投票来进行分类或回归。
该算法在数据挖掘和机器学习中常用于分类和预测问题。
6. SVM算法:支持向量机(SVM)是一种监督学习算法,用于进行分类和回归分析。
它通过构建一个最优的超平面来将不同类别的样本分开。
7. LDA算法:潜在狄利克雷分配(LDA)是一种用于主题建模的生成模型,用于从文本数据中发现隐藏的主题结构。
该算法在自然语言处理和信息检索中有广泛应用。
8. 特征选择算法:特征选择是一种用于从数据集中选择最相关特征的方法。
常用的特征选择算法包括信息增益、卡方检验和互信息等。
9. 随机梯度下降算法:随机梯度下降是一种用于优化模型参数的迭代优化算法。
该算法通过计算损失函数的梯度来更新模型参数,从而最小化损失函数。
10. 奇异值分解算法:奇异值分解(SVD)是一种矩阵分解方法,用于降低数据维度和提取数据的主要特征。
该算法在推荐系统和图像处理中常用于降维和特征提取。
大数据常用的算法一、引言随着信息技术的快速发展,大数据分析已经成为各个行业的重要组成部份。
大数据分析的核心在于运用合适的算法来处理海量的数据,以发现隐藏在数据暗地里的规律和趋势。
本文将介绍几种大数据常用的算法,包括聚类算法、分类算法、关联规则挖掘算法和推荐算法。
二、聚类算法聚类算法是将相似的数据对象归类到同一个簇中,不同簇之间的数据对象差异较大。
常用的聚类算法包括K-Means算法和层次聚类算法。
K-Means算法是一种迭代的、基于距离的聚类算法,通过不断调整簇的中心点来达到聚类的目的。
层次聚类算法则是通过计算数据对象之间的相似度来构建一个层次结构,从而实现聚类。
三、分类算法分类算法是将数据对象划分到已知类别中的一种算法。
常用的分类算法包括决策树算法、朴素贝叶斯算法和支持向量机算法。
决策树算法通过构建一棵树来进行分类,每一个节点代表一个特征,每一个分支代表一个特征取值,最终的叶子节点代表一个类别。
朴素贝叶斯算法基于贝叶斯定理和特征条件独立性假设,通过计算后验概率来进行分类。
支持向量机算法通过寻觅一个超平面来将数据对象划分到不同的类别。
四、关联规则挖掘算法关联规则挖掘算法是从大规模数据集中发现项集之间的关联关系。
常用的关联规则挖掘算法包括Apriori算法和FP-Growth算法。
Apriori算法是一种基于频繁项集的挖掘方法,通过逐层搜索频繁项集来发现关联规则。
FP-Growth算法则是通过构建一个FP树来进行关联规则挖掘,相比于Apriori算法,FP-Growth算法具有更高的效率。
五、推荐算法推荐算法是根据用户的历史行为和偏好来预测用户可能感兴趣的物品。
常用的推荐算法包括基于内容的推荐算法、协同过滤推荐算法和深度学习推荐算法。
基于内容的推荐算法通过分析物品的属性和用户的偏好来进行推荐。
协同过滤推荐算法则是通过分析用户之间的相似性来进行推荐。
深度学习推荐算法则是运用深度学习模型来进行推荐,具有更高的准确性和个性化。
大数据挖掘——数据挖掘的方法概述:数据挖掘是从大量的数据中发现隐藏在其中的有用信息和模式的过程。
大数据挖掘是在大规模数据集上进行数据挖掘的一种技术。
本文将介绍几种常用的数据挖掘方法,包括关联规则挖掘、分类算法、聚类算法和预测算法。
一、关联规则挖掘关联规则挖掘是一种发现数据集中项之间关联关系的方法。
通过分析数据集中的项集,可以找到经常同时出现的项之间的关联规则。
关联规则挖掘常用于市场篮子分析、购物篮分析等场景。
例如,在超市购物数据中,我们可以通过关联规则挖掘发现“牛奶”和“面包”经常一起购买。
二、分类算法分类算法是一种根据已有的数据集对新数据进行分类的方法。
通过对已有数据集进行学习,分类算法可以建立一个分类模型,然后使用该模型对新数据进行分类。
常用的分类算法包括决策树、朴素贝叶斯、支持向量机等。
例如,在电子邮件分类中,我们可以使用分类算法将邮件分为垃圾邮件和非垃圾邮件。
三、聚类算法聚类算法是一种将数据集中的对象分成不同组的方法。
聚类算法通过计算数据对象之间的相似度或距离,将相似的对象分为同一组。
常用的聚类算法包括K均值算法、层次聚类算法等。
例如,在市场细分中,我们可以使用聚类算法将顾客分成不同的群体,以便进行精准营销。
四、预测算法预测算法是一种根据已有的数据集对未来数据进行预测的方法。
预测算法通过分析已有数据的趋势和规律,建立一个预测模型,然后使用该模型对未来数据进行预测。
常用的预测算法包括线性回归、时间序列分析等。
例如,在销售预测中,我们可以使用预测算法对未来的销售额进行预测。
五、数据挖掘流程数据挖掘的方法通常包括以下几个步骤:1. 数据准备:收集和清洗原始数据,包括去除重复数据、处理缺失值等。
2. 特征选择:选择对目标变量有影响的特征,排除无关特征,以提高模型的准确性和效率。
3. 数据变换:对数据进行变换,以满足模型的要求,如对连续变量进行离散化、标准化等。
4. 模型选择:选择合适的数据挖掘方法和算法,根据具体问题进行选择。
大数据挖掘主要算法1. 关联规则挖掘算法:关联规则挖掘是指从大规模数据集中发现项集之间的相关关系。
其中最著名的算法是Apriori算法和FP-Growth算法。
Apriori算法通过迭代地扫描数据集,找出频繁项集之间的关联规则。
FP-Growth算法通过构建FP树,有效地发现频繁项集。
2.分类算法:分类算法是指从已知的训练数据中学习一个分类模型,然后使用该模型对新的数据进行分类。
常用的分类算法有决策树算法、K近邻算法、朴素贝叶斯算法和支持向量机算法。
3.聚类算法:聚类算法是指将相似的数据点分组到同一个簇中。
常用的聚类算法有K均值算法、层次聚类算法和DBSCAN算法。
4.随机森林算法:随机森林是一种集成学习算法,它由多个决策树组成。
每个决策树由随机选择的数据集和特征组成。
随机森林的输出是由其所有决策树的输出合并而成的。
5.神经网络算法:神经网络是一种模仿人脑神经系统的计算模型。
在大数据挖掘中,神经网络算法被广泛应用于模式识别和分类问题。
6.支持向量机算法:支持向量机是一种监督学习算法,用于分类和回归分析。
它通过在数据空间中找到最大间隔超平面来进行分类。
7. 关键词提取算法:关键词提取是指从文本中识别出最重要的关键词。
常用的关键词提取算法有TF-IDF算法和TextRank算法。
8.用户画像算法:用户画像是指用于描述用户特征和行为的模型。
在大数据挖掘中,用户画像算法通过分析用户行为和兴趣,从而为用户提供个性化的推荐和服务。
9.时间序列分析算法:时间序列分析是指对一系列按时间顺序排列的数据进行分析和预测的方法。
常用的时间序列分析算法有ARIMA模型和LSTM神经网络。
10. 图挖掘算法:图挖掘是指从图数据中发现模式和知识的过程。
常用的图挖掘算法有PageRank算法和社区发现算法。
这些算法在大数据挖掘中起着重要的作用,能够处理海量的数据并从中提取有用的信息和知识。
随着技术的不断发展,也会有更多新的算法被提出来应对不断增长的大数据挑战。
大数据常用的算法一、介绍在大数据时代,海量的数据需要被高效地处理和分析,而大数据算法就是为了解决这个问题而诞生的。
大数据算法可以帮助我们从海量数据中提取有用的信息和知识,以支持决策和预测。
本文将介绍几种常用的大数据算法,包括关联规则挖掘、聚类分析、分类算法和推荐系统算法。
二、关联规则挖掘关联规则挖掘是一种用于发现数据集中的频繁项集和关联规则的算法。
它可以帮助我们发现数据集中的潜在关联关系,以便做出相应的决策。
常用的关联规则挖掘算法包括Apriori算法和FP-Growth算法。
Apriori算法通过迭代的方式生成候选项集,并使用支持度和置信度进行剪枝,最终得到频繁项集和关联规则。
FP-Growth算法则通过构建FP树来高效地发现频繁项集和关联规则。
三、聚类分析聚类分析是一种将数据集中的对象划分为不同的组或类别的算法。
聚类分析可以帮助我们发现数据集中的内在结构和模式,以便进行更深入的分析。
常用的聚类分析算法包括K-means算法和层次聚类算法。
K-means算法通过迭代的方式将数据点划分为K个簇,使得簇内的数据点相似度最大化,簇间的数据点相似度最小化。
层次聚类算法则通过不断合并最相似的簇来构建聚类树,最终得到聚类结果。
四、分类算法分类算法是一种将数据点分配到不同类别的算法。
分类算法可以帮助我们对未知数据进行预测和分类。
常用的分类算法包括决策树算法、朴素贝叶斯算法和支持向量机算法。
决策树算法通过构建一棵树来进行分类,每个节点表示一个特征,每个分支表示一个特征值,叶子节点表示一个类别。
朴素贝叶斯算法则基于贝叶斯定理进行分类,假设特征之间相互独立。
支持向量机算法则通过构建超平面来进行分类,使得不同类别的数据点之间的间隔最大化。
五、推荐系统算法推荐系统算法是一种根据用户的历史行为和偏好来推荐个性化内容的算法。
推荐系统算法可以帮助我们提供个性化的推荐,提高用户的满意度和体验。
常用的推荐系统算法包括基于内容的推荐算法、协同过滤算法和深度学习算法。
大数据的经典的四种算法大数据经典的四种算法一、Apriori算法Apriori算法是一种经典的关联规则挖掘算法,用于发现数据集中的频繁项集和关联规则。
它的基本思想是通过迭代的方式,从单个项开始,不断增加项的数量,直到不能再生成频繁项集为止。
Apriori算法的核心是使用Apriori原理,即如果一个项集是频繁的,则它的所有子集也一定是频繁的。
这个原理可以帮助减少候选项集的数量,提高算法的效率。
Apriori算法的输入是一个事务数据库,输出是频繁项集和关联规则。
二、K-means算法K-means算法是一种聚类算法,用于将数据集划分成K个不同的类别。
它的基本思想是通过迭代的方式,不断调整类别中心,使得每个样本点都属于距离最近的类别中心。
K-means算法的核心是使用欧氏距离来度量样本点与类别中心的距离。
算法的输入是一个数据集和预设的类别数量K,输出是每个样本点所属的类别。
三、决策树算法决策树算法是一种分类和回归算法,用于根据数据集中的特征属性,构建一棵树形结构,用于预测目标属性的取值。
它的基本思想是通过递归的方式,将数据集分割成更小的子集,直到子集中的样本点都属于同一类别或达到停止条件。
决策树算法的核心是选择最佳的划分属性和划分点。
算法的输入是一个数据集,输出是一个决策树模型。
四、朴素贝叶斯算法朴素贝叶斯算法是一种基于贝叶斯定理的分类算法,用于根据数据集中的特征属性,预测目标属性的取值。
它的基本思想是假设特征属性之间相互独立,通过计算后验概率来进行分类。
朴素贝叶斯算法的核心是使用贝叶斯定理和条件独立性假设。
算法的输入是一个数据集,输出是一个分类模型。
五、支持向量机算法支持向量机算法是一种用于分类和回归的机器学习算法,用于找到一个超平面,将不同类别的样本点分开。
它的基本思想是找到一个最优的超平面,使得离它最近的样本点到超平面的距离最大化。
支持向量机算法的核心是通过求解凸二次规划问题来确定超平面。
算法的输入是一个数据集,输出是一个分类或回归模型。
大数据分析中常用的数据挖掘技术随着互联网和物联网的迅猛发展,数据已成为了当今社会最有价值的资产之一。
其中,大数据是指数据量大、类型多、处理复杂的数据集合,由于数据量的增加和多样性的提高,对于数据的分析和挖掘也提出了更高的要求。
数据挖掘技术是一种根据数据特征和规律来获取潜在信息的技术,是大数据分析中不可或缺的一部分。
本文将介绍大数据分析中常用的数据挖掘技术。
一、分类算法分类算法是数据挖掘中最为常见的算法之一,它主要是通过预测样本的分类标签来识别新的数据集。
分类算法可分为有监督和无监督两种,其中有监督分类算法需要预先准备好标签样本,然后通过对已知标签样本的学习来预测未知标签样本的类别。
其中常见的有监督分类算法有决策树、朴素贝叶斯分类器、支持向量机等。
无监督分类算法是在没有样本标签的情况下,通过对数据分布的特殊特征和相似性进行聚类,将数据集中的数据点分组为不同的类别,并发掘数据中的隐藏属性和特征。
其中常见的无监督分类算法有 K-means 聚类、层次聚类、DBSCAN 聚类。
分类算法在产品推荐、用户行为分析、舆情分析等方面的应用越来越广泛。
二、关联规则关联规则是一种用于发现数据间的相关性的技术。
它通过在数据集中发现不同的数据项之间的频繁出现来推断他们之间的联系。
关联规则可以用于分析市场营销、销售趋势预测、交易模式发现等方面,利用关联规则可以分析出顾客购物习惯、购买行为、购买的商品等。
常见的关联规则算法有 Apriori、FP-tree 算法等。
三、异常检测数据中的异常点通常表示不正确的数据或者不符合预期的数据,它与其他数据之间存在一定的偏差。
异常检测就是用来找出这些异常点,通过对这些点进行分析和处理,可以消除数据中的噪音影响,提高数据分析的精度。
异常检测可用于金融欺诈检测、安全攻击检测、故障预警等方面。
常见的异常检测算法有 Isolation Forest、Local Outlier Factor 等。
大数据分析中的数据挖掘算法大数据时代的到来已经让数据分析成为了人们必须面对的重要工作。
作为数据分析的重要工具之一,数据挖掘算法显得尤为重要。
在众多的数据挖掘算法中,哪些算法比较适用于大数据分析呢?下面将分析几种常用的数据挖掘算法。
1. Apriori算法Apriori算法是一种用于挖掘关联规则的算法,它可以发现数据中已知的任何类型之间的相互关系。
在大数据分析中,Apriori算法可以用于挖掘出数据的规律和模式,通过对这些规律和模式的分析,可以帮助企业在市场中更好地应对竞争。
Apriori算法是一种基于频繁项集的挖掘算法,它的核心思想是首先找到数据中出现频率最高的模式,然后再继续挖掘该模式的子集。
2. K-Means算法K-Means算法是一种聚类算法,它可以将数据划分为多个不同的类别。
在大数据分析中,K-Means算法可以用于对数据进行分类和预测。
通过将大量的数据分为多个类别,并对每个类别进行独立的分析,可以更加快速和准确地分析大数据。
K-Means算法的主要思想是通过对数据进行聚类,使得同一类别的数据相似度更高。
该算法一般通过距离的计算来确定数据之间的相似度。
3. 决策树算法决策树算法是一种通过分类和回归来进行数据挖掘的算法。
在大数据分析中,决策树算法可以用于对数据进行预测和分类。
通过对决策树的构建和优化,可以更加精确地分析大数据中的潜在规律。
决策树算法的主要思想是通过不断的迭代和优化,将数据分为高度相关的几个类别,并在每个类别中进行进一步的分析。
在将数据分为不同的类别时,决策树算法主要通过信息增益的计算来确定每个类别之间的差异。
4. 随机森林算法随机森林算法是一种基于分类和回归的算法,它可以对数据进行预测和分类。
在大数据分析中,随机森林算法可以用于分析数据中的潜在规律和模式,从而帮助企业更好地应对市场竞争。
随机森林算法的主要思想是通过将多颗决策树结合起来,形成一个“森林”。
在每个决策树的构建过程中,都会随机选取一定数量的数据和特征,从而使得每个决策树都具有独立的分析和预测能力。
大数据常用的算法一、介绍在大数据时代,数据量庞大且复杂,如何从海量数据中提取有价值的信息成为了一项重要的任务。
为了解决这个问题,大数据算法应运而生。
大数据算法是一种用于处理大规模数据集的计算方法和技术,通过对数据进行分析、建模和预测,从中挖掘出有用的信息和模式。
二、常见的大数据算法1. 关联规则挖掘算法关联规则挖掘算法用于发现数据集中的频繁项集和关联规则。
频繁项集是指在数据集中经常同时出现的一组项,而关联规则则是描述这些项之间的关联关系。
常用的关联规则挖掘算法有Apriori算法和FP-Growth算法。
2. 分类算法分类算法用于将数据集中的样本划分到不同的类别中。
常见的分类算法有决策树、支持向量机(SVM)、朴素贝叶斯分类器和随机森林等。
这些算法通过学习已有的标记样本,建立分类模型,并用于对未知样本进行分类预测。
3. 聚类算法聚类算法用于将数据集中的样本划分为不同的群组,使得同一群组内的样本相似度较高,而不同群组之间的样本相似度较低。
常见的聚类算法有K-means算法、DBSCAN算法和层次聚类算法等。
4. 预测算法预测算法用于根据已有的数据,预测未来的趋势和结果。
常见的预测算法有线性回归、逻辑回归和支持向量回归等。
这些算法通过对已有数据的拟合,建立预测模型,并用于对未来数据进行预测。
5. 推荐算法推荐算法用于根据用户的历史行为和兴趣,向其推荐可能感兴趣的物品或服务。
常见的推荐算法有协同过滤算法、基于内容的推荐算法和基于深度学习的推荐算法等。
6. 图像处理算法图像处理算法用于对大规模图像数据进行处理和分析。
常见的图像处理算法有边缘检测算法、图像分割算法和图像识别算法等。
这些算法通过对图像进行特征提取和模式识别,实现图像的自动处理和分析。
三、应用场景1. 金融领域大数据算法在金融领域的应用非常广泛。
通过对大量的金融数据进行分析和建模,可以实现风险评估、信用评分、欺诈检测和股票预测等功能。
2. 零售领域大数据算法在零售领域可以用于用户行为分析、商品推荐和销售预测等。
朴素贝叶斯:有以下几个地方需要注意:1. 如果给出的特征向量长度可能不同,这是需要归一化为通长度的向量(这里以文本分类为例),比如说是句子单词的话,则长度为整个词汇量的长度,对应位置是该单词出现的次数。
2. 计算公式如下:其中一项条件概率可以通过朴素贝叶斯条件独立展开。
要注意一点就是的计算方法,而由朴素贝叶斯的前提假设可知, =,因此一般有两种,一种是在类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本的总和;第二种方法是类别为ci的那些样本集中,找到wj出现次数的总和,然后除以该样本中所有特征出现次数的总和。
3. 如果中的某一项为0,则其联合概率的乘积也可能为0,即2中公式的分子为0,为了避免这种现象出现,一般情况下会将这一项初始化为1,当然为了保证概率相等,分母应对应初始化为2(这里因为是2类,所以加2,如果是k类就需要加k,术语上叫做laplace 光滑,分母加k的原因是使之满足全概率公式)。
朴素贝叶斯的优点:对小规模的数据表现很好,适合多分类任务,适合增量式训练。
缺点:对输入数据的表达形式很敏感。
决策树:决策树中很重要的一点就是选择一个属性进行分枝,因此要注意一下信息增益的计算公式,并深入理解它。
信息熵的计算公式如下:其中的n代表有n个分类类别(比如假设是2类问题,那么n=2)。
分别计算这2类样本在总样本中出现的概率p1和p2,这样就可以计算出未选中属性分枝前的信息熵。
现在选中一个属性xi用来进行分枝,此时分枝规则是:如果xi=vx的话,将样本分到树的一个分支;如果不相等则进入另一个分支。
很显然,分支中的样本很有可能包括2个类别,分别计算这2个分支的熵H1和H2,计算出分枝后的总信息熵H’=p1*H1+p2*H2.,则此时的信息增益ΔH=H-H’。
以信息增益为原则,把所有的属性都测试一边,选择一个使增益最大的属性作为本次分枝属性。
决策树的优点:计算量简单,可解释性强,比较适合处理有缺失属性值的样本,能够处理不相关的特征;缺点:容易过拟合(后续出现了随机森林,减小了过拟合现象);Logistic回归:Logistic是用来分类的,是一种线性分类器,需要注意的地方有:1. logistic函数表达式为:其导数形式为:2. logsitc回归方法主要是用最大似然估计来学习的,所以单个样本的后验概率为:到整个样本的后验概率:其中:通过对数进一步化简为:3. 其实它的loss function为-l(θ),因此我们需使loss function最小,可采用梯度下降法得到。
梯度下降法公式为:Logistic回归优点:1、实现简单;2、分类时计算量非常小,速度很快,存储资源低;缺点:1、容易欠拟合,一般准确度不太高2、只能处理两分类问题(在此基础上衍生出来的softmax可以用于多分类),且必须线性可分;线性回归:线性回归才是真正用于回归的,而不像logistic回归是用于分类,其基本思想是用梯度下降法对最小二乘法形式的误差函数进行优化,当然也可以用normal equation直接求得参数的解,结果为:而在LWLR(局部加权线性回归)中,参数的计算表达式为:因为此时优化的是:由此可见LWLR与LR不同,LWLR是一个非参数模型,因为每次进行回归计算都要遍历训练样本至少一次。
线性回归优点:实现简单,计算简单;缺点:不能拟合非线性数据;KNN算法:KNN即最近邻算法,其主要过程为:1. 计算训练样本和测试样本中每个样本点的距离(常见的距离度量有欧式距离,马氏距离等);2. 对上面所有的距离值进行排序;3. 选前k个最小距离的样本;4. 根据这k个样本的标签进行投票,得到最后的分类类别;如何选择一个最佳的K值,这取决于数据。
一般情况下,在分类时较大的K值能够减小噪声的影响。
但会使类别之间的界限变得模糊。
一个较好的K值可通过各种启发式技术来获取,比如,交叉验证。
另外噪声和非相关性特征向量的存在会使K近邻算法的准确性减小。
近邻算法具有较强的一致性结果。
随着数据趋于无限,算法保证错误率不会超过贝叶斯算法错误率的两倍。
对于一些好的K值,K近邻保证错误率不会超过贝叶斯理论误差率。
注:马氏距离一定要先给出样本集的统计性质,比如均值向量,协方差矩阵等。
关于马氏距离的介绍如下:KNN算法的优点:1. 思想简单,理论成熟,既可以用来做分类也可以用来做回归;2. 可用于非线性分类;3. 训练时间复杂度为O(n);4. 准确度高,对数据没有假设,对outlier不敏感;缺点:1. 计算量大;2. 样本不平衡问题(即有些类别的样本数量很多,而其它样本的数量很少);3. 需要大量的内存;SVM:要学会如何使用libsvm以及一些参数的调节经验,另外需要理清楚svm算法的一些思路:1. svm中的最优分类面是对所有样本的几何裕量最大(为什么要选择最大间隔分类器,请从数学角度上说明?网易深度学习岗位面试过程中有被问到。
答案就是几何间隔与样本的误分次数间存在关系:,其中的分母就是样本到分类间隔距离,分子中的R是所有样本中的最长向量值),即:经过一系列推导可得为优化下面原始目标:2. 下面来看看拉格朗日理论:可以将1中的优化目标转换为拉格朗日的形式(通过各种对偶优化,KKD条件),最后目标函数为:我们只需要最小化上述目标函数,其中的α为原始优化问题中的不等式约束拉格朗日系数。
3. 对2中最后的式子分别w和b求导可得:由上面第1式子可以知道,如果我们优化出了α,则直接可以求出w了,即模型的参数搞定。
而上面第2个式子可以作为后续优化的一个约束条件。
4. 对2中最后一个目标函数用对偶优化理论可以转换为优化下面的目标函数:而这个函数可以用常用的优化方法求得α,进而求得w和b。
5. 按照道理,svm简单理论应该到此结束。
不过还是要补充一点,即在预测时有:那个尖括号我们可以用核函数代替,这也是svm经常和核函数扯在一起的原因。
6. 最后是关于松弛变量的引入,因此原始的目标优化公式为:此时对应的对偶优化公式为:与前面的相比只是α多了个上界。
SVM算法优点:可用于线性/非线性分类,也可以用于回归;低泛化误差;容易解释;计算复杂度较低;缺点:对参数和核函数的选择比较敏感;原始的SVM只比较擅长处理二分类问题;Boosting:主要以Adaboost为例,首先来看看Adaboost的流程图,如下:从图中可以看到,在训练过程中我们需要训练出多个弱分类器(图中为3个),每个弱分类器是由不同权重的样本(图中为5个训练样本)训练得到(其中第一个弱分类器对应输入样本的权值是一样的),而每个弱分类器对最终分类结果的作用也不同,是通过加权平均输出的,权值见上图中三角形里面的数值。
那么这些弱分类器和其对应的权值是怎样训练出来的呢?下面通过一个例子来简单说明。
书中(machine learning in action)假设的是5个训练样本,每个训练样本的维度为2,在训练第一个分类器时5个样本的权重各为0.2. 注意这里样本的权值和最终训练的弱分类器组对应的权值α是不同的,样本的权重只在训练过程中用到,而α在训练过程和测试过程都有用到。
现在假设弱分类器是带一个节点的简单决策树,该决策树会选择2个属性(假设只有2个属性)的一个,然后计算出这个属性中的最佳值用来分类。
Adaboost的简单版本训练过程如下:1. 训练第一个分类器,样本的权值D为相同的均值。
通过一个弱分类器,得到这5个样本(请对应书中的例子来看,依旧是machine learning in action)的分类预测标签。
与给出的样本真实标签对比,就可能出现误差(即错误)。
如果某个样本预测错误,则它对应的错误值为该样本的权重,如果分类正确,则错误值为0. 最后累加5个样本的错误率之和,记为ε。
2. 通过ε来计算该弱分类器的权重α,公式如下:3. 通过α来计算训练下一个弱分类器样本的权重D,如果对应样本分类正确,则减小该样本的权重,公式为:如果样本分类错误,则增加该样本的权重,公式为:4. 循环步骤1,2,3来继续训练多个分类器,只是其D值不同而已。
测试过程如下:输入一个样本到训练好的每个弱分类中,则每个弱分类都对应一个输出标签,然后该标签乘以对应的α,最后求和得到值的符号即为预测标签值。
Boosting算法的优点:低泛化误差;容易实现,分类准确率较高,没有太多参数可以调;缺点:对outlier比较敏感;聚类:根据聚类思想划分:1. 基于划分的聚类:K-means, k-medoids(每一个类别中找一个样本点来代表),CLARANS.k-means是使下面的表达式值最小:k-means算法的优点:(1)k-means算法是解决聚类问题的一种经典算法,算法简单、快速。
(2)对处理大数据集,该算法是相对可伸缩的和高效率的,因为它的复杂度大约是O(nkt),其中n是所有对象的数目,k是簇的数目,t是迭代的次数。
通常k<<n。
这个算法通常局部收敛。
(3)算法尝试找出使平方误差函数值最小的k个划分。
当簇是密集的、球状或团状的,且簇与簇之间区别明显时,聚类效果较好。
缺点:(1)k-平均方法只有在簇的平均值被定义的情况下才能使用,且对有些分类属性的数据不适合。
(2)要求用户必须事先给出要生成的簇的数目k。
(3)对初值敏感,对于不同的初始值,可能会导致不同的聚类结果。
(4)不适合于发现非凸面形状的簇,或者大小差别很大的簇。
(5)对于"噪声"和孤立点数据敏感,少量的该类数据能够对平均值产生极大影响。
2. 基于层次的聚类:自底向上的凝聚方法,比如AGNES。
自上向下的分裂方法,比如DIANA。
3. 基于密度的聚类:DBSACN,OPTICS,BIRCH(CF-Tree),CURE.4. 基于网格的方法:STING, WaveCluster.5. 基于模型的聚类:EM,SOM,COBWEB.以上这些算法的简介可参考聚类(百度百科)。
推荐系统:推荐系统的实现主要分为两个方面:基于内容的实现和协同滤波的实现。
基于内容的实现:不同人对不同电影的评分这个例子,可以看做是一个普通的回归问题,因此每部电影都需要提前提取出一个特征向量(即x值),然后针对每个用户建模,即每个用户打的分值作为y值,利用这些已有的分值y和电影特征值x就可以训练回归模型了(最常见的就是线性回归)。
这样就可以预测那些用户没有评分的电影的分数。
(值得注意的是需对每个用户都建立他自己的回归模型)从另一个角度来看,也可以是先给定每个用户对某种电影的喜好程度(即权值),然后学出每部电影的特征,最后采用回归来预测那些没有被评分的电影。
当然还可以是同时优化得到每个用户对不同类型电影的热爱程度以及每部电影的特征。