机器学习中关于模型评估方法总结

合集下载

机器学习模型的调试和评估方法

机器学习模型的调试和评估方法

机器学习模型的调试和评估方法机器学习模型的调试和评估是机器学习中非常重要的一部分,它包括了模型的调参、模型性能的评估和模型结果的分析等步骤。

下面将介绍一些常用的机器学习模型的调试和评估方法。

一、模型的调试模型的调试是指通过改变模型的参数或结构,来提高模型的性能和泛化能力。

以下是一些常用的模型调试方法:1.交叉验证(Cross Validation)交叉验证是一种常用的模型调试方法,它将数据分为训练集和验证集,通过多次训练和验证,得到不同参数下的模型性能表现,从而选择最佳的模型参数。

常见的交叉验证方法有K-Fold交叉验证和留一交叉验证。

2.网格搜索(Grid Search)网格搜索是一种通过穷举搜索的方法,来寻找最优的模型参数组合。

该方法通过指定一系列的参数候选值,将参数组合成一个网格,计算每个参数组合的模型性能,选择性能最好的参数组合作为最佳模型参数。

3.随机搜索(Random Search)随机搜索是一种通过随机抽样的方法,在参数的搜索空间中随机选择参数组合进行训练和评估。

相较于网格搜索,随机搜索的主要优势在于可以更快地寻找到较优的参数组合,尤其在参数空间较大时,随机搜索的效率更高。

4.提前停止(Early Stopping)提前停止是一种通过观察模型在验证集上的性能变化来判断何时停止训练。

通常情况下,训练误差会随着迭代次数的增加而逐渐减小,而验证误差则在达到一定阈值之后开始增大。

当验证误差超过一定阈值时,可以停止训练,以避免模型过拟合。

5.特征选择(Feature Selection)特征选择是一种通过选择最有用的特征子集来降低模型的复杂度和提高模型性能的方法。

常见的特征选择方法有过滤法、包装法和嵌入法等。

二、模型性能的评估模型性能的评估是指对模型在未知数据上的预测能力进行评估的过程。

以下是一些常用的模型性能评估方法:1.准确率(Accuracy)准确率是指模型在所有预测样本中预测正确的比例。

机器学习模型评估方法

机器学习模型评估方法

机器学习模型评估方法机器学习模型评估是机器学习中非常重要的一步,它用于确定训练得到的模型在未知数据上的性能表现。

本文将介绍三种常用的机器学习模型评估方法:交叉验证、混淆矩阵和ROC曲线。

一、交叉验证交叉验证是一种常用的机器学习模型评估方法,它通过将数据集划分为若干个子集,然后使用其中一部分作为测试集,其余部分作为训练集,多次重复这个过程,最终综合各次评估结果得到最终评估指标。

常用的交叉验证方法有K折交叉验证和留一法交叉验证。

K折交叉验证将数据集均匀划分为K个子集,每次选取其中一个作为测试集,剩余K-1个作为训练集,最终得到K个评估结果,可以计算平均值作为最终评估指标。

留一法交叉验证是K折交叉验证的特殊情况,即K等于数据集的大小。

它适用于样本较少的情况,但计算量大。

二、混淆矩阵混淆矩阵是一种将模型的分类结果与真实标签进行比较的评估方法。

它以四个关键指标为基础:真正例(True Positive,TP)、假正例(False Positive,FP)、真反例(True Negative,TN)和假反例(False Negative,FN)。

根据混淆矩阵可计算出多个评估指标,如准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1值。

准确率指模型正确预测的样本数占总样本数的比例,精确率指预测为正例的样本中真正正例的比例,召回率指真正正例样本被正确预测为正例的比例,F1值是精确率和召回率的调和平均。

三、ROC曲线ROC曲线是以真正例率(True Positive Rate,TPR)和假正例率(False Positive Rate,FPR)为横纵坐标绘制的曲线。

TPR指模型正确预测的正例样本数占真实正例样本数的比例,FPR指模型错误预测的反例样本数占真实反例样本数的比例。

