数据处理相关工作的经验总结。
1,数据分析的目的 提出方案,解决问题。
所以,面对海量数据,先不要着急去分析。大致了解数据构成,内容,字段就可以了。否则,在数据沙漠里行走,不累死,也拖拉致死。
2,确定目标后,再筛选数据。选择你需要的数据,过滤掉无效数据(包括去除非必要字段,清洗脏数据,如去重,去空),如果是高手,可以分析出噪声数据,去掉对分析是大大有利的。
在进一步分析的过程,深入过滤数据,细粒度的对比数据,增加约束条件,在相同条件下对比,屏蔽不同因素造成的影响。比如,细化到不同地域,来分析各个地域的特色,就可以屏蔽掉不同地域特点的影响(包括人文素养,客观设备环境等因素的)。
3,筛选出合适的数据后,对数据集处理,按不同维度区分。划分不同集合,来进行对比。
4,构建合理的模型。因为模型的提出,包含很大的主观性。分析师本身的认知(知识构成)就不同,而观察数据是一种主观意识行为,从不同的角度看同一事物,就会有不同的结论。因此,模型的构建是主观意识形态对客观数据的反射,会存在很多局限性。要正确面对自己的不足,更多的了解分析事务的业务逻辑,面向的对象,数据的成分。这样可以讲不足,通过约束条件进行补充。数据分析定义了心智模型,在定义模型时,要不被自身的不足所引导,被个人习惯和主观意识限制。要客观的面对数据,勇于面对自身不足,详细的调查事务的各方面知识,构建更好的心智模型。
5,实验验证,想办法进行实验,客观条件限定,因此要设计小而精的对比实验,如果条件允许,越全面越能反应问题。一定要形成对比,否则实验无意义。但不能过多,无意义的进行实验。实验的目的是验证模型。检验自己提出的理论。最终的目的不能偏离。
6,构建目标函数,通过大量数据,设定目标函数,可以进行判断和预测。给出误差,支持度和可信度是非常重要的。这样,能客观阐述模型的正确性。
在数据挖掘过程中,有各种工具,ETL的kettle,数据库软件,weka,schema,和saiku,甚至是excel和R,这些都是非常好的工具,可以方面有效地处理数据。
(1)如果是做过项目的工程师,就会筛选工作。如编辑器用EmEditor,用缓存读入文件,可以显示大数据文件,几十G的。用notepad++打开(20G)容易挂了。
(2)mysql插入,删,改,快,但是查询效率低,尤其是in,基本上G以上的上数据就慢到家了!infiniDB查询效率极快(列式存储),但插入和改很慢。所以我个人使用mysql,维护数据(删改),使用infiniDB做后期呈现。
(3)数据直接呈现,使用saiku最方面,用网络端口访问,通过筛选查到具体的数据部分,关注到局部数据。但具体给客户和需求方提供报表的时候,还是excel做图,样式多,复杂度可以很高,可以从宏观上呈现数据的分布特点(统计量的直观显示,便于理解)。
数据挖掘的理论知识也要有一定储备。如,预测如何用多元线性回归模拟函数,或者构建决策树。还logistic函数模型的应用。
数据本身的特点要利用数据挖掘知识,才能有效的发现。如购物篮分析,关联性数据分析。
bayes的使用度非常高,很多理论以这个为基础。从算法的角度,机器学习更重视算法研究过程,而数据挖掘更加重视理论的应用结果
当然,有时间,也可以看看那代价敏感方面的内容,本人研究阶段一直从事这个方面的研究工作,(两个华人大牛,杨强和charles lin(凌晓峰))这个应用性还不是特别强,但从研究角度,还是有非常的推广空间。
很多时候,数据过多就是灾难,都是特点,就是没有特点。自身的条件有限,就很难做出又快又有效的推荐。
所以,有时候可以把特点发现,交给数据本身。比如协同过滤,直接让具有共同特性的用户,产生共同特点,归为一类,完成推荐。
亚马逊使用的协同过滤,让分析师不必构建不同模型。直接将购买相同用户,归为同一类,作为共同点,将共同点最多的客户够买其它产品推荐给其他用户。
当然,为了运行效率,你可以看到最简单除暴的推荐: 浏览这个宝贝的用户,也在看这些。。。
互联网,快,是第一位的。好,相对次要。网络客户对等待时间的要求是苛刻的。
所以,不要手贱的搜索骨灰盒,否则,未来多少天,你的网页推荐的都是骨灰盒。烦了就请cookie吧!否则,天天看,这个小盒,才是你永远的家