Ubuntu 上使用 Python 开展机器学习的入门指南
一 环境准备与 Python 安装
sudo apt update && sudo apt upgrade -ysudo apt install -y python3 python3-pip git build-essential htoppython3 --version、pip3 --version二 创建隔离环境
python3 -m venv ~/ml_venv && source ~/ml_venv/bin/activatedeactivatewget https://repo.anaconda.com/archive/Anaconda3-2024.05-Linux-x86_64.sh && bash Anaconda3-2024.05-Linux-x86_64.shconda create -n ml_env python=3.10 -y && conda activate ml_env三 安装常用机器学习库
pip install numpy pandas scikit-learn matplotlib seabornpip install torch torchvision torchaudioconda install pytorch torchvision torchaudio pytorch-cuda=11.8 -c pytorch -c nvidiapip install tensorflowpython - <<'PY' import tensorflow as tf print("TF:", tf.__version__, "GPU:", tf.config.list_physical_devices('GPU')) PYpython - <<'PY' import torch print("PyTorch:", torch.__version__, "CUDA available:", torch.cuda.is_available()) PY四 第一个机器学习示例 线性回归
linear_demo.py):
import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from sklearn.metrics import mean_squared_error, r2_score
# 1) 构造数据
np.random.seed(42)
X = np.random.rand(100, 1) * 10 # 特征:面积等
y = 2.5 + 3.7 * X.ravel() + np.random.randn(100) * 2 # 目标:带噪声的线性关系
# 2) 训练/测试划分
X_tr, X_te, y_tr, y_te = train_test_split(X, y, test_size=0.2, random_state=42)
# 3) 训练
model = LinearRegression()
model.fit(X_tr, y_tr)
# 4) 评估
y_pred = model.predict(X_te)
print(f"Coefficients: {model.coef_}, Intercept: {model.intercept_:.2f}")
print(f"MSE: {mean_squared_error(y_te, y_pred):.2f}, R2: {r2_score(y_te, y_pred):.2f}")
# 5) 可视化
import matplotlib.pyplot as plt
plt.scatter(X_te, y_te, color="blue", label="Actual")
plt.plot(X_te, y_pred, color="red", linewidth=2, label="Predicted")
plt.xlabel("X")
plt.ylabel("y")
plt.legend()
plt.title("Linear Regression Fit")
plt.show()
python3 linear_demo.py五 进阶与部署建议
pip install notebook 或 conda install jupyterjupyter notebook(浏览器自动打开)pip install opencv-pythonpip install flask fastapi uvicorn[standard]uvicorn app:app --reload --host 0.0.0.0 --port 5000