0Pricing
Machine Learning Academy · 课时

传统编程与机器学习

学习者将对比基于规则的编程与数据驱动的学习,理解为什么机器学习在模式识别任务上优于手工编码的逻辑。

传统编程与机器学习 是 CoddyKit 上的免费 Machine Learning Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Machine Learning Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Machine Learning Academy 课程共包含 4 节课。

什么是传统编程?

在 **传统编程** 中,所有规则都由你手动编写,计算机则会严格遵循这些规则执行。当规则清晰明确时,这种方式非常有效——但面对复杂混乱的问题时,它就变得束手无策了。

规则系统的局限

基于规则的垃圾邮件过滤器本质上只是一长串 if 语句。问题是?垃圾邮件发送者会不断变通,例如用 fr33 替代 free,而你的规则就需要没完没了地更新。

# Traditional rules-based spam filter
def is_spam_traditional(email_text):
    spam_words = ['free', 'winner', 'click here', 'buy now']
    for word in spam_words:
        if word in email_text.lower():
            return True
    return False

print(is_spam_traditional('You are a WINNER! Click here for free stuff'))
# Output: True
print(is_spam_traditional('fr33 stuff for you!'))
# Output: False  -- fails on obfuscated spam

机器学习如何颠覆范式

机器学习颠覆了范式:不再是编写规则,而是向模型提供大量带有正确答案的示例,让它自行学习规则。

# The ML paradigm shift
# Traditional: Input + Rules -> Output
# ML:          Input + Output -> Rules (learned automatically)

# Pseudocode conceptual example
from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer

emails = ['Free money now', 'Meeting at 3pm', 'Win a prize', 'Project update']
labels = [1, 0, 1, 0]  # 1=spam, 0=not spam

vectorizer = CountVectorizer()
X = vectorizer.fit_transform(emails)

model = MultinomialNB()
model.fit(X, labels)  # model learns the rules from data

数据:智能新源泉

机器学习的“燃料”是标注数据——即那些你已知道正确答案的示例。你拥有的优质数据越多,模型就能学到越多东西。

传统编程依然胜出

机器学习并非总是最佳方案。当规则清晰稳定、数据量非常少、或者你需要完全可预测的行为时,请坚持使用传统编程。

模式识别:ML 大放异彩

机器学习在模式识别方面大放异彩——例如识别照片中的猫、标记欺诈行为、识别语音等。这些模式过于微妙,无法通过人工方式明确定义。

学习过程简介

从根本上讲,模型通过最小化误差来学习:它先做出预测,然后评估其错误程度,并据此进行调整——这就像你每次投掷飞镖后修正准头一样。🎯

# Conceptual training loop
import numpy as np

# Simulate a simple learning process
learning_rate = 0.1
weight = 0.0  # start with a random guess

for epoch in range(10):
    prediction = weight * 2.0
    target = 5.0
    error = target - prediction
    weight += learning_rate * error  # adjust based on error
    print(f'Epoch {epoch+1}: weight={weight:.3f}, error={error:.3f}')

核心术语:模型、训练、推理

你会经常用到这三个词:模型 (model) 将输入映射到输出,训练 (training) 通过示例让模型学习,而 推理 (inference) 则是将模型应用于新数据。

泛化:真正的目标

机器学习真正的目标是泛化能力——在从未见过的新数据上表现良好,而不仅仅是死记硬背训练集。这就是为什么我们总是需要使用全新的数据进行测试。

具体对比:直观呈现

预测房价?传统代码依赖人类猜测的公式。而机器学习模型则直接从真实销售数据中学习正确的权重。

# Traditional: hand-coded formula
def price_traditional(bedrooms, bathrooms, sqft):
    return 100000 + bedrooms * 50000 + bathrooms * 30000 + sqft * 150

# ML: coefficients learned from data
from sklearn.linear_model import LinearRegression
import numpy as np

# Training data (bedrooms, bathrooms, sqft)
X_train = np.array([[3, 2, 1500], [4, 3, 2000], [2, 1, 900]])
y_train = np.array([300000, 450000, 180000])

model = LinearRegression()
model.fit(X_train, y_train)  # learns coefficients from data
print('Learned coefficients:', model.coef_)

为什么机器学习正在重塑各行各业

机器学习之所以迎来爆发式增长,是因为三者的结合:海量的数据、廉价且强大的硬件(GPU),以及让每个人都能触及的免费开源工具。

快速检测

通过本节课学习的 Python 概念,检验一下你对机器学习的理解吧。

课程总结

开局不错!传统代码遵循手写规则,机器学习从带标签的数据中学习规则,其真正的目标是泛化而非死记硬背。接下来将学习:机器学习的类型。

常见问题解答

「传统编程与机器学习」课时是免费的吗?

是的 — 「传统编程与机器学习」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Machine Learning Academy 课程的其余内容,请升级到 CoddyKit PRO。 Machine Learning Academy 课程共包含 4 节课。

「传统编程与机器学习」这节课中我会学到什么?

学习者将对比基于规则的编程与数据驱动的学习,理解为什么机器学习在模式识别任务上优于手工编码的逻辑。 你通过在浏览器中直接运行的动手代码来练习 Machine Learning Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Machine Learning Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Machine Learning Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「传统编程与机器学习」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Machine Learning Academy 课中编写并运行代码吗?

能。每节 Machine Learning Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 传统编程与机器学习
  2. 监督学习、无监督学习与强化学习
  3. 机器学习工作流:从数据到预测
  4. 现实世界中的机器学习:用例与局限
← 返回 Machine Learning Academy