通过改变分类阈值,可以得到不同的TPR和FPR,从而绘制出ROC曲线。

ROC曲线的面积越大,模型性能越好。

机器学习模型评估指标总结

机器学习模型评估指标总结

机器学习模型评估指标总结机器学习模型评估指标是衡量模型性能的重要指标,能够帮助我们判断模型的优劣并进行模型的选择、优化和比较等。

在机器学习中,常用的模型评估指标包括准确率、精确度、召回率、F1值、AUC-ROC、AUC-PR、平均绝对误差(MAE)、均方误差(MSE)、对数损失(Log Loss)等。

下面将对这些指标逐一进行介绍和总结。

1. 准确率(Accuracy):准确率是最常见也是最直观的评估指标,其表示模型预测正确的样本数占总样本数的比例。

准确率的计算公式为:(预测正确的样本数)/(总样本数)。

2. 精确度(Precision):精确度是指模型在所有预测为正类的样本中,实际为正类的样本占比。

精确度的计算公式为:(真正类的样本数)/(真正类的样本数+假正类的样本数)。

3. 召回率(Recall):召回率是指模型找到的正类样本占实际为正样本的比例,也称为查全率。

召回率的计算公式为:(真正类的样本数)/(真正类的样本数+假负类的样本数)。

4.F1值:F1值是综合考虑了精确度和召回率的指标,用于衡量模型的综合性能。

F1值的计算公式为:2*(精确度*召回率)/(精确度+召回率)。

5. AUC-ROC(Area Under the Receiver Operating Characteristic curve):AUC-ROC是用于评估二分类模型的性能指标,表示ROC曲线下的面积。

ROC曲线是以假正类率(False Positive Rate)为横轴,真正类率(True Positive Rate)为纵轴的曲线,AUC-ROC越接近于1,模型的性能越好。

6. AUC-PR(Area Under the Precision-Recall curve):AUC-PR是另一种用于评估二分类模型性能的指标,表示Precision-Recall曲线下的面积。

PR曲线是以召回率为横轴,精确度为纵轴的曲线,AUC-PR越接近于1,模型的性能越好。

机器学习的模型评估

机器学习的模型评估

机器学习的模型评估在机器学习领域,模型评估是一个至关重要的步骤。

评估模型的性能和准确度可以帮助我们选择最合适的算法,并优化和改进我们的模型。

本文将介绍机器学习的模型评估方法,以及常用的评价指标。

一、模型评估的重要性在机器学习中,我们通常会训练多个模型,并使用这些模型对未知数据进行预测。

然而,并非所有模型都可以达到相同的准确度和性能水平。

因此,评估模型的性能就显得尤为重要。

只有通过合理的评估方法,我们才能选择出最优的模型,并对其进行优化和改进。

二、模型评估的方法在机器学习中,常用的模型评估方法包括交叉验证和留出法。

1. 交叉验证交叉验证是一种常用的模型评估方法,它将数据集划分为若干个互不相交的子集,然后使用其中一个子集作为测试集,其余子集作为训练集。

通过交叉验证,我们可以对模型进行多次训练和测试,并计算平均准确率以评估模型的性能。

常见的交叉验证方法包括k折交叉验证和留一法。

2. 留出法留出法是指将数据集划分为训练集和测试集两部分,在训练集上进行模型训练,然后使用测试集评估模型的性能。

留出法的优势在于简单直观,但是由于随机划分可能导致评估结果具有一定的不稳定性。

三、评价指标在模型评估中,我们还需使用评价指标来量化模型的性能。

下面是一些常用的评价指标:1. 准确率(Accuracy)准确率是指模型正确预测的样本数量占总样本数量的比例。

然而,在某些情况下,准确率并不能全面反映模型的性能,比如在数据不平衡的情况下。

因此,我们还需使用其他评价指标来综合评估模型的性能。

2. 召回率(Recall)召回率是指所有真实的正例中,模型预测为正例的比例。

