机器学习入门实践:加州房价预测从 0 到 1 全过程

对于机器学习新手来说,最直观的学习方式就是动手跑通一个完整项目。本文将以 “加州房价预测” 为例,带你从代码编写到结果解读,完整体验机器学习的核心流程 —— 从数据准备到模型评估,每个步骤都附详细说明,帮你轻松入门。

一、准备工具:导入必要的 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("未找到可用中文字体,将使用默认英文显示")

库介绍

  1. NumPy (np)

    NumPy 是 Python 科学计算领域的核心基础库,也是众多高级数据分析和机器学习库(如 Scikit-learn、Pandas)的底层依赖。其名称来源于 “Numerical Python”,专为高效处理大型多维数组(ndarray)和执行数值计算而设计。它的核心优势在于提供了简洁且高性能的接口,能够快速完成数组的创建、索引、切片、重塑以及各类数学运算(如线性代数、傅里叶变换、随机数生成等)。由于其内部运算基于 C 语言实现,相比 Python 原生列表,NumPy 在处理大规模数据时,能显著减少内存占用并提升计算速度,是后续进行数据清洗、特征工程、模型训练等机器学习流程的 “基石”。

  2. Pandas

    虽然 Pandas 主要用于数据处理和分析,但在机器学习中也非常重要,因为它提供了强大的数据结构(如 DataFrame)来处理表格数据。

  3. Scikit-learn (sklearn)

    Scikit-learn 是一个基于 Python 的开源机器学习库。它提供了简单有效的数据挖掘和数据分析工具。它构建在 NumPy、SciPy 和 matplotlib 之上,支持多种监督和非监督学习算法。

函数介绍

  1. fetch_california_housing()

    这是 sklearn.datasets 模块中的一个函数,用于加载加州房价数据集。该数据集包含了每个地区的人口统计信息以及房价中位数。返回的数据包含特征矩阵和目标向量,适用于回归问题的研究与实践。

  2. train_test_split()

    此函数来自 sklearn.model_selection,用于将数据集划分为训练集和测试集(或验证集)。这对于评估模型性能非常关键,确保模型能够在未见过的数据上表现良好。参数包括输入数据、测试集大小以及随机种子等。

  3. StandardScaler()

    StandardScaler 来自 sklearn.preprocessing,用于标准化特征,使其具有零均值和单位方差。这是许多机器学习算法的重要预处理步骤,因为这些算法对输入变量的规模敏感。

  4. LinearRegression()

    LinearRegression 是 sklearn.linear_model 中的一个类,实现了普通最小二乘线性回归。它用于拟合线性模型,通过找到最佳参数使预测值与实际观测值之间的误差平方和最小化。

  5. mean_squared_error(), r2_score()

    这两个函数都属于 sklearn.metrics 模块,分别用于计算均方误差(MSE)和决定系数(R²)。它们是评估回归模型性能的常用指标。MSE 衡量了模型预测值与真实值之间差异的平方的平均值,R² 则衡量了模型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值