大数据学习路线

BIG DATA & AI — 从数据中挖掘价值

5阶
完整学习路线
2道
入门题 + 完整 WP
30+
工具与算法点
4个
比赛 / 练习平台

什么是大数据?(4V 特征)

大数据是指无法在传统时间内用常规工具进行捕捉、管理和处理的海量、高增长率、多样化的信息资产,其核心价值在于通过分析挖掘实现「预测」和「决策优化」。大数据的核心特征 —— 4V:

特征含义例子
Volume · 大量数据规模庞大,常以 PB、EB 甚至 ZB 为单位社交媒体每日产生的图文、视频数据
Velocity · 高速数据生成和流转速度极快,需实时或近实时处理金融交易、实时交通监控数据
Variety · 多样结构化(数据库表)、非结构化(图片音频)、半结构化(XML)并存网页、日志、传感器流
Value · 低价值密度海量数据中有用信息占比低,需技术筛选提炼监控视频中仅有几秒关键画面

实验室大数据方向包含三条主线:数据挖掘类(用户行为预测、广告推荐、传统机器学习)、人工智能类(情感分类、物体识别、人脸识别)、数据分析类(分类、回归、聚类分析)。毕业去向包括中科院、西电、东北大学、天津大学等名校深造,以及新浪、百度、阿里、腾讯、字节跳动等大厂就业。

学习路线总览(五阶段)

01

数学 & 编程

高数 / 线代 / 概率统计 + Python / SQL

02

数据分析

numpy / pandas / matplotlib 数据处理可视化

03

机器学习

scikit-learn 经典算法 + 特征工程

04

大数据技术

Hadoop / Spark / Flink / Hive 分布式体系

05

深度学习 AI

PyTorch 神经网络 / CNN / 大模型

📌 按学期规划:大一:Python + 高数线代 + 数据分析;大二:机器学习 + SQL + 比赛入门;大三:Spark/Flink + 深度学习 + 项目/实习。实验室每周有学长分享会,跟着进度走即可。

阶段一:数学与编程基础

数学三件套(为什么必须学)

课程在数据科学中的作用
高等数学导数/梯度是机器学习优化的基础(梯度下降)、泰勒展开、积分
线性代数向量、矩阵运算是数据表示的核心(数据表 = 矩阵);特征值、矩阵分解用于降维(PCA)
概率论与数理统计贝叶斯、分布、假设检验、最大似然 —— 机器学习算法的理论根基

不用等学完所有数学再动手 —— 边学边用:看到梯度下降再去翻导数,遇到 PCA 再补矩阵知识,效率最高。

编程与数据库

  • Python 基础:先去学习中心的 Python 板块,把语法和常用库过一遍
  • SQL:数据分析必须会。重点:SELECT / WHERE / GROUP BY / JOIN / 聚合函数,推荐用力扣数据库题库 + DataCamp SQL 入门课刷
  • Linux 基础:后面 Spark/Hadoop 都要在 Linux 上跑,先会 cd / ls / vim / 管道 即可

阶段二:数据分析(Python 数据分析三件套)

numpy —— 数值计算

import numpy as np
a = np.array([1, 2, 3, 4])
print(a.mean(), a.std(), a.sum())   # 均值 / 标准差 / 和
b = np.arange(12).reshape(3, 4)     # 3x4 矩阵
print(b.T)                          # 转置

pandas —— 数据处理(最核心)

import pandas as pd
df = pd.read_csv("data.csv")        # 读 CSV
print(df.head(), df.info())         # 预览与概览(含缺失值)
print(df.describe())                # 数值列统计
df = df.dropna()                    # 删缺失行
df["新列"] = df["A"] + df["B"]      # 新增列
df.groupby("类别")["数值"].mean()   # 分组聚合
df.sort_values("数值", ascending=False)  # 排序

matplotlib / seaborn —— 可视化

import matplotlib.pyplot as plt
import seaborn as sns
df["成绩"].hist(bins=20)                    # 直方图
plt.scatter(df["学习时长"], df["成绩"])      # 散点图
sns.heatmap(df.corr(), annot=True)         # 相关性热力图
plt.show()

学完这三件套,找一个真实数据集(如电商订单、天气数据)做一次「读取 → 清洗 → 统计 → 可视化」的完整分析,阶段二就过关了。

阶段三:机器学习基础(scikit-learn)

