引领未来:在【PyCharm】中利用【机器学习】与【支持向量机】实现高效【图像识别】_pycharm 机器学习
目录
一、数据准备
1. 获取数据集
2. 数据可视化
3. 数据清洗
二、特征提取
1. 数据标准化
2. 图像增强
三、模型训练
1. 划分训练集和测试集
2. 训练 SVM 模型
3. 参数调优
四、模型评估
1. 评估模型性能
2. 可视化结果
五、预测新图像
1. 加载和预处理新图像
编辑
完整代码
总结
专栏:机器学习笔记
总篇:学习路线
第一卷:线性回归模型
第二卷:逻辑回归模型
第三卷:决策树
一、数据准备
数据准备是机器学习项目的基础步骤。数据的质量直接影响模型的性能和最终结果。在图像识别任务中,数据通常是大量的图像文件,我们需要将这些图像转化为适合模型处理的格式。我们将使用 MNIST 数据集,这是一个包含手写数字图像的标准数据集。
1. 获取数据集
MNIST 数据集包含 70,000 个 28x28 像素的灰度图像,每个图像表示一个 0-9 的数字。这个数据集非常适合初学者进行机器学习和图像识别的练习。
首先,我们需要从公开数据源下载 MNIST 数据集。我们可以使用 fetch_openml
函数从 OpenML 平台下载该数据集:
import numpy as npimport matplotlib.pyplot as pltfrom sklearn.datasets import fetch_openml# 下载 MNIST 数据集mnist = fetch_openml(\'mnist_784\', version=1)X, y = mnist[\"data\"], mnist[\"target\"]# 将标签转换为整数y = y.astype(int)# 将 X 转换为 NumPy 数组X = X.values
上述代码使用 fetch_openml
函数从 OpenML 平台下载 MNIST 数据集。数据存储在 X
和 y
中,X
包含图像数据,y
包含对应的标签。X
是一个包含 70,000 个样本的数组,每个样本是一个 784 维(28x28)的向量。y
是对应的标签,表示图像中的数字。
小李的理解:数据准备是整个过程的基础。就像建房子一样,地基要打好。如果数据质量不好,后续的模型训练和评估都可能会出问题。MNIST 数据集很好用,因为它已经预处理好了,但在实际应用中,可能需要更多的数据清洗和预处理工作。
2. 数据可视化
为了更好地理解数据,我们可以可视化一些样本图像。这有助于直观地了解数据的分布和特征。
def plot_digit(data): image = data.reshape(28, 28) plt.imshow(image, cmap=plt.cm.binary, interpolation=\'nearest\') plt.axis(\"off\")# 显示前十个图像plt.figure(figsize=(12, 8))for i in range(10): plt.subplot(2, 5, i + 1) plot_digit(X[i])plt.show()
通过这些代码,我们将展平的向量重新转换为 28x28 的图像,并使用 Matplotlib 绘制出来。这样可以直观地看到手写数字的样本图像。
小李的理解:数据可视化有助于我们直观地了解数据。如果我们能看到图像,就更容易理解模型为什么会做出某些预测。
3. 数据清洗
虽然 MNIST 数据集已经经过了预处理,但在实际应用中,数据可能需要进行进一步清洗。数据清洗的目的是去除或修正数据中的错误和异常值。常见的数据清洗方法包括去除