随机森林算法简介
几个月前,我在悉尼参加了一个会议。会上,fast.ai向我介绍了一门在线机器学习课程,那时候我根本没注意。这周,在Kaggle竞赛寻找提高分数的方法时,我又遇到了这门课程。我决定试一试。
这是我从第一堂课中学到的东西,这是一个1小时17分钟的视频,介绍了随机森林。
课的主题是随机森林,杰里米(讲师)提供了一些基本信息以及使用Jupyter Notebook的提示和技巧。
Jeremy谈到的一些重要的事情是,数据科学并不等同于软件工程。在数据科学中,我们做的是设计模型。虽然软件工程有自己的一套实践,但数据科学也有自己的一套最佳实践。
模型构建和原型设计需要一个交互的环境,是一个迭代的过程。我们建立一个模型。然后,我们采取措施来改善它。重复直到我们对结果满意为止。
随机森林
我听说过“随机森林”这个词,我知道它是现有的机器学习技术之一,但是老实说,我从来没有想过要去了解它。我一直热衷于更多地了解深度学习技术。
从这次演讲中,我了解到随机森林确实很棒。
它就像一个通用的机器学习技术,既可以用于回归,也可以用于分类。这意味着你可以使用随机森林来预测股票价格以及对给定的医疗数据样本进行分类。
一般来说,随机森林模型不会过拟合,即使它会,它也很容易阻止过拟合。
对于随机森林模型,不需要单独的验证集。
随机森林只有一些统计假设。它也不假设你的数据是正态分布的,也不假设这些关系是线性的。
它只需要很少的特征工程。
因此,如果你是机器学习的新手,它可以是一个很好的起点。
其他概念
维数诅咒是一个概念,意思是你拥有的数据特征越多,数据点就会越分散。这意味着两点之间的距离没有意义。
Jeremy确信,在实践中,情况并非如此,事实上,你的数据拥有的特征越多,对模型的训练效果就越好。
没有免费午餐定理是这样一个概念:没有一个模型可以完美地适用于任何类型的数据。
技巧和窍门
- 你可以在Jupyter Notebook中使用!来执行bash命令,例如。
! ls
! mkdir new_dr
- 在Python 3.6中追加字符串的新方法。
name = 'Sabina'
print(f'Hello {name}')no_of_new_msg = 11
print(f'Hello {name}, you have {no_of_new_msg} new messages')
- 不需要离开Jupyter notebook就可以查看python函数。在函数名前使用?获取它的文档。
from sklearn.ensemble import RandomForestClassifier?RandomForestClassifier.fit()
- 如果你想阅读源代码,可以使用??在函数名称前。
from sklearn.ensemble import RandomForestClassifier??RandomForestClassifier.fit()
- 通过使用to_feather方法保存处理过的数据集,将数据集以存储在RAM中的相同格式保存到磁盘。可以使用read_feather方法从保存的文件中读取数据。注意,为了使用这些方法,你需要安feather-format库。
import pandasdf = pd.DataFrame()
df.to_feather('filename')saved_df= pd.read_feather('filename')
如果你有兴趣深入探讨该主题,请点击此处链接到课程视频。
http://course18.fast.ai/lessonsml1/lesson1.html
欢迎关注磐创博客资源汇总站:
http://docs.panchuang.net/
欢迎关注PyTorch官方中文教程站:
http://pytorch.panchuang.net/