召回率可以帮助我们评估模型的敏感性,即对正例的识别能力。

3. 精确率(Precision)精确率是指模型预测为正例的样本中,真实的正例的比例。

精确率可以帮助我们评估模型的准确性。

4. F1分数(F1 Score)F1分数综合考虑了召回率和精确率两个指标,是一个常用的综合评价指标。

机器学习中的模型评估方法

机器学习中的模型评估方法

机器学习中的模型评估方法机器学习是一门涉及设计和开发算法,使机器能够自动学习和改进的领域。

在机器学习中,选择和评估合适的模型是至关重要的。

本文将介绍机器学习中常用的模型评估方法。

一、训练集和测试集划分通常,将数据集划分为训练集和测试集是评估模型性能的第一步。

训练集用于拟合模型,而测试集用于评估模型在未知数据上的表现。

划分数据集的比例应该合理,通常将数据集划分为70%的训练集和30%的测试集。

二、交叉验证交叉验证是一种常用的模型评估方法。

它将数据集划分为k个子集,每次使用k-1个子集进行训练,然后使用剩余的一个子集进行测试,这个过程重复k次。

最常用的交叉验证方法是k折交叉验证,其中k通常为10。

三、留一验证留一验证是交叉验证的一种特殊情况,当数据集非常小时使用。

留一验证将数据集划分为n个子集,每个子集只包含一个样本。

然后依次使用每个子集进行测试,其余的n-1个样本进行训练。

留一验证能够对模型进行更准确的评估,但计算开销较大。

四、混淆矩阵混淆矩阵是一种可视化评估模型性能的方法。

它通过将测试集样本分类为真阳性、假阳性、真阴性和假阴性等四个类别来衡量模型的准确性。

混淆矩阵能够直观地展示模型的分类结果,从而评估其性能。

五、精确率、召回率与F1-score精确率、召回率和F1-score是常用的模型评估指标。

精确率是指模型正确预测为正例的概率,召回率是指模型正确预测为正例的样本占所有实际正例的比例,F1-score是精确率和召回率的调和平均数。

这些指标能够综合评估模型的性能,并提供不同的角度来衡量模型的准确性和召回率。

六、ROC曲线与AUC值ROC曲线是衡量模型二分类器性能的一种常用方法。

ROC曲线将真阳性率和假阳性率作为坐标轴,根据模型的预测结果绘制出一条曲线。

AUC(Area Under Curve)是ROC曲线下的面积,用来衡量模型分类器的性能。

AUC值越大,表示模型分类性能越好。

七、后续验证除了上述方法,还有其他一些模型评估方法,例如Bootstrap方法和自举法。

模型评估的方法

模型评估的方法

模型评估的方法模型评估是机器学习中非常重要的一环,它能够帮助我们了解我们构建的模型在解决特定问题上的表现如何。

在实际应用中,我们需要选择合适的评估方法来评价我们的模型,以便更好地优化和改进模型的性能。

本文将介绍一些常用的模型评估方法,帮助读者更好地了解和选择适合自己应用场景的评估方法。

1. 准确率(Accuracy)。

准确率是最常见的模型评估指标之一,它表示模型预测正确的样本数占总样本数的比例。

准确率的计算公式为,准确率=预测正确的样本数/总样本数。

在一些平衡的数据集中,准确率是一个很好的评估指标,但在不平衡的数据集中,准确率可能会受到样本分布的影响,因此需要结合其他评估指标进行综合考虑。

2. 精确率(Precision)和召回率(Recall)。

精确率和召回率是用来评估二分类模型性能的重要指标。

精确率表示模型预测为正样本中真正为正样本的比例,计算公式为,精确率=真正为正样本数/预测为正样本数。

召回率表示真正为正样本中被模型预测为正样本的比例,计算公式为,召回率=真正为正样本数/实际为正样本数。

精确率和召回率通常是一对矛盾的指标,需要根据具体的应用场景进行权衡。

3. F1值。

F1值是精确率和召回率的调和平均数,它综合考虑了精确率和召回率的性能,适用于评估分类模型的整体性能。

