‘壹’ 目前最流行的机器学习算法是什么
毫无疑问,机器学习在过去几年越来越受欢迎。由于大数据是目前技术行业最热门的趋势,机器学习是非常强大的,可以根据大量数据进行预测或计算推理。
如果你想学习机器算法,要做坦从何下手呢?
监督学习
1. 决策树:决策树是一种决策支持工具,使用的决策及其可能产生的后果,包括随机事件的结果,资源消耗和效用的树状图或模型。
从业务决策的角度来看,决策树是人们必须要选择是/否的问题,以评估大多数时候作出正确决策的概率。它允许您以结构化和系统的方式来解决问题,以得出逻辑结论。
2.朴素贝叶斯分类:朴素贝叶斯分类器是一种简单的概率分类器,基于贝叶斯定理,其特征之间具有强大(朴素)的独立性假设。
特征图像是方程 - P(A | B)是后验概率,P(B | A)是似然度,P(A)是类先验概率,P(B)是预测先验概率。
一些现实世界的例子是:
判断邮件是否为垃圾邮件
分类技术,将新闻文章氛围政治或体育类
检查一段表达积极情绪或消极情绪的文字
用于面部识别软件
3.普通最小二乘回归:如果你了解统计学,你可能已经听说过线性回归。最小二乘法是一种执行线性回归的方法。
您可以将线性回归视为拟合直线穿过点状分布的任务。有多种可能的策略可以做到这一点,“普通最小二乘法”策略就像这样 -你可以画一条线,然后把每个数据点,测量点和线之间的垂直距离,添加上去;拟合线将是距离总和的尽可能小的线。
线性是指您正在使用的模型来迎合数据,而最小二乘可以最小化线性模型误差。
4.逻辑回归: Logistic回归是一个强大的统计学方法,用一个或多个解释变量建模二项式结果。它通过使用逻辑函数估计概率,来衡量分类因变量与一个或多个独立变量之间的关系,后者是累积逻辑分布。
逻辑回归用于链晌生活中:
信用评级
衡量营销活动的成功率
预测某一产品的收入
某一天会有地震吗
5.支持向量机: SVM是二元分类算法。给定N维空间中两种种类型的点,SVM生成(N-1)维的超平面将这些点分成2组。
假设你有一些可以线性分离的纸张中的两种类型的点。SVM将找到一条直线,将这些点分成两种类型,并尽可能远离所有这些点。
在规模上,使用SVM解决的一些特大的问题(包括适当修改的实现)是:广告、人类基因剪接位点识别、基于图像的性别检测,大规模图像分类...
6.集成方法:集成方法是构建一组分类器的学习算法,然后通过对其预测进行加权投票来对新的数据点进行分类。原始的集成方法是贝叶斯平均法,但更新的算法包括纠错输出编码、bagging和boosting。
那么集成方法如何工作,为什么它们优于单个模型?
均衡偏差:如果你均衡了大量的倾向民主党的投票和大量倾向共和党的投票,你总会得到一个不那么偏颇的结果。
降低方差:集合大量模型的参考结果,噪音会小于单个模型的单个结果。在金融领域,这被称为投资分散原则(diversification)——一个混搭很多种股票的投资组合,比单独的股票更少变故。
不太可能过度拟合:如果您有单个模型不完全拟合,您以简单的方式(平均,加权平均,逻辑回归)结合每个模型建模,那么一般不会发生过拟合。
无监督学习
7. 聚类算法:聚类是对一组对象进行分组的任务,使得同一组(集群)中的对象彼此之间比其他组中的对象更相似。
每个聚类算法是不同的,比如:
基于Centroid的算法
基于连接的算法
基于密度的算法
概率
降维
神经网络/深度学习
8. 主成分分析: PCA是使用正交变换将可能相关变量的观察值转换为主成分的线性不相关变量值的一组统计过程。
PCA的一些应用包括压缩、简化数据、便于学习、可视化。请注意,领域知识在选择是否继续使用PCA时非常重要。数据嘈杂的情况(PCA的所有组件都有很大差异)的情况不适用。
9.奇异值分解:在线性代数中,SVD是真正复杂矩阵的因式分解。对于给定的m * n矩阵M,存在分解,使得M =UΣV,其中U和V是酉矩阵,棚胡锋Σ是对角矩阵。
PCA实际上是SVD的简单应用。在计算机视觉技术中,第一个人脸识别算法使用PCA和SVD,以将面部表示为“特征脸”的线性组合,进行降维,然后通过简单的方法将面部匹配到身份;虽然这种方法更复杂,但仍然依赖于类似的技术。
10.独立成分分析: ICA是一种统计技术,用于揭示随机变量、测量或信号集合的隐藏因素。ICA定义了观察到的多变量数据的生成模型,通常将其作为大型样本数据库。
在模型中,假设数据变量是一些未知潜在变量的线性混合,混合系统也是未知的。潜变量被假定为非高斯和相互独立的,它们被称为观测数据的独立成分。
ICA与PCA相关,但它是一种更强大的技术,能够在这些经典方法完全失败时找到潜在的源因素。其应用包括数字图像、文档数据库、经济指标和心理测量。
‘贰’ 5. 过拟合及其避免
Fundamental concepts:generalization(泛化、普遍化、一般化);fitting (拟合)and overfitting(过拟合);complexity control(复杂度控制)。
Exemplary techniques:cross-validation(交叉验证);attribute selection(特征/属性选择);tree pruning(树剪枝);regularization(正则化)。
Generalization(泛化):指一个模型对于学习集以外的新数据的适应性。
在讨论怎么应对过拟合之前,我们先要知道如何识别过拟合。
Fitting Graph: 拟合图形以一个复杂度函数的形式来展示模型的精确程度。
为了检测过拟合,需要引入一个数据科学的概念, holdout data (留出法,留出数据)。
直接点说就是把学习集分一些数据出来当做模型验证数据,当留出法数据在这册咐帆个场景下被使用时,通常被叫做“测试集”(相比学习集而言)。
模型结果函数越复杂,对学习集的拟合度则越高,但对测试集的贴合度会降低,这是一个反向关系,使用这个反向关系来寻找合适的模型函数的复杂度,以避免过拟合状况的发生。(可参考下图拟合图进行查看)
关于前面的churn案例的一个拟合图,如下图5-2所示:
关于churn的拟合图中错误率的判断,基于churn数据表中对target variable的yes和no的定义,即已知对于新加入的要素,默认不会churn也就是不会换运营商,新元素no churn=right,churn=wrong。基于全量样本下,会有一个每年固定的churn几率,这个固定的churn几率即为y轴上b的值,这个几率就叫做基础概率即base rate,在朴素贝叶斯的概率预测方法中,base rate被使用的较为广泛,后续章节会有相关介绍。
决策树的每一个叶子节点是否要拆分的依简猛据是查看当前该叶子节点中的所有元素是否有同样的target variable值,若都相同,则不用再拆分,当做叶子节点处理。
决策树的复杂程度取决于它的节点数量。
决策树拟合曲线左侧,树小且预测精度低,右侧精度高。可以看出在sweet spot右侧,学习集适配度随着节点增多而增加,但是测试集准确度随着节点增多而降低,复杂度多过sweet spot时就发生了过拟合。
不幸的是,目前还没有一个理论型的方法可以预测何时能达到这个sweet spot,只能凭借经验主义来做判断。
增加函数复杂度可能有以下情形:
1. 增加变量的数量(即公式中 的数量,i=1,2,3...);
2. 增加非线性变量,如新增变量 ;
3. 增加非线性变量,如新增变量 ;
此时目标函数变为:
这个就是一个典型的非直线函数,并且典型来说,更多参数也就是更高维度,一般带来更高的预测准确度。
这里还通过之前的鸢尾花的花瓣和花萼宽度的例子来解释线性函数的过拟合。
下面我们将原先的2个变量引申为3个变量,即原先的花瓣宽度(petal width)、花萼宽度(sepal width)加上花萼宽度的平方,得到下图所示的曲线:
加入平州雹方变量后,分割线均变为了抛物线(parabola)。
这个小节会讨论过拟合如何产生和为何产生,这节不重要,跳过也不影响学习。
模型越复杂,就越有可能产生有害的假的关联关系(feature和target variable之间的关联关系),这种错误关联关系的泛化影响了对学习集以外的新元素的target variable的预测,从而降低了模型预测的准确度
可以发现通过上述学习集,得出:
1. x=p时,75%可能性class是c1,25%可能性class是c2,所以可以通过x进行class预测;
2. 当已经计入x变量后再添加y变量,则y对class的预测不起作用,即x=p时y=r则class都是c1,x=p时y=s则class都是c2,在决策树中不具备新的预测意义;
3. 但是可以得出结论x=p并且y=r时,class必为c1,这个节点的增加可以获得新的information gain,但是却把整体模型的预测错误率从25%提高到30%,也就是增加的information gain同时增加了错误率。
从这个案例总结出:
1. 这种过拟合现象不仅出现在决策树模型中,只是决策树模型中更明显能看出来;
2. 这种现象并不是表5-1的数据特殊性导致的,所有数据集都会出现类似的问题;
3. 没有一个通用的理论方案来提前知道这个模型是否已经过拟合了,所以一定要留下一个holdout set(即测试集)来对过拟合现象的发生进行判断。
交叉验证的步骤如下:
1. 将数据集分成k个部分并且分别进行标签标记,这些部分命名为folds(子类),通常情况下k会取5或者10;
2. 随后对分组好的数据进行k次模型学习和模型验证的迭代,在每一次迭代中,一个不同的子类被选做测试集,此时其他几个子类共同组成学习集,所以每一个迭代都会有(k-1)/k的数据当做学习集,有1/k的数据当做测试集。
交叉验证的过程直观展现如下图:
3. 通过k次迭代后,可以得到k个不同的模型结果,可通过这k个结果计算出平均值和标准差。
(得到平均值就是数字化的预测结果,而标准差则是浮动范围)
通过这个数据实践可以发现如下几个点:
1. 各子类平均准确度为68.6%,而之前章节全量数据当学习集时的预测准确度为73%,可见全量数据做学习集时出现了显着的过拟合现象;
2. 不同子类的预测准确度有差异,所以取平均值是一个好主意,同时也可以使用这些数据产生的方差;
3. 对比逻辑回归和决策树的结果,发现两种模型在分组3精确度都不高,在分组10精确度都较高,但两种模式是不同的,并且逻辑回归展示了较低的整体准确度64.1%和较高的标准差1.3,所以在这个数据集上面,决策树更适用,因为准确度高并且预测结果更稳定(方差较小),但这个不是绝对的,换到其他数据集,结果就完全不一样了。
模型的 泛化表现 和学习集 数据数量 的关系被叫做 学习曲线(learning curve) 。
学习曲线(learning curve)展示的是基于测试集的泛化表现,针对训练集的数据数量来统计,和训练集数据量相对应(x轴)。
拟合图(fitting graph)展示泛化表现同时也展示模型在学习集的表现,但是和模型的复杂度相对应(x轴),拟合图中训练集数据量通常不会变化。
先从决策树模型开始,逐渐得到一个可适用于多种模型的广泛的避免过拟合的机制(mechanism)。
决策树中一般使用的避免过拟合方法有以下两种:
1. 在决策树过于庞大前停止扩张;
2. 持续扩张决策树,然后回删“prune”决策树,减小它的规模。
关于控制决策树的复杂度的方法包括:
1. 限制每个叶子节点的最小元素个数。那么这个最小个数怎么定呢?
统计学家使用了一种假设测试“hypothesis test”。在停止扩张决策树时,先判定增加节点获得的information gain是否是通过运气(chance)获得的,如果不是通过运气获得的,那么就继续扩张决策树。这个判断基于一个显着性(p-value),通过p-value来定义分叉后的差异是否是由运气产生的,通常这个几率使用5%。
2. 对一个大的决策树进行删节点“prune”,表示使用叶子节点来替换其他的叶子节点或分叉节点。
这个方法取决于替换后,模型的准确度是否会降低,这个过程可以持续迭代直到任何一次替换都会降低模型准确度为止。
那么接下来思考下,如果我们使用所有类型的复杂度来制作决策树会怎样?例如,搭一个节点就停止,然后再搭一个2节点的树,再另外搭一个三节点的树,然后得到了一堆不同复杂度的决策树,然后只要有一个方法能证明模型的泛化表现,那么我们就可以选择到泛化表现最好的这个模型。(应该是拿来承上启下的一段)
嵌套留出测试(nested holdout testing) :将原有的学习集进行再次拆分,拆为子学习集(训练集)和子确认集(validation set for clarity),然后通过子学习集来训练模型,然后用子确认集来验证。
嵌套交叉验证(nested cross-validation) :假如我们要对一组数据进行建模,这组数据有一个未知的复杂度变量C,此时首先对交叉验证中的每个场景(即n个fold(组)为训练集,1个fold为测试集)进行一次仅针对训练集数据的交叉验证,得到此时的最优C值,找到这个场景下的最优复杂度情况,然后再使用这个C值来进行真正的全场景全fold的交叉验证。(与一般的交叉验证的区别在于,先只用训练集数据找到最优复杂度参数C,再执行全数据的交叉验证)
来使用决策树方法简单解释下嵌套交叉验证,根据图5-3所示,最优准确率的决策树节点数是122个,那么就先用子训练集和确认集来得到122节点的这个数值,然后再使用122这个节点数,来对全训练集数据进行建模,此处的122个节点数就可以当做复杂度参数C。
若使用嵌套交叉验证对5个fold的数据集进行分析,那么需要进行30次建模,即对每个折叠情况下的训练集进行子训练集和确认集的拆分的时候,将4个原训练集的fold再拆成5份进行参数C的确认,此时每个outerloop的inner loop包含5个模型(共6个),故一共需要30次建模,可参考下图及链接:
序列向前选择(sequential forward selection - SFS):仍然是测试集(拆分为子测试集和确认集)、验证集,当有n多个特征时,先使用一个feature建模,然后加上第二个,选择其中最好的,然后加上第三个在三个feature的模型中选最好的,以此类推,逐个增加,直到增加feature不能让确认集数据预测更准确为止,此时使用的feature就是建立整个数据集模型要使用的feature。(同样也可以先用全量feature建模,然后一个一个减少,方法类似,名称为sequential backward elimination)
正则化(regularization) :将数字化的回归函数结果简单化的过程,模型拟合度越高越好,同时越简单也越好。
逻辑回归的正则化表达式如下:
其中, 是针对这个回归的最佳模型结果, 是惩罚系数, 是惩罚函数。
通过给原有的最佳模型增加惩罚函数来调整最终结果,得到正则化后的数学表达式。
最常用到的惩罚是各系数(各w值)的平方和,通常叫做w的L2范数(L2-norm of w),当系数很大时,w值的平方和会是一个很大的惩罚值(较大的正值或负值w会使模型更贴合学习集数据,同时也会使L2范数变大即惩罚增大,以此来应对过拟合)。
岭回归(ridge regression) :是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法(least-squares linear regression)(将L2-norm惩罚应用在最小二乘法上之后得到的模型结果)。
最小二乘法(ordinary least squares) :最小二乘法是解决曲线拟合问题最常用的方法。其基本思路是:令
其中, 是事先选定的一组线性无关的函数, (k=1、2...m,m<n)是待定系数,拟合准则是使 (y=1,2...n)与 的距离 的平方和最小,称为最小二乘准则。
如果不使用系数平方和,而使用系数的绝对值来当做惩罚函数,此时叫做L1范数(L1-norm),加上惩罚后的模型称为lasso(LASSO回归)或者L1正则化(L1-regularization)。
L1正则化会使很多系数归零,并且可以通过系数归零来进行feature的选择。
支持向量机的正则化表达式如下:
相比于逻辑回归,支持向量机中把最佳函数更换为hinge loss(铰链损失)判定函数的拟合度,铰链损失越低拟合度越好,所以函数前面加了负号。
grid search(网格搜索):在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果。其原理就像是在数组里找最大值。(为什么叫网格搜索?以有两个参数的模型为例,参数a有3种可能,参数b有4种可能,把所有可能性列出来,可以表示成一个3*4的表格,其中每个cell就是一个网格,循环过程就像是在每个网格里遍历、搜索,所以叫grid search),本书中所提到的嵌套交叉验证寻找最优解的过程也被叫做网格搜索。
场景简介:你的投资公司要成立一个投资基金,将资金投入到1000个基金中,每个基金包含了若干随机挑选的股票,5年后,这些基金有些涨了有些跌了,你可以清算掉跌的,留下涨的,然后宣称你的公司投资回报率很好。
更直观比喻,拿1000个硬币扔很多次,肯定会有某个硬币正面朝上的概率高于50%很多,那么找到这个硬币当成最好的硬币,其实是很傻逼的一种决策。这种问题就叫做多重比较问题。
也就是说通过学习集来得到的多个不同复杂度的模型,就像这多个硬币一样,从这里挑选出来的最优模型,在进行预测时,可能也会遇到“最好硬币”相同的问题,即多重比较误区。
总结就是顺了一遍前面讲的知识点,没啥新内容。
‘叁’ 数据挖掘算法有哪些
统计和可视化要想建立一个好的预言模型,你必须了解自己的数据。最基本的方法是计算各种统计变量(平均值、方差等)和察看数据的分布情况。你也可以用数据透视表察看多维数据。数据的种类可分为连续的,有一个用数字表示的值(比如销售量)或离散的,分成一个个的类别(如红、绿、蓝)。离散数据可以进一步分为可排序的,数据间可以比较大小(如,高、中、低)和标称的,不可排序(如邮政编码)。图形和可视化工具在数据准备阶段尤其重要,它能让你快速直观的分析数据,而不是给你枯燥乏味的文本和数字。它不仅让你看到整个森林,还允许你拉近每一棵树来察看细节。在图形模式下人们很容易找到数据中可能存在的模式、关系、异常等,直接看数字则很难。可视化工具的问题是模型可能有很多维或变量,但是我们只能在2维的屏幕或纸上展示它。比如,我们可能要看的是信用风险与年龄、性别、婚姻状况、参加工作时间的关系。因此,可视化工具必须用比较巧妙的方法在两维空间内展示n维空间的数据。虽然目前有了一些这样的工具,但它们都要用户“训练”过他们的眼睛后才能理解图中画的到底是什么东西。对于眼睛有色盲或空间感不强的人,在使用这些工具时可能会遇到困难。聚集(分群)聚集是把整个数据库分成不同的群组。它的目的是要群与群之间差别很明显,而同一个群之间的数据尽量相似。与分类不同(见后面的预测型数据挖掘),在开始聚集之前你不知道要把数据分成几组,也不知道怎么分(依照哪几个变量)。因此在聚集之后要有一个对业务很熟悉的人来解释这样分群的意义。很多情况下一次聚集你得到的分群对你的业务来说可能并不好,这时你需要删除或增加变量以影响分群的方式,经过几次反复之后才能最终得到一个理想的结果。神经元网络和K-均值是比较常用的聚集算法。不要把聚集与分类混淆起来。在分类之前,你已经知道要把数据分成哪几类,每个类的性质是什么,聚集则恰恰相反。关联分析关联分析是寻找数据库中值的相关性。两种常用的技术是关联规则和序列模式。关联规则是寻找在同一个事件中出现的不同项的相关性,比如在一次购买活动中所买不同商品的相关性。序列模式与此类似,他寻找的是事件之间时间上的相关性,如对股票涨跌的分析。关联规则可记为A==>B,A称为前提和左部(LHS),B称为后续或右部(RHS)。如关联规则“买锤子的人也会买钉子”,左部是“买锤子”,右部是“买钉子”。要计算包含某个特定项或几个项的事务在数据库中出现的概率只要在数据库中直接统计即可。某一特定关联(“锤子和钉子”)在数据库中出现的频率称为支持度。比如在总共1000个事务中有15个事务同时包含了“锤子和钉子”,则此关联的支持度为1.5%。非常低的支持度(比如1百万个事务中只有一个)可能意味着此关联不是很重要,或出现了错误数据(如,“男性和怀孕”)。要找到有意义的规则,我们还要考察规则中项及其组合出现的相对频率。当已有A时,B发生的概率是多少?也即概率论中的条件概率。回到我们的例子,也就是问“当一个人已经买了锤子,那他有多大的可能也会买钉子?”这个条件概率在数据挖掘中也称为可信度,计算方法是求百分比:(A与B同时出现的频率)/(A出现的频率)。让我们用一个例子更详细的解释这些概念: 总交易笔数(事务数):1,000包含“锤子”:50包含“钉子”:80包含“钳子”:20包含“锤子”和“钉子”:15包含“钳子”和“钉子”:10包含“锤子”和“钳子”:10包含“锤子”、“钳子”和“钉子”:5 则可以计算出: “锤子和钉子”的支持度=1.5%(15/1,000)“锤子、钉子和钳子”的支持度=0.5%(5/1,000)“锤子==>钉子”的可信度=30%(15/50)“钉子==>锤子”的可信度=19%(15/80)“锤子和钉子==>钳子”的可信度=33%(5/15)“钳子==>锤子和钉子”的可信度=25%(5/20)
‘肆’ 股票的涨幅是怎么计算的
个人热内股票的涨幅计算一般有两种方法:
一是按市盈率倍数乘以每股盈利,如每股盈利1.5元,市盈率是30倍,那合理的股价大概就是45。但市场不是理性的,看大盘情况,经济情况,行业属性,股民情绪等,合理市盈率会有所变化;
二是看庄家建仓成本,一般股价在庄家建仓成本两倍内是比较安全的,庄家建仓是需要一段时间和成本的,股价离庄家建仓成本近,庄家出货打压后也无利可图。最重要的还是学会逃顶,看换手率等,当然也会被庄家欺骗,在大阴线高换手率后继续大涨。所以股市无绝对,这才是难的地方。
最后给大家四点的建议:
1.没有人可以完全准确预测股票的涨跌,除非一个公司有高层提前给你透露某个消息,但这样的基本都在小黑屋里了。
2.股票的涨跌和市场上的各类大神技术无关。学个基本知识就可以,不要研究各类深奥技术,所有看似厉害的技术,其实都是事后话。
3.股票放中长线比短线收益高的多,因为做短线,你浪费精力还赚不到钱。
4.买业绩好有前景的公司,不要买恶意炒作的公司。
‘伍’ 如何利用群体智慧预测股票价格的变化
利用群体智慧预测股票价格的变化,可以通过以下步骤进行:
1.选择适当的平台:选择适当的在线平台,如Google预测市场(GooglePredictionMarket),可以进行股票价格预测。
2.建立预测市场:利用平台建立股票价格预测市场,让参与者可以用虚拟货币进行股票预测。
3.邀请专家参与:邀请股票市场的专家参与预测,并公开他们的预测结果。
4.让参与者投票:让其他参与者参与股票价格预测,他们可以通过投票进行预测市场交易。
5.整合预测结果:整合专家和参与者的预测结果,通过统计学和机器学习模型进行统计,最终得出股票价格预测结果。
6.监测预测结果:对预测结果进行监测,发现错误并进行调整,使其拍拍更加准确。
需要注意的是,群体智慧预测股票价格变化需要掘顷一定的袭散羡专业知识和技能,参与的人员需要具备一定的金融知识和经验。同时,预测结果也存在误差,需要进行适当的风险控制。
‘陆’ 数据挖掘算法与生活中的应用案例
数据挖掘算法与生活中的应用案例
如何分辨出垃圾邮件”、“如何判断一笔交易是否属于欺诈”、“如何判断红酒的品质和档次”、“扫描王是如何做到文字识别的”、“如何判断佚名的着作是否出自某位名家之手”、“如何判断一个细胞是否属于肿瘤细胞”等等,这些问题似乎都很专业,都不太好回答。但是,如果了解一点点数据挖掘的知识,你,或许会有柳暗花明的感觉。
本文,主要想简单介绍下数据挖掘中的算法,以及它包含的类型。然后,通过现实中触手可及的、活生生的案例,去诠释它的真实存在。 一般来说,数据挖掘的算法包含四种类型,即分类、预测、聚类、关联。前两种属于有监督学习,后两种属于无监督学习,属于描述性的模式识别和发现。
有监督学习有监督的学习,即存在目标变量,需要探索特征变量和目标变量之间的关系,在目标变量的监督下学习和优化算法。例如,信用评分模型就是典型的有监督学习,目标变量为“是否违约”。算法的目的在于研究特征变量(人口统计、资产属性等)和目标变量之间的关系。
分类算法分类算法和预测算法的最大区别在于,前者的目标变量是分类离散型(例如,是否逾期、是否肿瘤细胞、是否垃圾邮件等),后者的目标变量是连续型。一般而言,具体的分类算法包括,逻辑回归、决策树、KNN、贝叶斯判别、SVM、随机森林、神经网络等。
预测算法预测类算法,其目标变量一般是连续型变量。常见的算法,包括线性回归、回归树、神经网络、SVM等。
无监督学习无监督学习,即不存在目标变量,基于数据本身,去识别变量之间内在的模式和特征。例如关联分析,通过数据发现项目A和项目B之间的关联性。例如聚类分析,通过距离,将所有样本划分为几个稳定可区分的群体。这些都是在没有目标变量监督下的模式识别和分析。
聚类分析聚类的目的就是实现对样本的细分,使得同组内的样本特征较为相似,不同组的样本特征差异较大。常见的聚类算法包括kmeans、系谱聚类、密度聚类等。
关联分析关联分析的目的在于,找出项目(item)之间内在的联系。常常是指购物篮分析,即消费者常常会同时购买哪些产品(例如游泳裤、防晒霜),从而有助于商家的捆绑销售。
基于数据挖掘的案例和应用上文所提到的四种算法类型(分类、预测、聚类、关联),是比较传统和常见的。还有其他一些比较有趣的算法分类和应用场景,例如协同过滤、异常值分析、社会网络、文本分析等。下面,想针对不同的算法类型,具体的介绍下数据挖掘在日常生活中真实的存在。下面是能想到的、几个比较有趣的、和生活紧密关联的例子。
基于分类模型的案例这里面主要想介绍两个案例,一个是垃圾邮件的分类和判断,另外一个是在生物医药领域的应用,即肿瘤细胞的判断和分辨。
垃圾邮件的判别邮箱系统如何分辨一封Email是否属于垃圾邮件?这应该属于文本挖掘的范畴,通常会采用朴素贝叶斯的方法进行判别。它的主要原理是,根据邮件正文中的单词,是否经常出现在垃圾邮件中,进行判断。例如,如果一份邮件的正文中包含“报销”、“发票”、“促销”等词汇时,该邮件被判定为垃圾邮件的概率将会比较大。
一般来说,判断邮件是否属于垃圾邮件,应该包含以下几个步骤。
第一,把邮件正文拆解成单词组合,假设某篇邮件包含100个单词。
第二,根据贝叶斯条件概率,计算一封已经出现了这100个单词的邮件,属于垃圾邮件的概率和正常邮件的概率。如果结果表明,属于垃圾邮件的概率大于正常邮件的概率。那么该邮件就会被划为垃圾邮件。
医学上的肿瘤判断如何判断细胞是否属于肿瘤细胞呢?肿瘤细胞和普通细胞,有差别。但是,需要非常有经验的医生,通过病理切片才能判断。如果通过机器学习的方式,使得系统自动识别出肿瘤细胞。此时的效率,将会得到飞速的提升。并且,通过主观(医生)+客观(模型)的方式识别肿瘤细胞,结果交叉验证,结论可能更加靠谱。
如何操作?通过分类模型识别。简言之,包含两个步骤。首先,通过一系列指标刻画细胞特征,例如细胞的半径、质地、周长、面积、光滑度、对称性、凹凸性等等,构成细胞特征的数据。其次,在细胞特征宽表的基础上,通过搭建分类模型进行肿瘤细胞的判断。
基于预测模型的案例这里面主要想介绍两个案例。即通过化学特性判断和预测红酒的品质。另外一个是,通过搜索引擎来预测和判断股价的波动和趋势。
红酒品质的判断如何评鉴红酒?有经验的人会说,红酒最重要的是口感。而口感的好坏,受很多因素的影响,例如年份、产地、气候、酿造的工艺等等。但是,统计学家并没有时间去品尝各种各样的红酒,他们觉得通过一些化学属性特征就能够很好地判断红酒的品质了。并且,现在很多酿酒企业其实也都这么干了,通过监测红酒中化学成分的含量,从而控制红酒的品质和口感。
那么,如何判断鉴红酒的品质呢?
第一步,收集很多红酒样本,整理检测他们的化学特性,例如酸性、含糖量、氯化物含量、硫含量、酒精度、PH值、密度等等。
第二步,通过分类回归树模型进行预测和判断红酒的品质和等级。
搜索引擎的搜索量和股价波动一只南美洲热带雨林中的蝴蝶,偶尔扇动了几下翅膀,可以在两周以后,引起美国德克萨斯州的一场龙卷风。你在互联网上的搜索是否会影响公司股价的波动?
很早之前,就已经有文献证明,互联网关键词的搜索量(例如流感)会比疾控中心提前1到2周预测出某地区流感的爆发。
同样,现在也有些学者发现了这样一种现象,即公司在互联网中搜索量的变化,会显着影响公司股价的波动和趋势,即所谓的投资者注意力理论。该理论认为,公司在搜索引擎中的搜索量,代表了该股票被投资者关注的程度。因此,当一只股票的搜索频数增加时,说明投资者对该股票的关注度提升,从而使得该股票更容易被个人投资者购买,进一步地导致股票价格上升,带来正向的股票收益。这是已经得到无数论文验证了的。
基于关联分析的案例:沃尔玛的啤酒尿布啤酒尿布是一个非常非常古老陈旧的故事。故事是这样的,沃尔玛发现一个非常有趣的现象,即把尿布与啤酒这两种风马牛不相及的商品摆在一起,能够大幅增加两者的销量。原因在于,美国的妇女通常在家照顾孩子,所以,她们常常会嘱咐丈夫在下班回家的路上为孩子买尿布,而丈夫在买尿布的同时又会顺手购买自己爱喝的啤酒。沃尔玛从数据中发现了这种关联性,因此,将这两种商品并置,从而大大提高了关联销售。
啤酒尿布主要讲的是产品之间的关联性,如果大量的数据表明,消费者购买A商品的同时,也会顺带着购买B产品。那么A和B之间存在关联性。在超市中,常常会看到两个商品的捆绑销售,很有可能就是关联分析的结果。
基于聚类分析的案例:零售客户细分对客户的细分,还是比较常见的。细分的功能,在于能够有效的划分出客户群体,使得群体内部成员具有相似性,但是群体之间存在差异性。其目的在于识别不同的客户群体,然后针对不同的客户群体,精准地进行产品设计和推送,从而节约营销成本,提高营销效率。
例如,针对商业银行中的零售客户进行细分,基于零售客户的特征变量(人口特征、资产特征、负债特征、结算特征),计算客户之间的距离。然后,按照距离的远近,把相似的客户聚集为一类,从而有效的细分客户。将全体客户划分为诸如,理财偏好者、基金偏好者、活期偏好者、国债偏好者、风险均衡者、渠道偏好者等。
基于异常值分析的案例:支付中的交易欺诈侦测采用支付宝支付时,或者刷信用卡支付时,系统会实时判断这笔刷卡行为是否属于盗刷。通过判断刷卡的时间、地点、商户名称、金额、频率等要素进行判断。这里面基本的原理就是寻找异常值。如果您的刷卡被判定为异常,这笔交易可能会被终止。
异常值的判断,应该是基于一个欺诈规则库的。可能包含两类规则,即事件类规则和模型类规则。第一,事件类规则,例如刷卡的时间是否异常(凌晨刷卡)、刷卡的地点是否异常(非经常所在地刷卡)、刷卡的商户是否异常(被列入黑名单的套现商户)、刷卡金额是否异常(是否偏离正常均值的三倍标准差)、刷卡频次是否异常(高频密集刷卡)。第二,模型类规则,则是通过算法判定交易是否属于欺诈。一般通过支付数据、卖家数据、结算数据,构建模型进行分类问题的判断。
基于协同过滤的案例:电商猜你喜欢和推荐引擎电商中的猜你喜欢,应该是大家最为熟悉的。在京东商城或者亚马逊购物,总会有“猜你喜欢”、“根据您的浏览历史记录精心为您推荐”、“购买此商品的顾客同时也购买了商品”、“浏览了该商品的顾客最终购买了商品”,这些都是推荐引擎运算的结果。
这里面,确实很喜欢亚马逊的推荐,通过“购买该商品的人同时购买了**商品”,常常会发现一些质量比较高、较为受认可的书。一般来说,电商的“猜你喜欢”(即推荐引擎)都是在协同过滤算法(Collaborative Filter)的基础上,搭建一套符合自身特点的规则库。即该算法会同时考虑其他顾客的选择和行为,在此基础上搭建产品相似性矩阵和用户相似性矩阵。基于此,找出最相似的顾客或最关联的产品,从而完成产品的推荐。
基于社会网络分析的案例:电信中的种子客户种子客户和社会网络,最早出现在电信领域的研究。即,通过人们的通话记录,就可以勾勒出人们的关系网络。电信领域的网络,一般会分析客户的影响力和客户流失、产品扩散的关系。
基于通话记录,可以构建客户影响力指标体系。采用的指标,大概包括如下,一度人脉、二度人脉、三度人脉、平均通话频次、平均通话量等。基于社会影响力,分析的结果表明,高影响力客户的流失会导致关联客户的流失。其次,在产品的扩散上,选择高影响力客户作为传播的起点,很容易推动新套餐的扩散和渗透。
此外,社会网络在银行(担保网络)、保险(团伙欺诈)、互联网(社交互动)中也都有很多的应用和案例。
基于文本分析的案例这里面主要想介绍两个案例。一个是类似“扫描王”的APP,直接把纸质文档扫描成电子文档。相信很多人都用过,这里准备简单介绍下原理。另外一个是,江湖上总是传言红楼梦的前八十回和后四十回,好像并非都是出自曹雪芹之手,这里面准备从统计的角度聊聊。
字符识别:扫描王APP手机拍照时会自动识别人脸,还有一些APP,例如扫描王,可以扫描书本,然后把扫描的内容自动转化为word。这些属于图像识别和字符识别(Optical Character Recognition)。图像识别比较复杂,字符识别理解起来比较容易些。
查找了一些资料,字符识别的大概原理如下,以字符S为例。
第一,把字符图像缩小到标准像素尺寸,例如12*16。注意,图像是由像素构成,字符图像主要包括黑、白两种像素。
第二,提取字符的特征向量。如何提取字符的特征,采用二维直方图投影。就是把字符(12*16的像素图)往水平方向和垂直方向上投影。水平方向有12个维度,垂直方向有16个维度。这样分别计算水平方向上各个像素行中黑色像素的累计数量、垂直方向各个像素列上的黑色像素的累计数量。从而得到水平方向12个维度的特征向量取值,垂直方向上16个维度的特征向量取值。这样就构成了包含28个维度的字符特征向量。
第三,基于前面的字符特征向量,通过神经网络学习,从而识别字符和有效分类。
文学着作与统计:红楼梦归属这是非常着名的一个争论,悬而未决。对于红楼梦的作者,通常认为前80回合是曹雪芹所着,后四十回合为高鹗所写。其实主要问题,就是想确定,前80回合和后40回合是否在遣词造句方面存在显着差异。
这事让一群统计学家比较兴奋了。有些学者通过统计名词、动词、形容词、副词、虚词出现的频次,以及不同词性之间的相关系做判断。有些学者通过虚词(例如之、其、或、亦、了、的、不、把、别、好),判断前后文风的差异。有些学者通过场景(花卉、树木、饮食、医药与诗词)频次的差异,来做统计判断。总而言之,主要通过一些指标量化,然后比较指标之间是否存在显着差异,借此进行写作风格的判断。
以上是小编为大家分享的关于数据挖掘算法与生活中的应用案例的相关内容,更多信息可以关注环球青藤分享更多干货
‘柒’ 如何预测股市走势
我不是金融专家,不能对具体的金融市场动态进行预测。然而,我可以提供一些建议,帮助你分析银行股大涨的原因以及未来A股走势的可能性。
银行股大涨的原因可能包括以下几点:
1. 经济复苏:经济复苏可能导致银行贷款业务增加,从而推动银行股上涨。如果经济持续增长,银行股可能会保持强势。
2. 政策支持:政府可能采取刺激经济的政策措施,如降低利率、扩大基础设施投资等。这些政策可能对银行股产生积极影响。
3. 企业盈利改善:企业盈利的改善可能会推动银行贷款质量的提高。这可能使银行股受到投资者的青睐。
4. 股市情绪:市场情绪可能对银行股产生影响。如果投资者对股市整体信心增强,银行股可能会受到追捧。
5. 风险偏好:风险偏好的变化可能影响银行股的表现。如果投资者更倾向于投资风险较低的股票,银行股可能会受到欢迎。
要预测未来A股走势,需要关注以下几个关键因素:码袜
1. 经济增长:关注全球和国内经济增长的趋势,以及可能对A股市场产生影响的政策措施。
2. 货币政策:了解央行的货币政策,如利率调整、信迟运激贷扩张等,以悄凯评估对A股市场的影响。
3. 市场情绪:关注投资者对股市的信心和风险偏好变化,这可能对股市的短期走势产生影响。
4. 企业盈利:关注上市公司的盈利状况,这可能影响市场对股票价值的判断。
5. 政策因素:政府在金融市场的政策措施,如监管改革、市场准入等,可能对A股市场产生影响。
请注意,以上分析仅供参考,不构成任何投资建议。在进行投资决策时,请务必充分了解相关风险,并寻求专业建议。
‘捌’ 机器学习有哪些算法
朴素贝叶斯分类器算法是最受欢迎的学习方法之一,按照相似性分类,用流行的贝叶斯概率定理来建立机器学习模型,特别是用于疾病预测和文档分类。 它是基于贝叶斯概率定理的单词的内容的主观分析的简单分类。
什么时候使用机器学习算法 - 朴素贝叶余手斯分类器?
(1)如果您有一个中等或大的训练数据集。
(2)如果实例具有几个属性。
(3)给定分类参数,描述实例的属性应该是条件独立的。
A.朴素贝叶斯分类器的应用
(1)这些机器学习算法有助于在不确定性下作出决策,并帮助您改善沟通,因为他们提供了决策情况的可视化表示。
(2)决策树机器学习算法帮助数据科学家捕获这样的想法:如果采取了不同的决策,那么情境或模型的操作性质将如何剧烈变化。
(3)决策树算法通过允许数据科学家遍历前向和后向计算路径来帮助做出最佳决策。
C.何时使用决策树机器学习算法
(1)决策树对错误是鲁棒的,并且如果训练数据包含错误,则决策树算法将最适合于解决这样的问题。
(2)决策树最适合于实例由属性值对表示的问题。
(3)如果训练数据具有缺失值,则可以使用决策树,因为它们可以通过查看其他列中的数据来很好地处理丢失的值。
(4)当目标函数具有离散输出值时,决策树是最适合的。
D.决策树的优点
(1)决策树是非常本能的,可以向任何人轻松解释。来自非技术背景的人,也可以解释从决策树绘制的假设,因为他们是不言自明的。
(2)当使用决策树机器学习算法时,数据类型不是约束,因为它们可以处理分类和数值变量。
(3)决策树机器学习算法不需要对数据中的线性进行任何假设,因此可以在参数非线性相关的情况下使用。这些机器学习算法不对分类器结构和空间分布做出任何假设。
(4)这些算法在数据探索中是有用的。决策树隐式执行特征选择,这在预测分析中非常重要。当决策树适合于训练数据集时,在其上分割决策树的顶部的节点被认为是给定数据集内的重要变量,并且默认情况下完成特征选择。
(5)决策树有助于节省数据准备时间,因为它们对缺失值和异常值不敏感。缺少值不会阻止您拆分构建决策树的数据。离群值也不会影响决策树,因为基于分裂范围内的一些样本而不是准确的绝对值发生数据分裂。
E.决策树的缺点
(1)树中决策的数量越多,任何预期结果的准确性越小。
(2)决策树机器学习算法的主要缺点是结果可能基于预期。当实时做出决策时,收益和产生的结果可能与预期或计划不同。有机会,这可能导致不现实的决策树导致错误的决策。任何不合理的期望可能导致决策树分析中的重大错误和缺陷,因为并不总是可能计划从决策可能产生的所有可能性。
(3)决策树不适合连续变量,并导致不稳定性和分类高原。
(4)与其他决策模型相比,决策树很容易使用,但是创建包含几个分支的大决策树是一个复杂和耗时的任务。
(5)决策树机器学习算法一次只考虑一个属性,并且可能不是最适合于决策空间中的实际数据。
(6)具有多个分支的大尺寸决策树是不可理解的,并且造成若干呈现困难。
F.决策树机器学习算法的应用
(1)决策树是流行的机器学习算法之一,它在财务中对期权定价有很大的用处。
(2)遥感是基于决策树的模式识别的应用领域。
(3)银行使用决策树算法按贷款申请人违约付款的概率对其进行分类。
(4)Gerber产品公司,一个流行的婴儿产品公司,使用决策树机器学习算法来决定他们是否应继续使用塑料PVC(聚氯乙烯)在他们的产品。
(5)Rush大学医学中心开发了一个名为Guardian的工具,它使用决策树机器学习算法来识别有风险的患者和疾病趋势。
Python语言中的数据科学库实现决策树机器学习算法是 - SciPy和Sci-Kit学习。
R语言中的数据科学库实现决策树机器学习算法是插入符号。
3.7 随机森林机器学习算法
让我们继续我们在决策树中使用的同样的例子,来解释随机森林机器学习算法如何工作。提利昂是您的餐厅偏好的决策树。然而,提利昂作为一个人并不总是准确地推广你的餐厅偏好。要获得更准确的餐厅推荐,你问一对夫妇的朋友,并决定访问餐厅R,如果大多数人说你会喜欢它。而不是只是问Tyrion,你想问问Jon Snow,Sandor,Bronn和Bran谁投票决定你是否喜欢餐厅R或不。这意味着您已经构建了决策树的合奏分类器 - 也称为森林。
你不想让所有的朋友给你相同的答案 - 所以你提供每个朋友略有不同的数据。你也不确定你的餐厅偏好,是在一个困境。你告诉提利昂你喜欢开顶屋顶餐厅,但也许,只是因为它是在夏天,当你访问的餐厅,你可能已经喜欢它。在寒冷的冬天,你可能不是餐厅的粉丝。因此,所有的朋友不应该利用你喜欢打开的屋顶餐厅的数据点,以提出他们的建议您的餐厅偏好。
通过为您的朋友提供略微不同的餐厅偏好数据,您可以让您的朋友在不同时间向您询问不同的问题。在这种情况下,只是稍微改变你的餐厅偏好,你是注入随机性在模型级别(不同于决策树情况下的数据级别的随机性)。您的朋友群现在形成了您的餐厅偏好的随机森林。
随机森林是一种机器学习算法,它使用装袋方法来创建一堆随机数据子集的决策树。模型在数据集的随机样本上进行多次训练,以从随机森林算法中获得良好的预测性能。在该整体学习方法中,将随机森林中所有决策树的输出结合起来进行最终预测。随机森林算法的最终预测通过轮询每个决策树的结果或者仅仅通过使用在决策树中出现最多次的预测来导出。
例如,在上面的例子 - 如果5个朋友决定你会喜欢餐厅R,但只有2个朋友决定你不会喜欢的餐厅,然后最后的预测是,你会喜欢餐厅R多数总是胜利。
A.为什么使用随机森林机器学习算法?
(1)有很多好的开源,在Python和R中可用的算法的自由实现。
(2)它在缺少数据时保持准确性,并且还能抵抗异常值。
(3)简单的使用作为基本的随机森林算法可以实现只用几行代码。
(4)随机森林机器学习算法帮助数据科学家节省数据准备时间,因为它们不需要任何输入准备,并且能够处理数字,二进制和分类特征,而无需缩放,变换或修改。
(5)隐式特征选择,因为它给出了什么变量在分类中是重要的估计。
B.使用随机森林机器学习算法的优点
(1)与决策树机器学习算法不同,过拟合对随机森林不是一个问题。没有必要修剪随机森林。
(2)这些算法很快,但不是在所有情况下。随机森林算法当在具有100个变量的数据集的800MHz机器上运行时,并且50,000个案例在11分钟内产生100个决策树。
(3)随机森林是用于各种分类和回归任务的最有效和通用的机器学习算法之一,因为它们对噪声更加鲁棒。
(4)很难建立一个坏的随机森林。在随机森林机器学习算法的实现中,容易确定使用哪些参数,因为它们对用于运行算法的参数不敏感。一个人可以轻松地建立一个体面的模型没有太多的调整
(5)随机森林机器学习算法可以并行生长。
(6)此算法在大型数据库上高效运行。
(7)具有较高的分类精度。
C.使用随机森林机器学习算法的缺点
他们可能很容易使用,但从理论上分析它们是很困难的。
随机森林中大量的决策树可以减慢算法进行实时预测。
如果数据由具有不同级别数量的分类变量组成,则算法会偏好具有更多级别的那些属性。 在这种情况下,可变重要性分数似乎不可靠。
当使用RandomForest算法进行回归任务时,它不会超出训练数据中响应值的范围。
D.随机森林机器学习算法的应用
(1)随机森林算法被银行用来预测贷款申请人是否可能是高风险。
(2)它们用于汽车工业中以预测机械部件的故障或故障。
(3)这些算法用于医疗保健行业以预测患者是否可能发展成慢性疾病。
(4)它们还可用于回归任务,如预测社交媒体份额和绩效分数的平均数。
(5)最近,该算法也已经被用于预测语音识别软件中的模式并对图像和文本进行分类。
Python语言中的数据科学库实现随机森林机器学习算法是Sci-Kit学习。
R语言的数据科学库实现随机森林机器学习算法randomForest。