使用 Google Colab 在 5 分钟内创建您的第一个机器学习模型

2025-06-10

使用 Google Colab 在 5 分钟内创建您的第一个机器学习模型

机器学习是当今非常热门的话题。从初创公司到大型企业,不同行业、不同规模的公司都在借助机器学习来提升产品和服务。

随着对机器学习工程师的需求不断增长,许多经验丰富的开发人员希望尽快进入该领域。

但当他们购买第一批课程和书籍后,却感到沮丧。他们面对的不是代码和示例,而是一堆数学和统计学知识,这些都是他们毕业后从未接触过的知识。

除了数学之外,另一个令人沮丧的因素是构建机器学习模型所需的软件。几年前,你必须安装专门的软件,购买强大的硬件,有时还要从头开始实现算法。

好消息是,这些都不是开始机器学习的必要条件。当前的机器学习库已经抽象了大部分所需的数学和算法,因此您可以专注于数据流,而不是实现细节。此外,一个 Web 浏览器就 足以 让您开始创建第一个机器学习模型。

在本教程中,我们将使用最著名的 Python 库和 Google Colab 环境创建我们的第一个机器学习模型,因此我们不必浪费任何时间安装和配置新软件。

谷歌Colab

在本教程中,我们将使用 Google Colab 工具创建 Python 笔记本。笔记本是一种特殊的文件,我们可以在其中混合格式化的文本和 Python 代码,从而为我们的机器学习实验创建丰富的文档。此外,我们还可以直接在笔记本上绘制图表。

为了使用 Google Colab 创建 Python 笔记本,您只需要一个 Google 帐户并点击链接https://colab.research.google.com

要快速了解 Google Colab 环境,请观看视频“开始使用 Google Colaboratory”

https://youtu.be/inN8seMm7UI

开始使用 Google Colaboratory

鸢尾花样本分类

在本教程中,我们将构建一个机器学习模型,用于确定鸢尾花的品种。鸢尾花数据集包含关于花朵样本特征(例如花瓣宽度和长度)的表格数据,这些数据将作为模型的输入。输出将是一个整数,表示代表以下三种可能的品种之一:山鸢尾 (Iris Setosa)、变色鸢尾 (Iris Versicolour) 或维吉尼亚鸢尾 (Iris Virginica)。下一节将逐步介绍模型的构建过程。

0. 设置

在本节中,我们导入必要的库,以便您可以构建模型。

将 numpy 导入为 np
将 Pandas 导入为 pd

从 matplotlib 导入 pyplot 作为 plt

导入 seaborn 为 sns

从 sklearn.model_selection 导入 train_test_split
从 sklearn.neighbors 导入 KNeighborsClassifier
从 sklearn.metrics 导入 confusion_matrix

从 joblib 导入转储、加载

1.加载数据

第一步是加载必要的数据。使用 pandas 库中的 read_csv() 命令加载鸢尾花数据集。将数据加载到数据框后,显示数据集顶部。数据集文件 URL 为 https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data

cols = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width', 'class']
df = pd.read_csv('https://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data', names=cols)
df.head()

2. 探索并可视化数据

将数据集加载到内存中的数据框后,下一步是执行探索性数据分析。EDA 的目标是尽可能多地发现有关数据集的信息。describe() 方法是一个很好的起点。describe() 方法会打印数据集的统计数据,例如平均值、标准差等。

df.describe()

探索性数据分析中一个非常重要的工具是数据可视化,它帮助我们深入了解数据集。下图显示了数据集各属性之间的关系。

sns.pairplot(df,hue='class');

鸢尾花数据集属性的联合分布

数据可视化的另一个有趣的案例是使用热图来可视化数据集的相关矩阵。

sns.heatmap(df.corr(), annot=True)

相关矩阵以热图表示

3.预处理数据

通常,从数据库、文件或互联网上收集的数据集尚未准备好供机器学习算法使用。在大多数情况下,数据集在用作机器学习算法的输入之前,需要进行某种准备或预处理。在本例中,我们将类列的字符串值转换为整数,因为我们要使用的算法不处理字符串值。

df['class_encod'] = df['class'].apply(lambda x: 0 if x == 'Iris-setosa' else 1 if x == 'Iris-versicolor' else 2)
df['class_encod'].unique()

4. 选择算法并训练模型

在探索和预处理数据之后,我们可以构建机器学习模型来对鸢尾花样本进行分类。因此,第一步是将数据框拆分为输入属性和目标属性。

y = df[['class_encod']] # 目标属性
X = df.iloc[:, 0:4] # 输入属性
X.head()

如果在上一步中我们通过列分割数据框,那么在这一步中我们将按行分割数据。train_test_split() 方法将把 X 和 y 数据框分割成训练数据和测试数据。

X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,
                                                    随机状态=0,分层=y)

np.形状(y_train)

然后,我们使用数据集 X_train 和 y_train 构建一个 KNN 分类器,并使用 scikit-learn 提供的 KNeighborsClassifier 类。由于机器学习算法已由库实现,我们只需调用 fit() 方法,并将 X_train 和 y_train 数据集作为参数传递即可。

m = KNeighborsClassifier()
m.fit(X_train,np.ravel(y_train))

模型建立后,我们可以使用 predict() 方法计算实例的预测类别。在本例中,我们想要预测 X_test 数据集前 10 行的类别。返回值是一个包含预测类别的数组。

m.预测(X_test.iloc[0:10])

我们可以使用 score() 和 confusion_matrix() 等方法来衡量模型的性能。我们看到模型的准确率为 1.0(100%),这意味着该模型正确预测了测试数据集的所有情况。

m.分数(X_test,y_test)
混淆矩阵(y_test,m.预测(X_test))

5. 保存模型以供日后使用

最后,我们希望保存模型以供后续使用。例如,我们可以将模型嵌入到 Web 服务或移动应用中。因此,我们使用 joblib 包中的 dump() 方法将模型保存到文件中。

转储(m,'iris-classifier.dmp')

ic = load('iris-classifier.dmp')
混淆矩阵(y_test,ic.预测(X_test))

结论

虽然鸢尾花数据集比较简单,但本教程演示的步骤几乎可以复制到任何其他数据集。每个步骤所需的工作量可能有所不同,但流程基本相同,因此您可以从较简单的数据集开始练习,并逐步增加项目的复杂性。

因此,请点击下面的链接在 Google Colab 中打开一个可立即使用的模板,并立即创建您的第一个机器学习模型:

第一个机器学习模型模板

另外,您还可以在以下链接中找到本教程的笔记本版本:

鸢尾花分类教程

鏂囩珷鏉ユ簮锛�https://dev.to/rodolfomendes/create-your-first-machine-learning-model-in-5-minutes-with-google-colab-4o6h
PREV
NodeJs 项目启动, Express com Typescript
NEXT
Github 正在替换“master”一词,以避免出现“奴隶”的现象。处理一下吧。