大数据初探

一、什么是大数据

5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(价值)、Veracity(真实性)。

应用:发现隐藏事物、商品相似性推荐、数据可视化、精准营销、指导决策、图像识别、股票预测、音乐推荐、辅助医疗、票房预测、商品营销、兴趣发现、异常检测、智能消费、木马检测、最优化决策、数据分析、重复性检测、电子商务、家庭生活、游戏娱乐、科学研究、政策制定


二、大数据主要任务

1、Fetching  采集/爬虫/抓取

实战案例

任务:1000个查询,整理各大搜索引擎的结果url。循环取得网址,获取内容,存储。

优化及改进1:单线程下载太慢,单线程->多线程

优化及改进2:创建线程开销大,多线程->线程池

优化及改进3:消费者和生产者模型,Producer负责生产数据,Consumer负责使用数据,统一进程,不同线程。

多线程的优点:便于变量和数据共享。利用线程池方便控制。

多进程的优点:稳定和健壮。本例倾向于多进程。

优化和改进4:引入队列。放入与取出url。

队列爆满问题;开源工具Rabbitmq、zeromq、redis

获取内容问题:Httpclient&URLCollection(Java)、urllib2(Python)、socket(C)

抓取受阻问题:代理ip+cookie+友好访问+Selenium

抽取信息问题:正则+Jsoup/Tika+模板


2、Storage  数据存储/分布式系统/数据库

NoSQL means Not Only SQL

MySQL的缺点:

Schema-based    不好水平拆分,不适合互联网环境

Transactions    分布式环境难以实现

Traditional applications    并发能力差(lock)

Disk-based    速度慢

解决方案:

NoSQL: 键值存储系统(redis:hashmap)+无模式文档存储系统(mongodb)

Redis:效率高,读写快,数据结构丰富,支持Java、C++、Python等语言


3、Mining  数据挖掘/机器学习/推荐系统

包含:数据挖掘、机器学习、自然语言处理、推荐系统、社交网络,搜索引擎

社交网络:Weibo、Twitter、Facebook        应用:社团发现、僵尸粉/水军、情感分析/性格判断

例如:判断一个僵尸粉(特征:转发关注广告多、原创粉丝少)

机器学习:预测:分类&回归        特征抽取->标注数据->模型选择->模型训练->得到模型->模型验证

人工智能:基于规则的专家系统(人)+基于数据的机器学习(数据)      “有多少人工,就有多少智能”

数据挖掘:目的:发现数据的规律和模式        例如:疾病诊断

自然语言处理:分词

推荐系统:”购买此商品的顾客也购买了“        依赖于业务和场景,喜好程度

基于用户推荐:相似权重,归一化        基于物品推荐:用户画像,商品描述

并行还是串行设计

接下来问题:稀疏数据、模型拓展、在线学习、可解释性


4、Processing  Hadoop/Spark/VW/Mathout


三、需要思考的问题

1、是否真的需要大数据?简单的规则+统计->也许能解决问题

2、是否需要很复杂前沿的算法?更多的数据->也许能见效果


四、如何成为一个数据科学家

1、数学基础

高等数学    线性代数    概率论

2、编程语言基础

首选Python,其他C++、Java、R

3、算法和模型(理论)

机器学习     数据挖掘    推荐系统    自然语言处理

4、开源库(工具)

单机:Scikit  Learn

分布式:Spark

5、实践

阿里巴巴大数据竞赛/Kaggle等


本文参考叶邦宇的一个talk总结而来。

你可能感兴趣的:(大数据,数据分析,数据挖掘)