F1值的计算公式为,F1=2精确率召回率/(精确率+召回率)。

F1值越高,表示模型的性能越好。

4. ROC曲线和AUC值。

ROC曲线是用来评估二分类模型性能的重要工具,它以真正例率(TPR)为纵轴,假正例率(FPR)为横轴,展现了在不同阈值下模型的性能。

AUC值是ROC曲线下的面积,用来衡量模型性能的好坏,AUC值越大,表示模型的性能越好。

5. 混淆矩阵。

混淆矩阵是用来展现模型预测结果的一种矩阵形式,它包括真正例(TP)、假正例(FP)、真负例(TN)和假负例(FN)四个指标。

混淆矩阵可以帮助我们直观地了解模型的预测情况,从而更好地评估模型的性能。

机器学习模型评估

机器学习模型评估

机器学习模型评估机器学习模型评估是指通过一系列的指标和方法来衡量机器学习模型的性能和准确性。

在机器学习中,我们通常会将数据集分为训练集和测试集,然后使用训练集对模型进行训练,再使用测试集对模型进行评估。

本文将介绍常用的机器学习模型评估方法,并分享一些实用的技巧。

一、混淆矩阵混淆矩阵是评估二分类问题模型性能的常用工具。

它以四个指标为基础,包括真正例(True Positive, TP)、假正例(False Positive, FP)、真反例(True Negative, TN)和假反例(False Negative, FN)。

这些指标能够帮助我们计算出准确率(Accuracy)、精确率(Precision)、召回率(Recall)和F1分数(F1 Score)等评估指标。

二、准确率(Accuracy)准确率是最简单的评估指标之一,它反映了模型正确预测的样本数量与总样本数量之间的比例。

准确率的计算公式为:准确率 = (TP + TN)/ (TP + FP + TN + FN)。

然而,当数据集存在类别不平衡问题时,准确率并不能真实地反映模型的性能。

三、精确率(Precision)精确率衡量的是模型预测为正例中真正为正例的比例。

精确率的计算公式为:精确率 = TP / (TP + FP)。

精确率适用于对模型误报(将负例判断为正例)的问题比较敏感的场景。

四、召回率(Recall)召回率(也被称为灵敏度或真正例率)衡量的是模型能够正确识别出真正为正例的比例。

召回率的计算公式为:召回率 = TP / (TP + FN)。

召回率适用于对模型漏报(将正例判断为负例)的问题比较敏感的场景。

五、F1分数(F1 Score)F1分数综合了精确率和召回率,是二者的调和平均值。

当精确率和召回率同时重要时,可以使用F1分数作为评估指标。

F1分数的计算公式为:F1分数 = 2 * (精确率 * 召回率)/ (精确率 + 召回率)。

机器学习模型测试如何评估模型的准确性和稳定性

机器学习模型测试如何评估模型的准确性和稳定性

机器学习模型测试如何评估模型的准确性和稳定性机器学习模型的准确性和稳定性评估是在模型训练完成后,为了确认模型能否在实际应用中表现良好而进行的重要工作。

本文将介绍几种常用的评估方法和指标,以帮助读者更好地理解并应用于实际工作中。

1. 训练集和测试集的划分为了确保对机器学习模型进行准确性和稳定性评估,我们需要将数据集分为训练集和测试集两部分。

通常,我们将大部分数据用于训练模型,然后利用测试集来验证模型的预测能力。

一般来说,训练集和测试集的划分比例为70%和30%。

2. 准确性评估指标在机器学习中,准确性是评估模型性能的重要指标之一。

以下是常用的准确性评估指标:- 精确度(Precision):即正确预测的样本数量与总样本数量的比例。

- 召回率(Recall):即正确预测的正例数量与实际的正例数量的比例。

- F1分数(F1-score):是精确度和召回率的综合评价指标,用于综合考虑模型的准确性。

- ROC曲线下面积(AUC-ROC):用于衡量二分类问题中模型预测的准确性,其值越接近1,表示模型预测的准确性越高。

