第二讲:环境搭建与工具链

说实话,很多人在机器学习项目上栽跟头,不是算法不行,而是环境没配好。我见过太多人花了两小时调代码,最后发现是Python版本不对。所以这一讲,咱们先把地基打牢。

2.1 Python环境配置

我个人习惯用Anaconda来管理Python环境。为什么?因为它自带了一堆数据科学常用的包,省心。

核心要点:千万别用系统自带的Python,也别一股脑装最新版。我建议用Python 3.8或3.9,这两个版本对大多数库兼容性最好。

安装步骤其实很简单:

  1. 去Anaconda官网下载对应系统的安装包
  2. 一路默认安装,但记得勾选「Add Anaconda to my PATH environment variable」
  3. 打开终端或命令提示符,输入 python --version 验证

注意:我曾经在Windows上踩过坑——安装路径里带了中文或空格,结果某些库死活装不上。所以路径最好全英文。

2.2 Jupyter Notebook:交互式开发的利器

Jupyter Notebook这东西,说白了就是一个能写代码、能记笔记、能画图的「活文档」。我在做加密货币分析时,经常用它来快速验证想法。

安装很简单,在终端里敲一行命令:

pip install jupyter notebook

启动就更简单了:

jupyter notebook

浏览器会自动打开一个页面。你想想看,左边是代码,右边是运行结果,中间还能写注释,是不是比纯脚本舒服多了?

小技巧:我习惯在Notebook里用%matplotlib inline这个魔法命令,这样图表会直接显示在单元格下方,不用弹窗。

2.3 Pandas:数据处理的核心

做加密货币预测,数据清洗是重头戏。Pandas就是干这个的。它处理表格数据的能力,说白了就是Excel的超级加强版。

安装命令:

pip install pandas

我举个例子,假设你从交易所拿到了比特币的历史价格数据:

import pandas as pd

# 读取CSV文件
df = pd.read_csv('btc_price.csv')

# 看看前5行
print(df.head())

# 检查缺失值
print(df.isnull().sum())

嗯,这里要注意:加密货币数据经常有空值,尤其是某些交易所的API偶尔会抽风。我遇到过凌晨三点数据断档的情况,这时候用df.fillna(method='ffill')向前填充就很有用。

2.4 NumPy:科学计算的基础

NumPy是Pandas的底层支撑,也是Scikit-learn的依赖。它处理的是多维数组,说白了就是矩阵运算。

安装:

pip install numpy

为什么需要它?你想想看,加密货币的价格序列本质上就是一个一维数组。计算移动平均、标准差、收益率,这些操作NumPy都能高效完成。

import numpy as np

# 模拟100天的收益率
returns = np.random.randn(100) * 0.02

# 计算累计收益
cumulative = np.cumprod(1 + returns)

print(f"总收益率: {cumulative[-1] - 1:.2%}")

个人经验:我刚开始用NumPy时,总喜欢用Python原生的列表。后来发现处理10万条数据时,NumPy比列表快了将近100倍。所以,能用NumPy就别用列表。

2.5 Matplotlib:数据可视化

光看数字没感觉,画成图才直观。Matplotlib是Python最经典的绘图库。

安装:

pip install matplotlib

画个简单的K线图?其实不用那么复杂,先画个折线图看看趋势:

import matplotlib.pyplot as plt

# 假设df是包含日期和收盘价的DataFrame
plt.figure(figsize=(12, 6))
plt.plot(df['date'], df['close'], color='blue', linewidth=1)
plt.title('Bitcoin Price Trend')
plt.xlabel('Date')
plt.ylabel('Price (USD)')
plt.xticks(rotation=45)
plt.show()

避坑指南:我曾经在画图时发现中文显示成方框,后来加了plt.rcParams['font.sans-serif'] = ['SimHei']才解决。如果你也遇到这个问题,试试这个。

2.6 Scikit-learn:机器学习工具箱

终于到了主角。Scikit-learn是Python最成熟的机器学习库,分类、回归、聚类、降维,它全包了。

安装:

pip install scikit-learn

用它来预测价格?先别急,咱们先跑个简单的线性回归试试手:

from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split

# 准备特征和标签
X = df[['volume', 'high_low_ratio']]  # 特征
y = df['close']  # 目标

# 划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=42
)

# 训练模型
model = LinearRegression()
model.fit(X_train, y_train)

# 预测
predictions = model.predict(X_test)

重要提醒:用历史价格预测未来价格,本质上是在做时间序列预测。这里有个坑——不能随机划分训练集和测试集,必须按时间顺序划分。否则你会「看到未来」,模型效果虚高。我刚开始就犯过这个错,还高兴了半天,后来才发现是数据泄露。

2.7 一张图看懂工具链

下面这张图展示了我们这套工具链的协作关系:

加密货币预测工具链架构 数据获取层 交易所API / CSV文件 / 数据库 数据处理层 Pandas(清洗、转换) + NumPy(计算) 建模与评估层 Scikit-learn(训练、预测、评估) 可视化与展示层 Matplotlib(图表) + Jupyter Notebook(交互)

从这张图可以看得很清楚:数据从交易所进来,经过Pandas和NumPy处理,喂给Scikit-learn建模,最后用Matplotlib展示结果。Jupyter Notebook贯穿始终,既是开发环境也是展示平台。

2.8 一键安装所有依赖

懒得一个个装?我帮你写了个一键安装脚本:

pip install pandas numpy matplotlib scikit-learn jupyter

就这一行命令,搞定所有。如果你用的是Anaconda,大部分包已经预装了,只需要补装Scikit-learn和Jupyter。

验证安装:打开Python交互环境,依次导入这几个库,没有报错就说明环境配好了。

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import sklearn
print("All good!")

好了,环境搭好了,工具链也齐了。下一讲咱们就开始真正接触数据——从交易所API拉取比特币的历史价格。不过在那之前,我建议你先跑一遍上面的代码,确保每个库都能正常导入。嗯,磨刀不误砍柴工嘛。


专注资料整理