你现在可能在做数据分析师,做一些报表,图表,计算一下平均值,偶尔用一下SQL。然后突然有一天你意识到可以对你的数据做更多的事儿,那么恭喜你,你可以开始做机器学习了,但是当你打开搜索引擎,发现有4360万个关于“机器学习”的结果,有的技术太深刻,有的只有大段的数学公式,或者深不可测的人工智能产品,但是这些对一个新手来说都不够友好。因此,我有了写下面几个建议的想法,来帮助梳理一下机器学习的使用思路。
第一步:找到工作中哪一个流程是可以通过机器学习解决的
首先要做的是思考一下自己的工作,理清楚工作的内容,思考哪一个工作任务可以通过机器学习等到更好的结果或者提高工作工作效率。下面是几个机器学习可以解决的问题:
预测:比如哪个客户会流失,哪个客户会归还贷款,谁将会变成最重要的客户,谁在说谎,谁会死去(泰坦尼克号项目),当你有了相关数据的时候,你都可以去预测这些事情,一般情况下,预测的结果不会针对到个人,也不能做到100%正确,但是可以让你在看上去随机的情况中找到可能性更大的情况。
划分:不同的顾客,他们的行为模式也是不同的,通过机器学习,你可以通过找出不同顾客之间的有意义的不同点来将顾客划分为不同的组,这种做法有助于了解你的客户,甚至可以想象出他们的样子。另外,细分也有助于销售,生产,客户管理等部门之间的合作。
分类:当你做完细分操作后,你就可以快速地理解你的新客户们属于哪个类别,这可以通过分类任务来完成,你已经对客户进行了划分,知道了他们的轮廓,拥有了一些关于新客户的新数据。你可以很容易了解新客户
联系:它是关于你的新客户可能会购买什么样的产品,这样你就可以非常聪明地制定销售策略
模型探索:你可能感兴趣于你的公司的哪一个因素对公司发展影响最大,销售、士气、员工忠诚度等,我们称之为模型探索,即发现非明显的因素。例如我们发现在电信业上,抱怨的频率比较高的用户流失的几率更小。
第二步:为你的问题找到最合适的算法
描述机器算法并不是件简单的事儿。尤其是对初学者来说,在找到正确的书或者训练之前可能会走很多弯路。
决策树:将你的数据根据不同来分组。例如将你的目标客户分为谁会买,谁不会买。
朴素贝叶斯:朴素的意思是它不会考虑列属性之间的依赖关系。它的作用和决策树类似
K-means或者期望最小值:找出你的数据中隐藏的分类
逻辑回归:预测一些事情发生的可能性
神经网路:非常适合用来进行模型探索,尤其是那些复杂且不明显的数据
线性回归:由于它特别简单,因此使用的频率也最高。你可以使用它分析数据之间的依赖性,或者做一些预测
关联规则:用来分析有助于销售的产品组合
以上就是出现频率最高的几个算法,除此之外还有例如支持向量机等算法,值得注意的是,没有最好的算法,只有最合适的算法。
第三步:选择合适的工具
专业的数据分析软件如Matlab等,都非常规,好消息是目前已经有很多开源免费的工具,对一个机器学习的新手,我觉得R语言和Python是非常不错的入门语言,个人认为Python不仅简单易学,而且在各个行业的应用也非常广,作为第一个入门语言是非常合适的。
第二步中提到的机器学习算法,目前已经都有开源的库实现,例如Python中的sicikit-learn或者最近大火的tensorflow,性能都有经过优化,推荐新手使用。
最后:如何使用工具
取得数据之后的第一步是直观地去观察数据,刷过kaggle教程的人都知道,每一个kaggle大神写的新手教程都是先做数据的展示的,他们会先将数据用图的方式展现出来,无论是使用Excel,Python或者R,图可以告诉你一组数据最有价值的部分。然后通过观察,排除无效的数据,筛选合适的特征,选取合适的模型,最终整理出来的数据才是真正程序需要处理的。
我认为对于新手来说,复杂的数学公式,几十万的数据,或者是高大上的AlphaGo,只会让人望而却步,无从下手。新手更应该尝试从自己工作或者生活中的小问题入手,去理清思路、分析数据、选取模型、运用机器学习算法,才能更深入的学习下去。