本题中我们将创建一些模拟数据,为确保结果的一致性,请在模拟开始之前设置随机数种子set.seed(1)。
创建一个\(n=20\),\(d=2\)的分组样本,其中第一组中\(\boldsymbol{x}\sim N(\boldsymbol{1},\boldsymbol{I})\),第二组中\(\boldsymbol{x}\sim N(\boldsymbol{0},\boldsymbol{I})\)。
使用R中e1071库的svm()函数,对线性核参数和cost = 10拟合支持向量分类器,绘制出所得的支持向量分类器。
对线性核参数和cost = 0.1拟合支持向量分类器,绘制出所得的支持向量分类器。
使用e1071库包含一个内置函数tune(),用于执行交叉验证寻找最优的cost。
生成一个\(n=20\)的测试数据集,使用predict()函数预测最佳模型下的测试观测值的分类。
本题中我们将创建一些模拟数据,为确保结果的一致性,请在模拟开始之前设置随机数种子set.seed(1)。
创建一个\(n=200\),\(d=2\)的分组样本,其中第一组中有\(150\)个样本,第一组中前100个\(\boldsymbol{x}\sim N(\boldsymbol{2},\boldsymbol{I})\),后50个\(\boldsymbol{x}\sim N(-\boldsymbol{2},\boldsymbol{I})\),第二组中\(\boldsymbol{x}\sim N(\boldsymbol{0},\boldsymbol{I})\)。
将数据随机分为\(n=100\)的训练集和\(n=100\)的测试集,在测试集上对参数为\(\gamma=1\)的高斯核函数和cost = 1拟合支持向量分类器,绘制出所得的支持向量分类器。
使用tune()来执行交叉验证,选择一个最优的SVM的\(\gamma\) 和
cost,使用predict()函数来查看此模型的测试集预测。
本题需要分析ISLR2包中的OJ数据集。
创建一个训练集,其包含800个随机样本,再创建一个包含剩余观测值的测试集。
使用训练集的数据拟合一个树,以Purchase作为响应变量,其他变量作为预测变量。使用summary()函数来获取关于这个树的信息,并描述所得到的结果。在训练集上错误率是多少?这个树有多少终端节点?
输入该树对象的名称并运行,以获取关于这个树的详细情况。选择其中一个终端节点,并解释所显示的内容。
绘制该树的图像,并解释结果。
对测试集做预测,并生成一个混淆矩阵,比较测试集的真实标签和所预测的标签。在测试集上的错误率是多少?
对训练集使用cv.tree()函数,以确定最优树的大小。
生成一个图像,其横轴代表树的大小,纵轴为交叉验证的分类错误率。
哪个大小的树对应最低的交叉验证分类误差率?
生成一个剪枝后的树,其大小为交叉验证中获得的最优大小。如果交叉验证的结果显示无需进行剪枝,则生成一个有五个终端节点的剪枝后的树。
比较剪枝的树和未剪枝的树在训练集上的错误率。哪个更高?
比较剪枝的树和未剪枝的树在测试集上的错误率。哪个更高?
请于12.15日晚24点前提交以HW4+学号+姓名.html/pdf文件至Canvas。