📄️ 线性模型案例二 例3.5
image.png
📄️ 案例3.2 视频教程
3.2.mov (128.82MB)题目:图片1.png
📄️ 案例3.4 视频教程
3.4.mov (182.19MB)题目:选择两个UCI数据集,比较10折交叉验证法和留一法所估计出的对率回归的错误率。步骤1:在“项目模板”中找到周志华习题,打开第三章线性模型习题案例3.4,创建模板。步骤2:在“CSV上传模块”上传data数据,一般为csv格式。这里用到的是葡萄酒数据集。版。:骤3:拖出“数据拆分CSV”模块,在“参数设置”中将数据1比重和数据2比重设置为0.7:0.3,第一份数据作为待预测数据的测试集,用于评估分类器,剩下的作为训练集,用于构建分类器。步骤4:在全部组件中选择带交叉验证的逻辑回归模块LogisticRegressionCV。在“参数设置”中,把Cs改为0.0001,0.0001.较小的值制定更强的正则化。是正则强度的倒数。Cv交叉验证生成器设置为10,意思为分层10折,10折交叉验证即把数据集随机分成10份,其中9份用于训练而另一份用作测试。该过程重复10次,每次用的测试数据不同。具有随机性,非确定性。特征字段里勾选跟前面的相同。其他参数不用更改。步骤5:在全部组件里搜索“模型预测”,把测试集数据和经过10折交叉验证的数据模型连接,设置好特征字段。步骤6:在全部组件里搜索“多分类评估”MultiClass模块,多分类评估组件时专门用于多分类模型的预测结果评估。在“字段设置”中的“标签列”输入“class”,预测列为prediction。在“参数设置”中的“评估指标”中选择accuracyscore即可。Accuracy_score函数计算正确预测的精度。至此已经可以从头开始运行,查看10折交叉验证的准确率结果。0.7037037037步骤7:在全部组件中搜索并拖出“逻辑回归”LogisticRegression模块。组件ID为1721.在“字段设置”的“特征字段”中输入“Alcohol,Malic acid,Ash,AshAlcalinity of ash,Magnesium,Total phenols,Flavanoids,Nonflavanoid phenols,Proanthocyanins,Color intensity,Hue,OD280/OD315 of diluted wines,Proline”,“标识字段”为class。logistic回归分类器,multi class设置为“ovr”,训练算法使用一对多休息方案。在求解器支持“多项式”选项时可以选择“多项式”。“liblinear”求解器实现正则逻辑回归,支持L1和 L2正则化。默认情况下正则化应用,它可以处理密集和稀疏输入。适合小型数据集。c为正则强度的倒数,默认为1。其他参数基本不用动,如果需要改,可以点击模块,查看帮助文档链接。留一法:n折交叉验证(n为数据集中样本的数目)。每次迭代都使用了最大可能数目的样本来训练。具有确定性。但是计算量很大,所以适合小型数据集。步骤8:拖出模型预测组件和多分类评估组件,参数设置和字段设置跟10折交叉验证相同。点击从头开始运行,同时进行留一法和10折交叉验证,查看结果。0.94。
📄️ 案例3.5 视频教程
3.5.mov (152.8MB)题目:编程实现线性判别分析,并给出西瓜数据集3.0α上的结果。步骤1:在“项目模板”中找到周志华习题,打开第三章线性模型习题案例3.5,创建模板。步骤2:在“CSV上传模块”上传data数据,一般为csv格式。这里用到的是西瓜数据集3.0α。版。步骤3:在全部组件列表搜索“标签编码”模块,拖到操作界面内,因为上传的数据特征为“色泽 根蒂 敲声 纹理 脐部 触感”等,需要转化为数字,“标签编码(LabelEncoder)”可以通过设置“字段设置”中的“目标字段”,来把特征取值转化为数字。依次拖出“标签编码”,在字段设置的目标字段中设置“色泽”“根蒂”“敲声”“纹理”“脐部”“触感”,即可将数据中的字符串进行编码,步骤4:在全部组件列表搜索“线性判别分析”linear discrimination analysis模块,组件ID为1731,在算法设计的机器学习中,“分类”选项卡下。在“参数设置”中设置特征字段“色泽,根蒂,敲声,纹理,脐部,触感,密度,含糖率”,“标识字段”设置为“好瓜”。可勾选“store covariance”存储协方差。“tol”设置为0.0001.较小的tol参数可以尽量避免相同的输入数据输出略微不同的结果。Solver中选择svd求解器。线性判别分析下一般默认求解器为“svd”,它可以执行分类和变换,并且不依赖于协方差矩阵的计算。Lsqr求解器是仅使用于分类的高效算法。本征求解器基于类间散度到类内散度比的优化,它可以用于分类和转换,但是需要计算协方差矩阵,因此可能不太适合具有大量特征的情况。“线性判别分析”是一个具有线性决策边界的分类器,通过将类的密度拟合到数据并且使用贝叶斯规则生成的。假设所有类别共享相同的协方差矩阵,则该模型将高斯密度拟合到每个类别。拟合模型还可以通过将其投影到最有区别的方向来减少输入的维数。步骤5:在全部组件列表搜索“模型预测”,把经过标签编码数字化的数据作为待预测数据,把经过线性判别分析的数据输出为输入模型,“字段设置”与待预测数据的特征字段相同。步骤6:也可以时手动用python实现线性判别分析算法。步骤7:在全部组件列表搜索“二次判别分析”Quadratic Discriminant Analysis模块。跟线性判别分析模块一样,字段设置相同,参数设置可不做更改。拖出“模型预测”模块,设置线性判别分析。二次判别分析是通过将类别条件密度拟合到数据并使用贝叶斯规则生成具有二次决策边界的分类器。该模型将高斯密度拟合到每个类别。