核心概念

  • 监督学习:数据带标签 —— 分类(垃圾邮件识别)与回归(房价预测)
  • 无监督学习:数据无标签 —— 聚类(用户分群)、降维
  • 训练集 / 测试集:用一部分数据训练模型,另一部分验证效果,防止过拟合
  • 特征工程:数据预处理(缺失值、归一化)、特征选择 —— 决定模型上限

入门必学算法(每个都要能讲出原理并手写调参)

算法类型一句话原理
线性回归回归拟合一条直线 y = wx + b,用梯度下降找最优 w
逻辑回归分类线性输出套 sigmoid 映射到 0~1,做二分类
KNN分类看离它最近的 K 个样本投什么票
决策树 / 随机森林分类/回归按特征层层切分;多棵树投票更稳
朴素贝叶斯分类基于贝叶斯定理,假设特征独立
KMeans聚类迭代把样本分到最近的簇中心

5 行代码跑通一个模型

from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
model = DecisionTreeClassifier(max_depth=5)
model.fit(X_train, y_train)
print("准确率:", model.score(X_test, y_test))

进阶:模型评估(准确率/精确率/召回率/F1、混淆矩阵)、交叉验证、正则化防过拟合。

阶段四:大数据技术栈(分布式处理)

当数据量超过单台电脑能处理的范围(TB 级),就需要分布式技术。实验室大数据方向的核心技术栈:

组件作用类比
Hadoop HDFS分布式文件系统,把大文件切成块存在多台机器把一本厚书拆成多册分给多个书架
MapReduce分布式计算模型:Map(分而治之)+ Reduce(汇总)先各算各的,再合并结果
Spark更快的内存计算引擎(基于 RDD/DataFrame)MapReduce 的「内存版」,快百倍
Flink实时流处理框架边来边算(实时大屏、实时风控)
Hive数据仓库,把 SQL 翻译成 MapReduce/Spark 任务用 SQL 查大数据,不需要写 Java
Kafka消息队列,数据管道快递中转站,削峰填谷

入门路径:先搞懂单机版 Spark(PySpark),用 pandas 类似的 DataFrame API 处理大数据:

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("demo").getOrCreate()
df = spark.read.csv("big.csv", header=True)
df.groupBy("类别").count().show()   # 分布式聚合,API 和 pandas 很像
📌 建议:这个阶段不用急着搭集群 —— 先装 Anaconda + PySpark(单机模式)把 API 学会,理解了分布式思想后再用 Docker 搭 Hadoop 伪分布式集群。

阶段五:深度学习与 AI

  • 神经网络基础:神经元 → 层 → 激活函数(ReLU)→ 反向传播更新权重。用 PyTorch 写一个识别手写数字(MNIST)的模型是经典入门
  • 卷积神经网络 CNN:图像识别的基础(人脸识别、物体检测)
  • 循环神经网络 RNN / Transformer:文本、序列数据(情感分类、机器翻译)
  • 大模型时代:LLM(大语言模型)概念、Prompt 工程、RAG;了解即可,不必一上来就深入
# PyTorch 极简神经网络(示意)
import torch
import torch.nn as nn
model = nn.Sequential(
    nn.Linear(784, 128),   # 输入 784 维(28x28 图片展开)
    nn.ReLU(),
    nn.Linear(128, 10),    # 输出 10 类
)
# 训练:前向传播 → 计算损失 → 反向传播 → 更新参数(训练循环略)

实验室与 Datawhale 开源组织合作,提供完备的人工智能学习路线和学习指导 —— 这是加入实验室的最大福利之一,跟着 Datawhale 的「吃瓜教程」「动手学深度学习」开源课程走即可。

实战项目与比赛(边学边打)

推荐实战项目(从易到难)

  1. 数据分析报告:用 pandas 分析一个公开数据集(如中国人口、豆瓣电影),输出图文报告
  2. 房价/销量预测:经典回归项目,Kaggle House Prices 数据集
  3. 用户分类:电商用户 RFM 分析 + KMeans 聚类
  4. 情感分析:爬取评论 → 训练文本分类模型

适合新手的比赛平台