3. 稳定性评估指标除了准确性评估指标,稳定性评估指标也是评估模型性能的重要指标之一。

以下是一些常用的稳定性评估指标:- 交叉验证(Cross Validation):通过将数据集划分为多个子集,利用每个子集进行训练和测试,最终得到的评估结果的均值作为模型的准确性和稳定性评估指标。

- 自助采样法(Bootstrap):通过从原始数据集中随机采样生成多个训练集和测试集,来评估模型的准确性和稳定性。

- 模型的参数稳定性评估:通过对模型的参数进行干扰或扰动,观察模型的输出变化,来评估模型的稳定性。

4. 非参数统计方法除了上述介绍的指标和方法,我们还可以采用非参数统计方法来评估模型的准确性和稳定性。

这些方法不对概率分布进行任何假设,而是根据观测数据自身的分布特征进行分析,从而得出结论。

- 基于排名的方法(Rank-based methods):利用样本之间的相对顺序关系进行评估。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1模型评估我们在建立模型之后,接下来就要去评估模型,确定这个模型是否有用。

在实际情况中,我们会用不同的度量去评估我们的模型,而度量的选择取决于模型的类型和模型以后要做的事。

1.1二分类评估二分类模型的评估。

1.1.1业界标准叫法二分类评估;分类算法。

1.1.2应用场景信息检索、分类、识别、翻译体系中。

1.1.2.1新闻质量分类评估对于新闻APP,其通过各种来源获得的新闻,质量通常良莠不齐。

为了提升用户体验,通常需要构建一个分类器模型分类低质新闻和优质新闻,进而进行分类器的评估。

1.1.2.2垃圾短信分类评估垃圾短信已经日益成为困扰运营商和手机用户的难题,严重影响人们的生活、侵害到运营商的社会公众形象。

构建二分类器模型对垃圾短信和正常短信进行分类,并进行二分类评估。

1.1.3原理1.1.3.1混淆矩阵混淆矩阵(Confusion Matrix)。

来源于信息论,在机器学习、人工智能领域,混淆矩阵又称为可能性表格或错误矩阵,是一种矩阵呈现的可视化工具,用于有监督学习,在无监督学习中一般叫匹配矩阵。

混淆矩阵是一个N*N的矩阵,N为分类(目标值)的个数,假如我们面对的是一个二分类模型问题,即N=2,就得到一个2*2的矩阵,它就是一个二分类评估问题。

混淆矩阵的每一列代表预测类别,每一列的总数表示预测为该类别的数据的数目,每一行代表了数据的真实归属类别,每一行的数据总数表示该类别的实例的数目。

图1 2*2混淆矩阵图阳性(P,Positive):阴性(N,Negative):真阳性(TP,True Positive):正确的肯定,又称“命中”(Hit);被模型预测为正类的正样本。

真阴性(TN,True Negative):正确的否定,又称“正确拒绝”(correct rejection),被模型预测为负类的负样本。

伪阳性(FP,false Positive):错误的肯定,又称“假警报”(false alarm);被模型预测为负类的正样本。

伪阴性(FN,false Negative):错误的否定,又称“未命中”(miss);被模型预测为正类的负样本。

灵敏度(Sensitivity)或真阳性率(TPR,Ture Negative Rate):又称“召回率”(recall)、命中率(Hit Rate)。

在阳性值中实际被预测正确所占的比例。

TPR=TP/P=TP/(TP+FN)伪阳性率(FPR,false positive rate):又称“假正类率”、“错误命中率”、“假警报率”。

FPR=FP/(FP+TN)特异度(SPC,Specificity)或真阴性率:在阴性值中实际被预测正确所占的比例。

SPC=TN/N=TN/(FP+TN)=1-FPR假发现率(FDR,false discovery rate):FDR=FP/(FP+TP)=1-TPR准确度(ACC):预测正确的数占样本数的比例。

