上QQ阅读APP看书,第一时间看更新
1.6 有监督学习算法
有许多用于有监督学习的算法,我们可以根据手头的任务和可用数据进行选择。如果没有太多数据,并且已经对问题有一定的了解,那么深度学习可能不是最佳的方法。我们应该尝试使用更简单的算法,并根据已有的知识提取相关的特征。
从简单开始总是一个好习惯。例如,对于分类,一个好的起点可以是决策树。随机森林就是一种很难会过拟合的简单决策树算法。开箱即用也可以提供良好的效果。对于回归问题,线性回归仍然非常流行,尤其是在必须证明所做决定为合理的领域中。对于其他问题,例如推荐系统,一个好的起点可以是矩阵分解。每个领域都有一个较好的标准算法。
一个简单的任务示例就是,根据位置和有关房屋的一些信息,预测待售房屋的价格。这是一个回归问题,scikit-learn中有一组算法可以执行该任务。如果要使用线性回归,可以执行以下操作:
激活我们的虚拟环境(或conda环境)并将代码保存在名为house_LR.py的文件中后,可以运行该文件。然后在放置文件的位置运行以下命令行:
关于神经网络的有趣部分是,只要有足够的可用数据,就可以使用它们来完成之前提到的任何任务。而且,当训练好神经网络后,就意味着我们有了一种进行特征工程的方法,而网络本身的一部分可以用于完成类似任务的特征工程。这种方法称为迁移学习(Transfer Learning,TL)。我们将在后续章节单独讲解迁移学习。