对于机器学习新手来说,最直观的学习方式就是动手跑通一个完整项目。本文将以 “加州房价预测” 为例,带你从代码编写到结果解读,完整体验机器学习的核心流程 —— 从数据准备到模型评估,每个步骤都附详细说明,帮你轻松入门。
一、准备工具:导入必要的 Python 库和基础设置
首先,我们需要导入几个常用的 Python 库,它们就像 “工具箱”,分别负责数据处理、模型训练和结果展示:
# ==================== 1. 导入必要工具库 ====================
# 数值计算工具
import numpy as np
# 表格数据处理工具
import pandas as pd
# 加载加州房价数据集
from sklearn.datasets import fetch_california_housing
# 划分训练/验证/测试集
from sklearn.model_selection import train_test_split
# 特征标准化(统一数据尺度)
from sklearn.preprocessing import StandardScaler
# 线性回归模型(核心预测模型)
from sklearn.linear_model import LinearRegression
# 模型评估指标(均方误差、决定系数)
from sklearn.metrics import mean_squared_error, r2_score
# 画图工具(直观展示结果)
import matplotlib.pyplot as plt
# 解决matplotlib中文显示乱码问题
from matplotlib.font_manager import FontManager
# ==================== 2. 基础设置(确保结果可复现+中文正常显示) ====================
# 固定随机种子:让每次运行代码的结果一致,便于调试和复现
np.random.seed(42)
# 配置中文字体:避免画图时中文标签乱码
fm = FontManager()
# 筛选系统中包含“黑”“宋”“microsoft”的中文字体(覆盖大部分系统)
available_fonts = [f for f in fm.get_font_names() if any(
['hei' in f.lower(), 'song' in f.lower(), 'microsoft' in f.lower()]
)]
if available_fonts:
plt.rcParams["font.family"] = available_fonts[0]
else:
print("未找到可用中文字体,将使用默认英文显示")
库介绍
-
NumPy (np)
NumPy 是 Python 科学计算领域的核心基础库,也是众多高级数据分析和机器学习库(如 Scikit-learn、Pandas)的底层依赖。其名称来源于 “Numerical Python”,专为高效处理大型多维数组(ndarray)和执行数值计算而设计。它的核心优势在于提供了简洁且高性能的接口,能够快速完成数组的创建、索引、切片、重塑以及各类数学运算(如线性代数、傅里叶变换、随机数生成等)。由于其内部运算基于 C 语言实现,相比 Python 原生列表,NumPy 在处理大规模数据时,能显著减少内存占用并提升计算速度,是后续进行数据清洗、特征工程、模型训练等机器学习流程的 “基石”。
-
Pandas
虽然 Pandas 主要用于数据处理和分析,但在机器学习中也非常重要,因为它提供了强大的数据结构(如 DataFrame)来处理表格数据。
-
Scikit-learn (
sklearn)Scikit-learn 是一个基于 Python 的开源机器学习库。它提供了简单有效的数据挖掘和数据分析工具。它构建在 NumPy、SciPy 和 matplotlib 之上,支持多种监督和非监督学习算法。
函数介绍
-
fetch_california_housing()这是
sklearn.datasets模块中的一个函数,用于加载加州房价数据集。该数据集包含了每个地区的人口统计信息以及房价中位数。返回的数据包含特征矩阵和目标向量,适用于回归问题的研究与实践。 -
train_test_split()此函数来自
sklearn.model_selection,用于将数据集划分为训练集和测试集(或验证集)。这对于评估模型性能非常关键,确保模型能够在未见过的数据上表现良好。参数包括输入数据、测试集大小以及随机种子等。 -
StandardScaler()StandardScaler来自sklearn.preprocessing,用于标准化特征,使其具有零均值和单位方差。这是许多机器学习算法的重要预处理步骤,因为这些算法对输入变量的规模敏感。 -
LinearRegression()LinearRegression是sklearn.linear_model中的一个类,实现了普通最小二乘线性回归。它用于拟合线性模型,通过找到最佳参数使预测值与实际观测值之间的误差平方和最小化。 -
mean_squared_error(),r2_score()这两个函数都属于
sklearn.metrics模块,分别用于计算均方误差(MSE)和决定系数(R²)。它们是评估回归模型性能的常用指标。MSE 衡量了模型预测值与真实值之间差异的平方的平均值,R² 则衡量了模型

最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



