我们将会使用上面设置的predict()和train_weights()函数来训练该模型。同时,我们将会用一个新函数perceptron() 来将它们组合在一起。如下是完整的例子。
在交叉验证中,我们取 k 为 3——也就是对每一块数据,都有 208/3 约 70 个记录,会在每次迭代中被用于计算。我们取 0.1 的学习率及 500 的训练迭代次数,来训练模型。 你可以尝试你自己的参数,并且看看你的结果能否战胜我的分数。运行这个例子,将会显示对 3 倍交叉验证中每一块的分数,以及平均的分类正确率。 我们可以看到,这个正确率约为 73%,高于由仅考虑主要类的零规则算法(Zero Rule Algorithm)得到的 50% 的正确率基准值。
拓展 这一节列举了关于该入门指导的拓展内容,你可以考虑深入探究其中的一些内容。 调试样例参数。尝试着去调整包括学习率、迭代次数乃至于数据预处理的方法,以使模型在该数据集上,得到更高的分数。 批量化进行随机梯度下降。修改随机梯度下降的算法,使得我们能记录下每一次迭代的更新值,并且在迭代结束的时候再基于记录的更新值来更新权重值。 额外的分类问题。将文中提到的技巧,应用于 UCI 机器学习数据集中其他数据。 回顾 在该教程中,你学习了如何从零开始,用 Python 实现,基于随机梯度下降的感知器算法。 你学会了: 如何对一个二元分类问题进行预测。 如何使用随机梯度下降,对一系列的权重值进行最优化。 如何将这个技巧,应用到一个实际的分类预测模型。 ©本文由机器之心编译,转载请联系本公众号获得授权。 ?------------------------------------------------ 加入机器之心(全职记者/实习生):[email protected] 投稿或寻求报道:[email protected] 广告&商务合作:[email protected] (责任编辑:本港台直播) |