ACC=(TP+TN)/(P+N) 阳性预测值(PPV,positive predictive value)或精度(precision):阳性预测值被预测正确的比例。

PPV=TP/(TP+FP)阴性预测值(NPV,negative predictive value):阴性预测值被预测正确的比例。

NPV=TN/(TN+FN)图2 一个模型的2*2混淆矩阵图示例我们可以看出,这个模型的准确度是88%,阳性预测值比较高而阴性预测值较低,对于灵敏度和特异度也是相同。

这是因为我们选的阈值导致的,若我们降低阈值,这两对数值就会变得接近。

1.1.3.2ROC曲线ROC曲线(Receiver Operation Characteristic Curve),中文名叫“接受者操作特征曲线”,其实是从混淆矩阵衍生出来的图形,其横坐标是Specificity(特异度),纵坐标是Sensitivity(灵敏度)。

图3 ROC曲线图随着阈值的减小,更多的值归于正类,敏感度和特异度也相应增加。

而那条45度线是一条参照线,ROC曲线要与这条参照线比较。

如果我们不用模型,直接把客户分类,我们得到的曲线就是这条参照线,然而,我们使用了模型进行预测,就应该比随机的要好,所以,ROC曲线要尽量远离参照线,越远,我们的模型预测效果越好。

ROC曲线反映了错误命中率和灵敏度之前权衡的情况,即灵敏度随着错误命中率递增的情况下,谁增长的更快,快多少。

灵敏度增长的越快,曲线越往上屈,反映了模型的分类性能越好。

当正负样本不平衡时,这种模型评价方式比起一般的精确度评价方式好处尤为明显。

ROC曲线快速爬向左上,表示模型准确预测数据。

一般情况下,ROC曲线都应该处于参照线的上方。

1.1.3.3AUC(ROC曲线下面积Area Under ROC Curve)图3 AUC曲线图ROC曲线是根据与45度参照线比较判断模型的好坏,但这只是一种定性的分析,如果需要定量的计算判断,就用到了AUC,即:ROC 曲线下面积。

参考线的面积是0.5,ROC曲线越往左上方靠拢,AUC就越大(这里的面积是0.869),模型评估的性能越好,完美分类的AUC值是1。

1.1.3.4基尼系数基尼系统经常用于分类问题,公式:Gini=2*AUC-1。

基尼系数大于60%,就算好模型。

图3 LIFT提升图LIFT=(TP/(TP+FP))/((TP+FN)/(TP+FN+FP+TN))LIFT越大,模型的预测效果越好。

LIFT值应一直大于1,如果LIFT 值等于1,模型就没有任何提升了。

横轴是预测为正例的比例,即:(TP+FN)/(TP+FN+FP+TN)图3 Gains增益图与LIFT类似,区别在于纵轴的刻度不同,横轴相同。

Gains=TP/(TP+FP)=LIFT*((TP+FN)/(TP+FN+FP+TN))1.1.3.7K-S(Kolmogorov-Smirnov chart)图K-S图是用来度量阳性和阴性分类区分程度的。

若我们把总体严格按照阳性和阴性分成两组,则K-S值为100,如果我们是随机区分阳性和阴性,则K-S值为0。

所以,分类模型的K-S值在0到100之间,值越大,模型表现越好。

1.2多分类评估多分类模型的评估。

1.2.1业界标准叫法多分类评估。

1.2.2应用场景1.2.2.1商品图片分类淘宝、京东等电商含有数以百万级的商品图片,“拍照购”等应用必须对用户提供的商品图片进行分类。

1.2.3原理同1.1.3节。

1.2.3.1混淆矩阵如果有150个样本数据,这些数据分成3类,每类50个。

分类结束后得到的混淆矩阵如下:每一行之和为50,表示50个样本。

第一行说明类1的50个样本有43个分类正确,5个错分为类2,2个错分为类3。

第一行第一列中的43表示有43个实际归属第一类的实例被预测为第一类,同理,第二行第一列的2表示有2个实际归属为第二类的实例被错误预测为第一类。

