85、编写一个函数,该函数可以将MNIST图像在任何方向(左、右、上或下)移动一个像素。然后,对于训练集中的每个图像,创建四个移动后的副本(每个方向一个),并将它们添加到训练集中。最后,在这个扩展后的训练集上训练你最好的模型,并在测试集上测量其准确率。你会发现现在你的模型表现更好了!这种人为扩大训练集的技术称为数据增强或训练集扩展。
可按以下思路编写代码:
- 编写图像移动函数:使用图像处理库(如NumPy)编写函数实现图像在四个方向上的移动。
- 扩展训练集:遍历训练集中的每个图像,调用移动函数生成四个移动后的副本并添加到训练集中。
- 训练模型:在扩展后的训练集上训练之前选择的最佳模型(如KNeighborsClassifier)。
- 评估模型:在测试集上测量模型的准确率。
86、在训练逻辑回归模型时,梯度下降法会陷入局部最小值吗?
逻辑回归模型的成本函数特性
逻辑回归模型的成本函数是一个 凸函数 ,其形状类似于碗状,这意味着它 只有一个全局最优解 ,不存在局部最小值。
因此,在训练逻辑回归模型时, 梯度下降法不会陷入局部最小值 。
不过,当成本函数非常不规则时, 随机梯度下降法 能帮助算法跳出局部最小值,相比 批量梯度下降法 更有可能找到全局最小值。同时,通过 逐渐降低学习率 ,可以使得算法收敛到全局最小值。
87、如果让所有梯度下降算法运行足够长的时间,它们是否都会得到相同的模型?
不同的梯度下降算法由于其原理和特性不同,即使运行足够长时间,也不一定会得到相同的模型。
88、假设你想将图片分类为户外/室内和白天/夜晚。你应该实现两个逻辑回归分类器还是一个 Softmax 回归分类器?
应该实现两个逻辑回归分类器。逻辑回归适用于二分类问题,这里有 两个二分类任务 : 户外/室内 和 白天/夜晚 。
而 Softmax 回归主要用于多分类问题,通常是将样本分为多个互斥的类别,不适合这种 有两个独立二分类任务 的情况。
89、什么是支持向量?
支持向量是支持向量机中离分类超平面最近的样本点,这些样本点决定了分类超平面的位置和方向。
90、如何在LinearSVC、SVC和SGDClassifier之间进行选择?
- 若数据集线性可分且规模较大,可选 LinearSVC ;
- 若数据集为中小规模且非线性, SVC 较合适;
- 若需增量学习、处理大规模数据且内存有限, SGDClassifier 是不错的选择。
91、在一个线性可分的数据集上训练一个LinearSVC。然后在相同的数据集上训练一个SVC和一个SGDClassifier。看看你是否能让它们产生大致相同的模型。
以下为大致步骤:
- 准备线性可分数据集;
- 训练LinearSVC:使用准备好的数据集训练LinearSVC模型;
- 训练SVC:在相同数据集上训练SVC模型,可设置合适参数;
- 训练SGDClassifier:同样在该数据集上训练SGDClassifier;
- 评估模型相似度:通过比较它们在验证集上的预测结果、决策边界等判断是否大致相同。
92、使用 sklearn.datasets.load_wine() 加载葡萄酒数据集,并在该数据集上训练一个支持向量机(SVM)分类器。该数据集包含由3个不同种植者生产的178个葡萄酒样本的化学分析数据,目标是训练一个分类模型,能够根据葡萄酒的化学分析预测种植者。由于SVM分类器是二元分类器,因此需要使用一对多策略来对所有3个类别进行分类。请编写Python代码实现该过程,并计算模型的准确率。
以下是实现该功能的Python代码:
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
from sklearn.svm import SVC
from sklearn.metrics import accuracy_score
# 加载葡萄酒数据集
wine = load_wine()
X = wi
数据增强与模型优化解析

最低0.47元/天 解锁文章
7043

被折叠的 条评论
为什么被折叠?