平台说明
Kaggle全球最大数据科学竞赛平台,有大量带教程的入门赛(Titanic 等)
阿里天池国内知名竞赛平台,新手赛/新人赛多
DataFountain国内数据竞赛平台,部分赛题适合练手
泰迪杯 / 数学建模校内认可的学科竞赛,实验室学长有丰富经验
📌 实验室学长经验:比赛 > 刷题。大一跟着做一次完整比赛(哪怕拿不到名次),学到的比看三个月教程都多。

入门挑战 · 练习题(附 WP 与直达链接)

力扣175. 组合两个表SQL · JOIN★☆☆ 去题目
📖 查看 WP 题解

题目:有两张表 Person(PersonId, FirstName, LastName)和 Address(PersonId, City, State),要求查出每个人的姓名与住址;没有住址的人也要显示(地址列显示 NULL)。

1分析:关键在「没有住址也要显示」→ 用 LEFT JOIN(以 Person 为主表,Address 匹配不上就补 NULL)。
2SQL 解法:
SELECT p.FirstName, p.LastName, a.City, a.State
FROM Person p
LEFT JOIN Address a ON p.PersonId = a.PersonId;
3理解:LEFT JOIN 保留左表全部行,右表无匹配则为 NULL —— 这正是「全员展示」的需求。

💡 数据分析场景下,也可以用 pandas 的 merge 完成同样的事:pd.merge(person, address, on="PersonId", how="left")。SQL 和 pandas 的 JOIN 思想完全一致。

KaggleTitanic 泰坦尼克号生存预测机器学习入门★★☆ 去题目
📖 查看 WP 题解

题目:给定乘客信息(舱位、年龄、性别等),预测每位乘客是否生还(1/0)。这是全世界公认的机器学习入门第一题,数据免费可下载,在线提交评测。

1读数据:下载 train.csv / test.csv,用 pandas 读入:
import pandas as pd
train = pd.read_csv("train.csv")
print(train.head())
print(train.isnull().sum())   # 看哪些列有缺失
2特征工程:选择特征、处理缺失值、把文本转数字:
# 选特征:Pclass(舱位)、Sex(性别)、Age(年龄)、SibSp、Parch、Fare(票价)
features = ["Pclass", "Sex", "Age", "SibSp", "Parch", "Fare"]
X = train[features].copy()
X["Sex"] = X["Sex"].map({"male": 0, "female": 1})   # 文本转 0/1
X["Age"] = X["Age"].fillna(X["Age"].median())        # 缺失值用中位数填充
y = train["Survived"]
3训练模型:随机森林(新手首选,效果稳):
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split

X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)
model = RandomForestClassifier(n_estimators=100, random_state=42)
model.fit(X_train, y_train)
print("验证集准确率:", model.score(X_val, y_val))   # 0.8 左右即及格
4预测并提交:对 test.csv 做同样处理 → 预测 → 生成 submission.csv(PassengerId + Survived)→ 上传 Kaggle 看排名。

💡 提升方向:特征工程(加 Title 称谓特征、家庭人数)、尝试逻辑回归/决策树对比、交叉验证。Kaggle 有大量新手教程(Titanic 教学版),卡住就查。

🚀 进阶建议:完成上面两道题后,去 Kaggle / 阿里天池找一场新手赛完整走一遍流程(分析 → 建模 → 提交)。 大数据方向不需要一上来就啃 Hadoop —— 先把 pandas + 机器学习跑通,再上分布式。

新生常见问题 FAQ

数学不好能学大数据吗?
能。数据方向的数学够用就行:导数(梯度下降)、矩阵(数据表示)、概率(贝叶斯)。建议边用边补 —— 遇到梯度下降再翻微积分,遇到 PCA 再补线代,比死磕教材效率高得多。
Python 还没学完,可以直接学数据分析吗?
可以交叉进行。先去 Python 板块 把基础语法 + 列表字典 + 文件读写过一遍(约一周),就可以开始 numpy / pandas —— 数据分析本身就是最好的 Python 练习场。
一定要先学 Hadoop / Spark 吗?
不是。绝大多数比赛和课程的数据量,单机 pandas 完全够用。建议顺序:数据分析 → 机器学习 → 再上分布式。Hadoop/Spark 是大三进阶内容,过早接触容易劝退。
打比赛没队友 / 没经验怎么办?
实验室就是你的队友来源:每周分享会会拆解比赛思路,学长学姐有泰迪杯、数学建模、Kaggle的完整参赛经验。大一跟着做一次完整比赛(哪怕没名次),学到的东西远超三个月教程。