Menu
CoddyTech
新学习旅程

用 Python 学习机器学习

免费的动手实践机器学习课程。编写真正的 scikit-learn 代码,在真实数据集上训练模型,看着你的图表出现在“图表”标签页中,一次只迈一小步。

233 节课231 个挑战965 道测验题

  • 适合初学者
  • sparkles iconAI 辅助编程帮助
  • hint icon动手实践的互动课程
  • volume On icon每节课都有语音讲解
  • quiz icon检验所学的测验
  • certificate icon免费结业证书

在浏览器中训练模型

真实的 scikit-learn 代码和真实的输出。拖动滑块修改一行代码,看看模型学到了什么。

k 值较小时会记住每个训练点,画出锯齿状的边界。k 值越大,边界越平滑。

k =5
main.py
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier


X, y = make_moons(n_samples=200, noise=0.3, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)


k = 5
model = KNeighborsClassifier(n_neighbors=k)
model.fit(X_train, y_train)
print(f"train accuracy: {model.score(X_train, y_train):.2f}")
print(f"test accuracy:  {model.score(X_test, y_test):.2f}")


xx, yy = np.meshgrid(np.linspace(-2, 3, 56), np.linspace(-1.5, 2, 40))
proba = model.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]
proba = proba.reshape(xx.shape)


plt.figure(figsize=(5, 4))
plt.pcolormesh(xx, yy, proba, cmap="coolwarm", alpha=0.35)
plt.scatter(X_train[:, 0], X_train[:, 1], c=y_train,
            cmap="coolwarm", edgecolors="k")
plt.title(f"k-nearest neighbors, k = {k}")
plt.show()
正在加载图表
输出
 

课程大纲

4 个单元233 节课231 个挑战965 道测验题
  1. 开始本单元开始展开收起每个机器学习项目都会用到的工具包:NumPy 数组、matplotlib 图表和 pandas 表格。加载真实数据集,对数据进行汇总,并把发现绘制成图表。

    简介

    4 节课320

    NumPy 数组

    5 节课520

    数组运算

    6 节课625

    数据塑形

    4 节课415

    折线图与散点图

    6 节课625

    数据图表

    5 节课520

    pandas 数据帧

    6 节课625

    筛选与排序

    5 节课520

    分组与清理

    5 节课520

    绘制 DataFrame 图表

    5 节课520

    机器学习数据集

    5 节课520

    最终挑战

    4 节课420
  2. 开始本单元开始展开收起每个模型背后的统计学知识:集中趋势与离散程度、分布、通过模拟理解概率、样本、异常值、相关性、趋势线和组间检验,接着学习特征缩放与编码。每个概念都会用真实数据计算并绘制成图表。

    集中趋势与离散程度

    6 节课625

    分布

    6 节课625

    通过模拟学习概率

    6 节课625

    样本与总体

    5 节课520

    异常值

    5 节课520

    关系

    6 节课525

    趋势线

    6 节课625

    比较不同组

    6 节课625

    特征缩放

    5 节课520

    类别编码

    4 节课415

    探索数据集

    5 节课520

    最终挑战

    4 节课420
  3. 开始本单元开始展开收起使用 scikit-learn 训练真实模型:划分数据、拟合模型、进行预测并衡量效果。学习 k-NN、线性回归和逻辑回归、决策树、随机森林与提升方法,通过交叉验证进行可靠评估,并使用流水线,最后完成一个端到端的企鹅项目。

    你的第一个模型

    5 节课520

    近邻

    5 节课520

    线性回归

    5 节课520

    逻辑回归

    5 节课520

    评估分类器

    6 节课625

    决策树

    5 节课520

    过拟合

    5 节课520

    交叉验证

    4 节课415

    集成学习

    4 节课415

    管道

    5 节课520

    项目:企鹅物种

    5 节课525

    最终挑战

    4 节课420
  4. 开始本单元开始展开收起在没有标签的数据中发现结构:k-means、层次聚类和密度聚类,使用 PCA 查看并压缩多个特征,以及异常检测,最后完成一个数字探索项目。

    发现群组

    5 节课520

    选择 k

    5 节课520

    解读聚类结果

    5 节课520

    层次聚类

    4 节课415

    密度聚类

    4 节课415

    降维

    5 节课520

    PCA 实战

    5 节课520

    异常检测

    5 节课520

    聚类的实际应用

    4 节课415

    项目:数字探索

    5 节课525

    最终挑战

    4 节课420
你将获得
学编程所需的一切

在实践中学习

编写真实代码、查询数据库、搭建网站、掌握 AI 提示词。我们的互动课程涵盖现代开发者需要的每一项技能。

playground.js
代码编辑器
1const greeting = "Hello, Coddy!"
2function sayHi(name) {
3    return greeting + " " + name
4}
5
bottombar Collapse icon
测试 #1test Case Success icon
测试 #2test Case Success icon
测试 #3test Case Failure icon
输入
"Alex"
输出
"Hello, Coddy! Alex"

打造你的连胜

坚持下去,看着自己不断进步!记录每天的编程习惯,用冻结天数保护连胜,每天打卡都能赢取奖励。

12 天连胜

明天再来,保持你的连胜!

fire Filled icon
left icon

January 2026

right icon

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

21

22

23

24

25

26

27

28

29

30

product Double Or Nothing icon

加倍或归零

第 5 天,共 7 天

fire Freeze icon

连胜冻结

