一提到大数据,人们立刻会想到的就是数据科学家,这是一个被财富杂志誉为21世纪最性感的职业。然而,数据科学家做为大数据起步阶段的工作岗位,其重要性必然会随着大数据技术的日臻完善而逐渐降低,公民数据科学必将兴起,大数据分析不会只掌握在少数人手上,它必将民主化,人人都能做大数据分析。
Dell Statistica部门的首席研究官Shawn Rogers在一次采访中谈到。
2016年将会是公民数据科学家年,因为业务用户需要一种民主化的方式来进行大数据数据分析。不是每个公司能负担起数据科学家的成本,这也是公民数据科学家将广泛地参与到大数据生态的一个最大的原因。
什么是公民数据科学家?
什么是公民数据科学家?Gartner 研究分析师Alexander Linden是这样描述的
citizen data scientists as “people on the business side that may have some data skills, possibly from a math or even social science degree — and putting them to work exploring and analyzing data.”
为什么需要公民数据科学家?
领英最新发布的《2016年中国互联网最热职位人才报告》,数据科学家需求强烈,排在前6名。而数据科学家的供给指数最低,仅为0.05,属于高度稀缺。同时,数据科学家成本昂贵。
硅谷入门级的数据科学家的平均年薪已经达到110,000美元,行业年薪已经达到14,000美元~240,000美元之间。
一方面数据科学家价格昂贵、人才供应不足,很难找到。而公民数据科学家广泛存在的企业中,并且具备一定的分析技能,让他们承担大数据分析工作可以有效的解决人才供应以及成本的问题。另一方面,公民数据科学家对于业务和企业实际情况更加熟悉,让他们参与到分析过程来,能实现了业务和技术的结合,更好的发挥大数据的价值。
数据科学技能鸿沟
公民数据科学家常用技能:
SQL
BI工具
数学/业务
数据科学家常用技能:
Hadoop/Spark
SAS/SPSS/R
Java/Python/Scala
NLP
Visual
Statistics
等等
公民数据科学家和数据科学家在专业技能上存在一定的鸿沟,如果按照原有的工作方式,会存在技能不足的问题。
如何跨越鸿沟
随着大数据、云计算的发展,云平台、新技术将协助公民数据科学家跨越技能的鸿沟。
大数据云端服务
安装、运维Hadoop、Spark、数据仓库,需要专业的技术,而且是一件比较繁琐的事情。直接使用云端服务,能很方便的管理,大大地降低了运维难度。
下面以HashData数据仓库为例,说明如何通过Web界面进行大数据云端服务的创建、管理等具体操作。
创建数据仓库
Step1提供集群配置信息
Step2私有网络配置
Step3数据仓库用户配置信息
数据仓库性能监控
数据仓库扩容
自助服务BI
传统BI的适用对象是IT专家,而自助服务BI的适用对象是公民数据科学家。在这个大数据的时代,数据分析工作越来越多,业务关联性也越来强,对业务不熟悉做不好数据分析。为了更好地发挥大数据分析的价值,最好的办法是使用自助服务BI,让业务用户参与分析。
借助自助服务BI工具,公民科学家可以在不需要编程的前提下,进行数据分析工作。但是这种分析对时效性要求一般挺高,他们大多数希望数分钟内得到结果。随着数据量越来越大,建议搭配一个高效的并行执行引擎,比如Teradata、HashData、Impala、SparkSQL等,它可以保证在很短的时间返回结果,如果计算能力不够,还可以弹性扩展更多的计算资源,以保证执行时间。
自助服务BI工具很多,比如Tableau、QlikView、BusinessObjects等。
Machine Learning in SQL
数据科学家常用的机器学习技能包括R、Spark MLlib,但是有一定的学习曲线。如果能使用SQL语言进行机器学习的话,将会大大使用降低使用难度,Apache MADlib 正是这样的一个项目。
Apache MADLib项目自2011年开源以来,经过迅速发展,目前已经能支持Linear Regression、Logistic Regression、Decision Tree、Radomn Forrest、Native Bayes Classification、SVM、Association Rules、K-Means Clustering
Low-rank Matrix Factorisation、PCA、SVD Matrix Factorisation等多种常用的机器学习算法。2016/09/02,Apache MADLib项目刚刚发布了v1.9.1版本,这个版本将支持1-class SVM for novelty detection, class weights for SVM, prediction metrics, sessionization, pivoting, overlapping patterns in the path function等算法和功能。
下面将向大家介绍如何使用Apache MADLib库中的逻辑回归算法来预测心脏病是否复发。
Step 1 建表和收集病人原始数据
DROP TABLE IF EXISTS
patients,patients_logregr,patients_logregr_summary;
CREATE TABLE patients(
id INTEGER NOT NULL, — 病人序号
second_attack INTEGER, — 心脏病是否复发
treatment INTEGER, — 是否治疗
trait_anxiety INTEGER); — 焦虑程度
INSERT INTO patients VALUES (1, 1, 1, 70);
……
其中 treatment,treatment为特征值,second_attack为标签
Step 2 根据原始数据训练模型
SELECT madlib.logregr_train(
‘patients’, — 原始数据表
‘patients_logregr’, — 训练结果表
‘second_attack’, — 标签
‘ARRAY[1, treatment, trait_anxiety]’, — 特征
NULL, — 分组
20, — 最大迭代次数
‘irls’ — 优化器
);
Step 3 预测
SELECT p.id, madlib.logregr_predict(coef, ARRAY[1, treatment, trait_anxiety]), –预测结果(True/False)
p.second_attack –实际值
FROM patients p, patients_logregr m
ORDER BY p.id;
其中系数coef是madlib.logregr_train训练过程中产生的结果,作为madlib.logregr_predict的输入值。
预测结果如下:
+——+——————-+—————–+
| id | logregr_predict | second_attack |
|——+——————-+—————–|
| 1 | True | 1 |
| 2 | True | 1 |
| 3 | False | 1 |
| 4 | True | 1 |
| 5 | False | 1 |
| 6 | True | 1 |
| 7 | True | 1 |
| 8 | True | 1 |
| 9 | True | 1 |
| 10 | True | 1 |
| 11 | True | 0 |
| 12 | False | 0 |
| 13 | False | 0 |
| 14 | False | 0 |
| 15 | False | 0 |
| 16 | False | 0 |
| 17 | True | 0 |
| 18 | False | 0 |
| 19 | False | 0 |
| 20 | True | 0 |
+——+——————-+—————–+
Apache MADlib目前只支持PostgreSQL内核的数据库,比如Greenplum、HashData。其中HashData目前在青云上可使用。
总结
公民数据科学家的兴起,不会取代数据科学家。他们将会组成数据分析团队,共同协作提炼大数据价值。