1.2.4不同应用场景使用的方法及参数1.2.4.1混淆矩阵混淆矩阵一般只能用于分类输出模型中。

对于混淆矩阵,一般情况下,我们只关心其中一个定义度量。

例如:在医药公司,一般会更加关心最小化误诊率,也就是高特异度。

而在磨损模型中,我们更关心的是灵敏度。

1.2.4.2ROC和AUC曲线ROC曲线的一个应用场景是在人脸检测中,很多相关的研究或者企业评价他们的检测性能程度是通过ROC曲线来评定的。

ROC和AUC曲线常被用来评价一个二值分类器的优劣。

1.3Spark模型预测Apache Spark是专为大规模数据处理而设计的快速通用的计算引擎。

是一种计算框架。

1.3.1业界标准叫法Spark。

1.3.2应用1.3.2.1腾讯社交广告平台—广点通广点通是最早使用Spark的应用之一。

腾讯大数据精准推荐借助Spark快速迭代的优势,围绕“数据+算法+系统”这套技术方案,实现了在“数据实时采集、算法实时训练、系统实时预测”的全流程实时并行高维算法,最终成功应用于广点通pCTR投放系统上,支持每天上百亿的请求量。

基于日志数据的快速查询系统业务构建于Spark之上的Shark,利用其快速查询以及内存表等优势,承担了日志数据的即席查询工作。

在性能方面,普遍比Hive高2-10倍,如果使用内存表的功能,性能将会比hive快百倍。

1.3.2.2Yahoo—Audience Expansion(读者扩张)Yahoo将Spark用在Audience Expansion中的应用。

Audience Expansion是广告中寻找目标用户的一种方法:首先广告者提供一些观看了广告并且购买产品的样本客户,据此进行学习,寻找更多可能转化的用户,对他们定向广告。

Yahoo采用的算法是logistic regression。

同时由于有些SQL负载需要更高的服务质量,又加入了专门跑Shark 的大内存集群,用于取代商业BI/OLAP工具,承担报表/仪表盘和交互式/即席查询,同时与桌面BI工具对接。

目前在Yahoo部署的Spark 集群有112台节点,9.2TB内存。

1.3.2.3淘宝—搜索和广告业务阿里搜索和广告业务,最初使用Mahout或者自己写的MR来解决复杂的机器学习,导致效率低而且代码不易维护。

淘宝技术团队使用了Spark来解决多次迭代的机器学习算法、高计算复杂度的算法等。

将Spark运用于淘宝的推荐相关算法上,同时还利用Graphx解决了许多生产问题,包括以下计算场景:基于度分布的中枢节点发现、基于最大连通图的社区发现、基于三角形计数的关系衡量、基于随机游走的用户属性传播等。

1.3.2.4优酷土豆—视频推荐和广告业务优酷土豆在使用Hadoop集群的突出问题主要包括:第一是商业智能BI方面,分析师提交任务之后需要等待很久才得到结果;第二就是大数据量计算,比如进行一些模拟广告投放之时,计算量非常大的同时对效率要求也比较高,最后就是机器学习和图计算的迭代运算也是需要耗费大量资源且速度很慢。

最终发现这些应用场景并不适合在MapReduce里面去处理。

通过对比,发现Spark性能比MapReduce提升很多。

首先,交互查询响应快,性能比Hadoop提高若干倍;模拟广告投放计算效率高、延迟小(同hadoop比延迟至少降低一个数量级);机器学习、图计算等迭代计算,大大减少了网络传输、数据落地等,极大的提高的计算性能。

目前Spark已经广泛使用在优酷土豆的视频推荐(图计算)、广告业务等。

1.3.3原理1.3.3.1Spark生态圈如下图所示为Spark的整个生态圈,最底层为资源管理器,采用Mesos、Yarn等资源管理集群或者Spark自带的Standalone模式,底层存储为文件系统或者其他格式的存储系统如Hbase。

Spark作为计算框架,为上层多种应用提供服务。

相关文档
最新文档