2 left

你并不孤单

在全球排行榜上一较高下,邀请好友赢取奖励,为彼此的成就喝彩。和好友一起编程更有趣!

挑战者联赛
挑战者联赛前 7 名晋级
leaderboard First icon1
avatar 1 icon
fire Filled icon
Alex7+ Days
2840
leaderboard Second icon2
avatar 2 icon
fire Filled icon
Jordan7+ Days
2650
leaderboard Third icon3
avatar 3 icon
fire Filled icon
Sam7+ Days
2420
4
avatar 4 icon
Casey
2180
5
avatar placeholder icon
fire Filled icon
Morgan7+ Days
1950
leaderboard Arrow Up icon晋级区leaderboard Arrow Up icon

多种学习方式

阅读、收听、自我测验、问 AI,或者查阅学过的任何内容。每节课都配合你的节奏。

变量入门
音频

变量是一个有名字的容器,用来存储值,方便你在程序后面引用。

在 Python 中,创建变量只需写下名字、一个等号,再写上要存储的值。

值可以随时间变化。给这个名字重新赋值,它就会指向新的值。

1xSarah

获得证书

每完成一门课程都能获得证书。把证书添加到你的 LinkedIn 个人资料和简历中,向雇主展示你的编程能力。

Coddy结业证书
兹证明张三已成功完成
python iconPython 基础
已验证
日期2026年1月
LinkedIn添加到 LinkedIn

为什么在 Coddy 学机器学习

  • 先看到,再读懂。每节课都以一张图表或示意图开头:鸢尾花散点图、决策边界、树状图。然后你写代码,你自己的图表就会出现在旁边的“图表”标签页中。
  • 真正的 Python,真正的库。numpy、pandas、matplotlib、scipy 和 scikit-learn 都在 Coddy 上运行,版本和数据科学家用的一样,所以这里的 model.fit(X_train, y_train) 就是工作中的 model.fit(X_train, y_train)。什么都不用安装,也不用配置 notebook。
  • 四个单元,按实际工作的顺序排列:数据与绘图、机器学习中的统计学、监督学习,最后是无监督学习。共 233 节短课,每节课讲一个新概念,并配一道用到它的练习。
  • 有故事的真实数据集:鸢尾花、葡萄酒化学成分、手写数字、帕尔默企鹅。你会完成两个项目:一个企鹅物种分类器和一个数字探索器,每张图表都有标题和标签,可以直接放进报告里。

关于学习机器学习的常见问题

机器学习是什么?

机器学习就是通过示例而不是规则来教计算机。你给模型看很多行数据,比如一批花的花瓣尺寸和品种,它就会学到一种规律,用在从没见过的数据上。如果数据带有答案,那就是监督学习;如果没有答案,由模型自己找出分组,那就是无监督学习。这门课程两种都教。

学机器学习需要数学很好吗?

不需要。你只需要中小学的算术,以及耐心看懂图表。课程会通过模拟和图片来讲机器学习用到的统计学(平均值、离散程度、分布、相关性、p 值),繁重的数学计算由 scikit-learn 替你完成。如果以后想自己设计新算法,微积分和线性代数会有帮助,但训练、测试和理解模型并不需要它们。

需要先会 Python 吗?

需要掌握基础:变量、if、循环、函数和列表。这就是 Python 课程 的“基础”单元,每天一小时,几周就能学完。之后的一切,包括 import、NumPy、pandas、matplotlib 和 scikit-learn,都会在这里从第一行代码教起。

我会学到哪些 Python 库?

标准的机器学习工具栈:用于数组的 NumPy、用于表格的 pandas、用于图表的 matplotlib、用于统计的 SciPy,以及用于模型的 scikit-learn(k 近邻、线性回归和逻辑回归、决策树、随机森林、梯度提升、k-means、DBSCAN、PCA 等)。它们在 Coddy 上运行的都是最新版本,所以你在这里写的代码,在自己的电脑上也能同样运行。

需要 GPU 或高性能电脑吗?

不需要。你的代码在 Coddy 的服务器上运行,图表会传回你的浏览器,所以一台笔记本、Chromebook 或平板就够了。况且用 scikit-learn 做的经典机器学习在普通处理器上就能流畅运行;GPU 只在训练大型神经网络时才重要,而这门课程不涉及这部分内容。

学完这门课程能做什么?

能根据一张表格回答实际问题的模型:这封邮件是不是垃圾邮件、哪些客户可能会流失、这只企鹅是哪个物种、明天会租出多少辆自行车、顾客可以分成哪几类、哪些服务器读数看起来不正常。你还会学会用测试集、交叉验证、混淆矩阵和 ROC 曲线客观地评估它们,这才是让模型值得信任的关键。

学机器学习需要多长时间?

这门课程分 4 个单元,共 233 节课,按自己的节奏学大约 40 小时,每天半小时的话需要两到三个月。数据科学路径 把它排在 Python 和 SQL 之后。学完之后,进步最快的方法是找一个你感兴趣的公开数据集,按课程中的项目流程再做一遍。

这门机器学习课程免费吗?

免费。课程内容、图表、AI 提示和证书都免费。免费账号每天可以学几节课,Pro 会取消每日限制。

包含这门课程的学习路径

这门课程是一条更长路径中的一步:几门课程按导师会教的顺序排列,每门都有自己的免费证书。

Coddy 编程语言插图

用 Coddy 学习 Machine Learning

开始