Ⅰ 如何通过自学,成为数据挖掘“高手”
基础篇:
1. 读书《Introction to Data Mining》,这本书很浅显易懂,没有复杂高深的公式,很合适入门的人。另外可以用这本书做参考《Data Mining : Concepts and Techniques》。第二本比较厚,也多了一些数据仓库方面的知识。如果对算法比较喜欢,可以再阅读《Introction to Machine Learning》。
2. 实现经典算法。有几个部分:
a. 关联规则挖掘 (Apriori, FPTree, etc.)
b. 分类 (C4.5, KNN, Logistic Regression, SVM, etc.)
c. 聚类 (Kmeans, DBScan, Spectral Clustering, etc.)
d. 降维 (PCA, LDA, etc.)
e. 推荐系统 (基于内容的推荐,协同过滤,如矩阵分解等)
然后在公开数据集上测试,看实现的效果。可以在下面的网站找到大量的公开数据集:http://archive.ics.uci.e/ml/
3. 熟悉几个开源的工具: Weka (用于上手); LibSVM, scikit-learn, Shogun
4. 到 https://www.kaggle.com/ 上参加几个101的比赛,学会如何将一个问题抽象成模型,并从原始数据中构建有效的特征 (Feature Engineering).
到这一步的话基本几个国内的大公司都会给你面试的机会。
进阶篇:
1. 读书,下面几部都是大部头,但学完进步非常大。
a.《Pattern Recognition and Machine Learning》
b.《The Elements of Statistical Learning》
c.《Machine Learning: A Probabilistic Perspective》
第一本比较偏Bayesian;第二本比较偏Frequentist;第三本在两者之间,但我觉得跟第一本差不多,不过加了不少新内容。当然除了这几本大而全的,还有很多介绍不同领域的书,例如《Boosting Foundations and Algorithms》,《Probabilistic Graphical Models Principles and Techniques》;以及理论一些的《Foundations of Machine Learning》,《Optimization for Machine Learning》等等。这些书的课后习题也非常有用,做了才会在自己写Paper的时候推公式。
2. 读论文。包括几个相关会议:KDD,ICML,NIPS,IJCAI,AAAI,WWW,SIGIR,ICDM;以及几个相关的期刊:TKDD,TKDE,JMLR,PAMI等。跟踪新技术跟新的热点问题。当然,如果做相关research,这一步是必须的。例如我们组的风格就是上半年读Paper,暑假找问题,秋天做实验,春节左右写/投论文。
3. 跟踪热点问题。例如最近几年的Recommendation System,Social Network,Behavior Targeting等等,很多公司的业务都会涉及这些方面。以及一些热点技术,例如现在很火的Deep Learning。
4. 学习大规模并行计算的技术,例如MapRece、MPI,GPU Computing。基本每个大公司都会用到这些技术,因为现实的数据量非常大,基本都是在计算集群上实现的。
5. 参加实际的数据挖掘的竞赛,例如KDDCUP,或 https://www.kaggle.com/ 上面的竞赛。这个过程会训练你如何在一个短的时间内解决一个实际的问题,并熟悉整个数据挖掘项目的全过程。
6. 参与一个开源项目,如上面提到的Shogun或scikit-learn还有Apache的Mahout,或为一些流行算法提供更加有效快速的实现,例如实现一个Map/Rece平台下的SVM。这也是锻炼Coding的能力。
到这一步国内的大公司基本是想哪去哪,而且待遇也不差;如果英语好,去US那边的公司难度也不大了。
Ⅱ 机器学习,数据挖掘的书有哪些
说到数据分析,人们往往会下意识地联想到另一个耳熟能详的名词:数据挖掘。那么,到底什么是数据挖掘呢?顾名思义,数据挖掘就是对数据进行处理,并从中提取可用信息的过程。如果你刚好正在寻找这方面的入门书籍,那么韩家炜老师写的《数据挖掘:概念与技术》绝对是一个不错的选择。
· 更难能可贵的是,随书还附带了一批可运行的神经网络实例。试试亲自上手改改代码吧,相信你会有意外的收获。
Ⅲ k-means算法怎么为对称矩阵进行聚类
几种典型的聚类融合算法:
1.基于超图划分的聚类融合算法
(1)Cluster-based Similarity Partitioning Algorithm(GSPA)
(2)Hyper Graph-Partitioning Algorithm(HGPA)
(3)Meta-Clustering Algorithm(MCLA)
2.基于关联矩阵的聚类融合算法
Voting-K-Means算法。
3.基于投票策略的聚类融合算法
w-vote是一种典型的基于加权投票的聚类融合算法。
同时还有基于互信息的聚类融合算法和基于有限混合模型的聚类融合算法。
二、基于关联矩阵的聚类融合算法——Voting-K-Means算法
Voting-K-Means算法是一种基于关联矩阵的聚类融合算法,关联矩阵的每一行和每一列代表一个数据点,关联矩阵的元素表示数据集中数据点对共同出现在同一个簇中的概率。
算法过程:
1.在一个数据集上得到若干个聚类成员;
2.依次扫描这些聚类成员,如果数据点i和j在某个聚类成员中被划分到同一个簇中,那么就在关联矩阵对应的位置计数加1;关联矩阵中的元素值越大,说明该元素对应的两个数据点被划分到同一个簇中的概率越大;
3.得到关联矩阵之后,Voting-K-Means算法依次检查关联矩阵中的每个元素,如果它的值大于算法预先设定的阀值,就把这个元素对应的两个数据点划分到同一个簇中。
Voting-K-Means算法的优缺点:
Voting-K-Means算法不需要设置任何参数,在聚类融合的过程中可以自动地的选择簇的个数 并且可以处理任意形状的簇。因为Voting-K-Means算法在聚类融合过程中是根据两个数据点共同出现在同一个簇中的可能性大小对它们进行划分的,所以只要两个数据点距离足够近,它们就会被划分到一个簇中。
Voting-K-Means算法的缺点是时间复杂度较高,它的时间复杂度是O(n^2);需要较多的聚类成员,如果聚类成员达不到一定规模,那么关联矩阵就不能准确反映出两个数据点出现在同一个簇的概率。
package clustering;import java.io.FileWriter;import weka.clusterers.ClusterEvaluation;import weka.clusterers.SimpleKMeans;import weka.core.DistanceFunction;import weka.core.EuclideanDistance;import weka.core.Instances;import weka.core.converters.ConverterUtils.DataSource;import weka.filters.unsupervised.attribute.Remove;public class Votingkmeans2 extends SimpleKMeans { /** 生成的序列号 */ private static final long serialVersionUID = 1557181390469997876L; /** 划分的簇数 */ private int m_NumClusters; /** 每个划分的簇中的实例的数量 */ public int[] m_ClusterSizes; /** 使用的距离函数,这里是欧几里德距离 */ protected DistanceFunction m_DistanceFunction = new EuclideanDistance(); /** 实例的簇号赋值 */ protected int[] m_Assignments; /** 设定聚类成员融合阀值 */ private final static double THREASOD = 0.5; /** 生成一个聚类器 */ public void buildClusterer(Instances data) throws Exception{ final int numinst = data.numInstances(); // 数据集的大小 double [][]association = new double[numinst][numinst]; // 定义并初始化一个关联矩阵 int numIteration = 40; // 设置生成的聚类成员数 final int k = (int)Math.sqrt(numinst); // 设置K-Means聚类算法参数——簇数 for(int i = 0; i < numIteration; i++) { if(data.classIndex() == -1) data.setClassIndex(data.numAttributes() - 1); // 索引是从0开始 String[] filteroption = new String[2]; filteroption[0] = "-R"; filteroption[1] = String.valueOf(data.classIndex() + 1);// 索引是从1开始 Remove remove = new Remove(); remove.setOptions(filteroption); remove.setInputFormat(data); /* 使用过滤器模式生成新的数据集;新数据集是去掉类标签之后的数据集 */ Instances newdata = weka.filters.Filter.useFilter(data, remove); /* 生成一个K-Means聚类器 */ SimpleKMeans sm = new SimpleKMeans(); sm.setNumClusters(k); sm.setPreserveInstancesOrder(true); // 保持数据集实例的原始顺序 sm.setSeed(i); // 通过设置不同的种子,设置不同的簇初始中心点,从而得到不同的聚类结果 sm.buildClusterer(newdata); int[] assigm = sm.getAssignments(); // 得到数据集各个实例的赋值 /* 建立关联矩阵 */ for(int j = 0; j < numinst; j++) { for(int m = j; m < numinst; m++) { if(assigm[j] == assigm[m]) { association[j][m] = association[j][m] + 1.0 / numIteration ; } } } } System.out.println(); /* 将生成的关联矩阵写入.txt文件(注:生成的txt文本文件在e:/result.txt中) */ FileWriter fw = new FileWriter("e://result.txt"); for(int j = 0; j < numinst; j++) { for(int m = j; m < numinst; m++) { //由于关联矩阵是对称的,为了改进算法的效率,只计算矩阵的上三角 String number = String.format("%8.2f", association[j][m]); fw.write(number); } fw.write("\n"); } /* 处理关联矩阵,分别考虑了两种情况 :1.关联矩阵中某个元素对应的两个数据点已经被划分到了不同的簇中 * 2.两个数据点中有一个或者两个都没有被划分到某个簇中。 */ int[] flag = new int[numinst]; int[] flagk = new int[k]; int[] finallabel = new int[numinst]; for(int m = 0; m < numinst; m++) { for(int n = m; n < numinst; n++) { if(association[m][n] > THREASOD) { if(flag[m] == 0 && flag[n] == 0) { // 两个数据点都没有被划分到某个簇中, int i = 0; // 将他们划分到同一个簇中即可 while (i < k && flagk[i] == 1) i = i + 1; finallabel[m] = i; finallabel[n] = i; flag[m] = 1; flag[n] = 1; flagk[i] = 1; } else if (flag[m] == 0 && flag[n] == 1) { // 两个数据点中有一个没有被划分到某个簇中, finallabel[m] = finallabel[n]; // 将他们划分到同一个簇中即可 flag[m] = 1; } else if (flag[m] == 1 && flag[n] == 0) { finallabel[n] = finallabel[m]; flag[n] = 1; } else if (flag[m] == 1 && flag[n] == 1 && finallabel[m] != finallabel[n]) { // 两个数据点已被划分到了不同的簇中, flagk[finallabel[n]] = 0; // 将它们所在的簇合并 int temp = finallabel[n]; for(int i = 0; i < numinst; i++) { if(finallabel[i] == temp) finallabel[i] = finallabel[m]; } } } } } m_Assignments = new int[numinst]; System.out.println("基于关联矩阵的聚类融合算法——Voting-K-Means算法的最终聚类结果"); for(int i = 0; i < numinst; i++) { m_Assignments[i] = finallabel[i]; System.out.print(finallabel[i] + " "); if((i+1) % 50 == 0) System.out.println(); } for(int i = 0; i < k; i++) { if(flagk[i] == 1) m_NumClusters++; } } /** * return a string describing this clusterer * * @return a description of the clusterer as a string */ public String toString() { return "Voting-KMeans\n"; } public static void main(String []args) { try {String filename="e://weka-data//iris.arff"; Instances data = DataSource.read(filename); Votingkmeans2 vk = new Votingkmeans2(); vk.buildClusterer(data); /* 要生成Voting-K-Means的聚类评估结果包括准确率等需要覆盖重写toString()方法; * 因为没有覆盖重写,所以这里生产的评估结果没有具体内容。 */ ClusterEvaluation eval = new ClusterEvaluation(); eval.setClusterer(vk); eval.evaluateClusterer(new Instances(data)); System.out.println(eval.clusterResultsToString()); } catch (Exception e) { e.printStackTrace(); }}}
分析代码时注意:得到的类成员变量m_Assignments就是最终Voting-K-Means聚类结果;由于是采用了开源机器学习软件Weka中实现的SimpleKMeans聚类算法,初始时要指定簇的个数,这里是数据集大小开根号向下取整;指定的阀值为0.5,即当关联矩阵元素的值大于阀值时,才对该元素对应的两个数据点进行融合,划分到一个簇中,考虑两种情况,代码注释已有,这里不再详述。但聚类融合的实验结果并不理想,莺尾花数据集irsi.arff是数据挖掘实验中最常用的数据集,原数据集共有三个类;但本实验进行四十个聚类成员的融合,其最终聚类结果划分成两个簇;其原因可能有两个:一是算法本身的问题,需要使用其他更加优化的聚类融合算法;二是实现上的问题,主要就在聚类结果的融合上,需要进行一步对照关联矩阵进行逻辑上的分析,找出代码中的问题。关联矩阵文本文件http://download.csdn.net/detail/lhkaikai/7294323
---------------------
本文来自 Turingkk 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/lhkaikai/article/details/25004823?utm_source=
Ⅳ 如何在WEKA中添加自己的算法
1. 编写新算法,所编写的新算法必须符合Weka 的接口标准。在此以从Weka中文站上下载的一个算法(模糊C均值聚类算法:FuzzyCMeans)的添加为例说明其具体过程。
2. 由于FuzzyCMeans是聚类算法,所以直接将FuzzyCMeans.java 源程序考到 weka.clusterers 包下
3. 再修改weka.gui.GenericObjectEditor.props ,在#Lists the Clusterers I want to choose from的weka.clusterers.Clusterer=\下加入:weka.clusterers.FuzzyCMeans
4. 相应的修改weka.gui.GenericPropertiesCreator.props ,此去不用修改,因为包weka.clusterers已经存在,若加入新的包时则必须修改这里,加入新的包
我试了一下,这样加入之后,重新编译,运行后,可以在weka的Explorer界面上的Cluster选项卡中的聚类算法中找到刚刚新添加的FuzzyCMeans算法。
添加过程简单吧!关键问题是要弄清楚Weka的内核以及其接口标准,然后编写出符合此规范的新算法。
Ⅳ 数据精准营销的七个关键要素
数据精准营销的七个关键要素
说到大数据精准营销,不得不先提个性化的用户画像,我们针对每一类数据实体,进一步分解可落地的数据维度,刻画TA的每一个特征,在聚集起来形成人群画像。
01用户画像
用户画像是根据用户社会属性、生活习惯和消费行为等信息而抽象出的一个标签化的用户模型。具体包含以下几个维度:
用户固定特征:性别,年龄,地域,教育水平,生辰八字,职业,星座
用户兴趣特征:兴趣爱好,使用APP,网站,浏览/收藏/评论内容,品牌偏好,产品偏好
用户社会特征:生活习惯,婚恋,社交/信息渠道偏好,宗教信仰,家庭成分
用户消费特征:收入状况,购买力水平,商品种类,购买渠道喜好,购买频次
用户动态特征:当下时间,需求,正在前往的地方,周边的商户,周围人群,新闻事件如何生成用户精准画像大致分成三步。
1.采集和清理数据:用已知预测未知
首先得掌握繁杂的数据源。包括用户数据、各式活动数据、电子邮件订阅数、线上或线下数据库及客户服务信息等。这个是累积数据库;这里面最基础的就是如何收集网站/APP用户行为数据。比如当你登陆某网站,其Cookie就一直驻留在浏览器中,当用户触及的动作,点击的位置,按钮,点赞,评论,粉丝,还有访问的路径,可以识别并记录他/她的所有浏览行为,然后持续分析浏览过的关键词和页面,分析出他的短期需求和长期兴趣。还可以通过分析朋友圈,获得非常清晰获得对方的工作,爱好,教育等方面,这比个人填写的表单,还要更全面和真实。
我们用已知的数据寻找线索,不断挖掘素材,不但可以巩固老会员,也可以分析出未知的顾客与需求,进一步开发市场。
2.用户分群:分门别类贴标签
描述分析是最基本的分析统计方法,描述统计分为两大部分:数据描述和指标统计。数据描述:用来对数据进行基本情况的刻画,包括数据总数,范围,数据来源。指标统计:把分布,对比,预测指标进行建模。这里常常是Data mining的一些数学模型,像响应率分析模型,客户倾向性模型,这类分群使用Lift图,用打分的方法告诉你哪一类客户有较高的接触和转化的价值。
在分析阶段,数据会转换为影响指数,进而可以做"一对一"的精准营销。举个例子,一个80后客户喜欢在生鲜网站上早上10点下单买菜,晚上6点回家做饭,周末喜欢去附近吃日本料理,经过搜集与转换,就会产生一些标签,包括"80后""生鲜""做饭""日本料理"等等,贴在消费者身上。
3.制定策略:优化再调整
有了用户画像之后,便能清楚了解需求,在实际操作上,能深度经营顾客关系,甚至找到扩散口碑的机会。例如上面例子中,若有生鲜的打折券,日本餐馆最新推荐,营销人员就会把适合产品的相关信息,精准推送这个消费者的手机中;针对不同产品发送推荐信息,同时也不断通过满意度调查,跟踪码确认等方式,掌握顾客各方面的行为与偏好。
除了顾客分群之外,营销人员也在不同时间阶段观察成长率和成功率,前后期对照,确认整体经营策略与方向是否正确;若效果不佳,又该用什么策略应对。反复试错并调整模型,做到循环优化。
这个阶段的目的是提炼价值,再根据客户需求精准营销,最后追踪客户反馈的信息,完成闭环优化。
我们从数据整合导入开始,聚合数据,在进行数据的分析挖掘。数据分析和挖掘还是有一些区别。数据分析重点是观察数据,单纯的统计,看KPI的升降原因。而数据挖掘从细微和模型角度去研究数据,从学习集、训练集发现知识规则,除了一些比较商业化的软件SAS,WEKA功能强大的数据分析挖掘软件,这边还是更推荐使用R,Python,因为SAS,SPSS本身比较昂贵,也很难做页面和服务级别的API,而Python和R有丰富的库,可以类似WEKA的模块,无缝交互其他API和程序,这里还需要熟悉数据库,Hadoop等。
02数据细分受众
“颠覆营销”书中提到一个例子,可以引述一下,大家思考一个问题:如果你打算搜集200份有效问卷,依照以往的经验,你需要发多少份问卷,才能达到这个目标?预计用多少预算和时间来执行?
以往的方法是这样的:评估网络问卷大约是5%的回收率,想要保证收到200份的问卷,就必须有20倍的发送量,也就是发出4000份问卷,一个月内如果可以回收,就是不错的表现。
但现在不一样了,在执行大数据分析的3小时内,就可以轻松完成以下的目标:
精准挑选出1%的VIP顾客
发送390份问卷,全部回收
问卷寄出3小时内回收35%的问卷
5天内就回收了超过目标数86%的问卷数
所需时间和预算都在以往的10%以下
这是怎么做到在问卷发送后的3个小时就回收35%?那是因为数据做到了发送时间的"一对一定制化",利用数据得出,A先生最可能在什么时间打开邮件就在那个时间点发送问卷。
举例来说,有的人在上班路上会打开邮件,但如果是开车族,并没有时间填写答案,而搭乘公共交通工具的人,上班路上的时间会玩手机,填写答案的概率就高,这些都是数据细分受众的好处。
03预 测
“预测”能够让你专注于一小群客户,而这群客户却能代表特定产品的大多数潜在买家。
当我们采集和分析用户画像时,可以实现精准营销。这是最直接和最有价值的应用,广告主可以通过用户标签来发布广告给所要触达的用户,这里面又可以通过上图提到的搜索广告,展示社交广告,移动广告等多渠道的营销策略,营销分析,营销优化以及后端CRM/供应链系统打通的一站式营销优化,全面提升ROI。
我们再说一说营销时代的变迁,传统的企业大多还停留在“营销1.0”时代,以产品为中心,满足传统的消费者需求,而进入“营销2.0”,以社会价值与品牌为使命,也不能完全精准对接个性化需求。进入营销3.0的数据时代,我们要对每个消费者进行个性化匹配,一对一营销,甚至精确算清楚成交转化率,提高投资回报比。
大数据下的营销颠覆经典的营销4P理论,Proct,Price,Place,Promotion,取而代之的是新的4P,People,Performance,Process,Prediction。在大数据时代,线下地理的竞争边界早就不存在,比的是早一步的先知能力,利用大数据,从顾客真实交易数据中,预测下一次的购买时间。 营销3.0时代关键词就是“预测”。
预测营销能够让你专注于一小群客户,而这群客户却能代表特定产品的大多数潜在买家。以上图为例,你可以将营销活动的目标受众锁定为20万潜在客户或现有客户,其中包括特定产品的大多数买家(4万人)。你还可以拨出部分预算用于吸引更小的客户群(比如20% 的客户),而不是整个客户群,进而优化你的支出。
过去我们看数据可能是被动的方式,但预测营销强调是决策价值,比如购买时间,你该看的不是她最后的购买日期,而是下次购买的时间,看未来的存活概率,最后生成客户终身价值(CLV)。预测营销催生了一种新的数据驱动营销方式,就是以客户为中心,核心在于帮助公司完成从以产品或渠道为中心到以客户为中心的转变。
04精准推荐
大数据最大的价值不是事后分析,而是预测和推荐,我就拿电商举例,"精准推荐"成为大数据改变零售业的核心功能。譬如服装网站Stitch fix例子,在个性化推荐机制方面,大多数服装订购网站采用的都是用户提交身形、风格数据+编辑人工推荐的模式,Stitch Fix不一样的地方在于它还结合了机器算法推荐。这些顾客提供的身材比例,主观数据,加上销售记录的交叉核对,挖掘每个人专属的服装推荐模型。 这种一对一营销是最好的服务。
数据整合改变了企业的营销方式,现在经验已经不是累积在人的身上,而是完全依赖消费者的行为数据去做推荐。未来,销售人员不再只是销售人员,而能以专业的数据预测,搭配人性的亲切互动推荐商品,升级成为顾问型销售。
05技术工具
关于预测营销的技术能力,有几种选择方案:
1、使用预测分析工作平台,然后以某种方法将模型输入活动管理工具;
2、以分析为动力的预测性活动外包给市场服务提供商;
3、评估并购买一个预测营销的解决方案,比如预测性营销云和多渠道的活动管理工具。
但无论哪条路,都要确定三项基本能力:
1)连接不同来源的客户数据,包括线上,线下,为预测分析准备好数据 ;
2)分析客户数据,使用系统和定制预测模型,做高级分析 ;
3)在正确时间,正确客户,正确的场景出发正确行为,可能做交叉销售,跨不同营销系统。
06预测模型
预测客户购买可能性的行业标准是RFM模型(最近一次消费R,消费频率F,消费金额M),但模型应用有限,本质是一个试探性方案,没有统计和预测依据。“过去的成绩不能保证未来的表现”,RFM只关注过去,不去将客户当前行为和其他客户当前行为做对比。这样就无法在购买产品之前识别高价值客户。
我们聚焦的预测模型,就是为了在最短时间内对客户价值产生最大影响。这里列举一些其他模型参考:
参与倾向模型,预测客户参与一个品牌的可能性,参与定义可以多元,比如参加一个活动,打开电子邮件,点击,访问某页面。可以通过模型来确定EDM的发送频率。并对趋势做预测,是增加还是减少活动。
钱包模型,就是为每个客户预测最大可能的支出,定义为单个客户购买产品的最大年度支出。然后看增长模型,如果当前的总目标市场比较小,但未来可能很大,就需要去发现这些市场。
价格优化模型,就是能够去最大限度提升销售,销量或利润的架构,通过价格优化模型为每个客户来定价,这里需要对你想要的产品开发不同的模型,或者开发通用,可预测的客户价格敏感度的模型,确定哪一块报价时对客户有最大的影响。
关键字推荐模型,关键字推荐模型可以基于一个客户网络行为和购买记录来预测对某个内容的喜爱程度,预测客户对什么热点,爆款感兴趣,营销者使用这种预测结果为特定客户决定内容营销主题。
预测聚集模型,预测聚集模型就是预测客户会归为哪一类。
07AI在营销领域的应用
去年人工智能特别火,特别是深度学习在机器视觉,语言识别,游戏AI上的突飞猛进,以至于人们开始恐慌人工智能是不是已经可以接管人类工作,我个人是对新技术有着强烈的兴趣,也非常看好新科技,数据与现实的关联。
我以前在国外零售店买单的时候经常被询问“你有没有购物卡”,当我说没有收银员会赶紧劝我免费开通,有打折优惠,只需要填个手机号和邮箱,后面就可以针对我的购买记录做营销活动,而当我下次进来,他们就让我报出电话号码做消费者识别,当时我想如果做到人脸识别,岂不是更方便,刷脸就可以买单。而这个场景在去年也有了实验,蚂蚁金服研发出了一个生物识别机器人,叫蚂可Mark,据说其认脸能力已经超越了人类肉眼的能力。还有VR购物,Amazon推出的无收银员商店Amazon Go,通过手势识别,物联网和后续数据挖掘等技术实现购物体验。
针对营销领域,主要有以下三种预测营销技术:
1、无监督的学习技术
无监督学习技术能识别数据中的隐藏模式,也无须明确预测一种结果。比如在一群客户中发现兴趣小组,也许是滑雪,也许是长跑,一般是放在聚类算法,揭示数据集合中 真实的潜在客户。所谓聚类,就是自动发现重要的客户属性,并据此做分类。
2、 有监督的学习技术
通过案例训练机器,学习并识别数据,得到目标结果,这个一般是给定输入数据情况下预测,比如预测客户生命周期价值,客户与品牌互动的可能性,未来购买的可能性。
3、强化学习技术
这种是利用数据中的潜质模式,精准预测最佳的选择结果,比如对某用户做促销应该提供哪些产品。这个跟监督学习不同,强化学习算法无须仅需输入和输出训练,学习过程通过试错完成。
从技术角度看,推荐模型应用了协同过滤,贝叶斯网络等算法模型。强化学习是被Google Brain团队的负责人Jeff Dean认为是最有前途的AI研究方向之一。最近Google的一个AI团队DeepMind发表了一篇名为《学会强化学习》的论文。
按团队的话来说,叫做“学会学习”的能力,或者叫做能解决类似相关问题的归纳能力。除了强化学习,还在迁移学习。迁移学习就是把一个通用模型迁移到一个小数据上,使它个性化,在新的领域也能产生效果,类似于人的举一反三、触类旁通。
强化学习加上迁移学习,能够把小数据也用起来,我认为是很激动人心的,通过AI来创造AI,数据科学家的部分工作也可以让机器来实现了。