课程承诺:每节课只讲 1 个核心概念、1 个核心思想、1 段可运行代码。学完立刻能用,绝不讲听不懂的废话。
本节课目标:彻底搞懂机器学习和普通编程的本质区别,亲手写出人生第一个机器学习程序,5 分钟内看到 AI 预测结果。
🧠 第一个核心概念:机器学习到底是什么?
先忘掉所有你听过的 "人工智能"、"神经网络"、"大模型" 这些高大上的词。我用一句话给你讲明白:
普通编程:人写规则,计算机执行规则得到结果机器学习:人给数据和结果,计算机自己学会规则
最通俗的例子:区分苹果和橘子
普通程序员的做法:写一万条 if-else 规则:
plaintext
if 颜色是红色 and 形状是圆形 and 直径<10cm: return "苹果" elif 颜色是橙色 and 表皮有坑: return "橘子" ...结果:遇到青苹果就错了,遇到黄苹果也错了,永远写不完所有规则。
机器学习工程师的做法:给计算机 1000 张苹果的照片,标上 "苹果"。给计算机 1000 张橘子的照片,标上 "橘子"计算机自己学会区分苹果和橘子的规则。
核心区别:普通编程是 "人教计算机做事",机器学习是 "计算机自己从数据中学习做事"。
💡 第一个核心思想:机器学习就是 "找规律"
所有机器学习算法,本质上都在做同一件事:从一堆数据中找到隐藏的规律,然后用这个规律去预测未知的事情。
就像你小时候学数学:
- 老师给你例题(数据):1+1=2,2+2=4,3+3=6
- 你找到规律:一个数加它自己等于它的 2 倍
- 你用规律做新题(预测):100+100=200
机器学习也是一模一样的过程:
- 给它历史数据(例题)
- 它找到数据之间的规律(公式 / 模型)
- 用这个规律预测未来(做新题)
本节课我们要解决的问题
预测:房子的面积和房价的关系
- 已知:5 套房子的面积和对应的价格
- 目标:让 AI 学会这个规律,然后预测一套 120 平米的房子值多少钱
💻 第一个可运行代码:5 行代码写一个房价预测 AI
前置要求:你已经安装了 Python 和 scikit-learn 库如果没安装,先在命令行运行这一行:
bash
运行
pip install scikit-learn numpy
完整代码(复制粘贴就能运行)
python
运行
# 1. 导入我们需要的工具 from sklearn.linear_model import LinearRegression # 从scikit-learn库导入线性回归模型类, 该模型实现普通最小二乘法(OLS)线性回归算法,用于建立特征与目标变量间的线性关系 import numpy as np # 导入NumPy科学计算库,提供高效的多维数组操作和数学函数, 是机器学习数据处理的基础依赖 # 2. 准备历史数据(例题) # X:特征矩阵,必须是二维数组结构(n_samples × n_features) # 此处表示5个训练样本,每个样本包含1个特征(房屋面积,单位:平米) # 双括号[[50],...]表示列向量格式,符合scikit-learn要求的输入规范(即使单特征也需保持二维结构) X = np.array([[50], [60], [70], [80], [90]]) # y:目标向量,一维数组结构(n_samples,) # 对应5个样本的真实房价标签(单位:万元) # 注意:此处数据呈现完美的线性关系(y = 2x),实际业务中数据通常包含噪声 y = np.array([100, 120, 140, 160, 180]) # 3. 创建一个AI模型(就像一个刚出生的学生) # 初始化线性回归模型实例,normalize=False表示不进行特征标准化(默认使用原始尺度) # fit_intercept=True(默认)表示模型将计算截距项(即y = wx + b中的b) # 此时模型参数(权重w和截距b)尚未确定,处于未训练状态 model = LinearRegression() # 4. 让AI学习数据(给它讲课,让它找规律) # 执行模型拟合过程:通过最小化残差平方和(RSS)计算最优参数 # 数学原理:求解正规方程 (X^T X)^{-1} X^T y 或使用梯度下降法 # 训练完成后,model.coef_ = [2.0](斜率w),model.intercept_ = 0.0(截距b) model.fit(X, y) # 5. 用学会的规律预测新数据(做新题) area = 120 # 定义待预测的新样本特征值(120平米房屋) # 将单个预测值转换为模型要求的二维输入格式[[120]] # 调用predict方法执行前向传播:y_pred = w * x + b = 2.0 * 120 + 0.0 = 240.0 predicted_price = model.predict([[area]]) # 格式化输出预测结果,保留两位小数 # 注意:实际业务中需进行预测区间计算和置信度评估,此处简化处理 print(f"预测{area}平米的房子价格为:{predicted_price[0]:.2f}万元")运行结果
plaintext
预测120平米的房子价格为:240.00万元🔍 逐行拆解代码,彻底搞懂每一步在做什么
我保证,这 5 行代码包含了所有机器学习程序的基本结构,以后你写的再复杂的 AI,都是这个套路。
导入工具
python
运行
from sklearn.linear_model import LinearRegression我们不用自己从零写算法,scikit-learn 这个库已经帮我们写好了所有经典算法。这里我们导入 "线性回归" 算法,它是最简单、最常用的机器学习算法。
准备数据
python
运行
X = np.array([[50], [60], [70], [80], [90]]) y = np.array([100, 120, 140, 160, 180])X叫 "特征":就是我们用来预测的依据(房子面积)y叫 "标签":就是我们想要预测的结果(房价)- 这就是我们给 AI 的 "例题"
创建模型
python
运行
model = LinearRegression()这一步就像你招了一个什么都不会的新员工,他现在脑子里一片空白。
训练模型(核心步骤)
python
运行
model.fit(X, y)这是最神奇的一步!
fit就是 "学习" 的意思。当你运行这行代码时,AI 会自动分析 X 和 y 之间的关系,找到那个隐藏的规律。在这个例子中,它找到了规律:房价 = 面积 × 2预测
python
运行
predicted_price = model.predict([[area]])AI 学会了规律之后,你给它一个新的面积,它就会用刚才找到的规律算出对应的房价。
✨ 神奇的实验:让 AI 自己发现新规律
现在请你动手修改一下代码,看看会发生什么:
把房价数据改成:
python
运行
y = np.array([150, 170, 190, 210, 230])再运行一次,看看 120 平米的房子预测价格是多少?
你会发现:AI 自动发现了新的规律 "房价 = 面积 × 2 + 50",预测结果变成了 290.00 万元!
你没有修改任何算法,没有写任何新的规则,只是给了它不同的数据,它就自己学会了不同的规律。这就是机器学习的魔力!
📝 本节课总结
- 核心概念:机器学习是让计算机从数据中自己学习规则,而不是人写规则
- 核心思想:所有机器学习都是 "从数据中找规律,用规律做预测"
- 核心代码结构:导入工具 → 准备数据 → 创建模型 → 训练模型 → 预测
- 你已经做到了:写出了一个真正的机器学习程序,它能根据历史数据预测未来!
🎯 课后作业(必须做,否则等于白学)
- 运行上面的代码,确保你能得到正确的结果
- 自己造一组新的数据,比如预测 "学习时间和考试分数" 的关系:
- 学习时间(小时):[1, 2, 3, 4, 5]
- 考试分数(分):[60, 70, 80, 90, 100]
- 预测学习 8 小时能考多少分?
- 思考一个问题:如果数据不是这么完美的直线关系,比如有一个数据点是 "学习 5 小时考了 95 分",AI 会怎么预测?你可以改改代码试试。