Fast AI ML Note

github repo:https://github.com/fastai/fastai/tree/master/courses/ml1
视频链接:https://www.bilibili.com/video/av23356580

Fast AI依赖库的安装:

conda install bcolz
conda install tqdm
pip install graphviz
pip install sklearn_pandas
pip install isoweek
pip install pandas_summary
pip install -U feather-format

注意graphviz库的安装需要参考 http://www.cnblogs.com/onemorepoint/p/8310996.html
(因为我是先pip install graphviz,然后发现仍然报错,才去下载安装包安装的)

Lesson1

08:17
在notebook开始处写下如下代码

%load_ext autoreload
%autoreload 2

%matplotlib inline

能够为后续的restart提供便利(暂时体会不到)

11:00
查看display函数的文档

?display

查看display函数的源代码

??display

17:00
在远程服务器上下载kaggle数据,使用FireFox浏览器,选择Copy as cURL,去掉文本中的--2.0,并在末尾加上-o bulldozers.zip

21:40
可以使用Jupyter Notebook建立一个远程控制台

22:50

mkdir bulldozer
cd !$

其中!$表示上一条命令的最后一个word

24:00
在Jupyter Notebook中使用Shell

!ls {PATH}

其中{PATH}表示使用定义的PATH变量

29:20

name = 'Jeremy'
f'Hello {name}'
f'Hello {name.upper()}'

pd.read_csv函数,low_memory默认为True

32:55
target variable也称为dependent variable

46:00
Shift+Tab可以快速查看某个函数的介绍
可以Shift+Tab一次,两次,三次

51:00
使用Fast AI内置的add_datepart函数来提取日期特征,其中利用getattr函数获取datetime对象的各种属性

57:30
使用train_cats函数,将训练集中的字符串转换为数字
使用apply_cats函数,将测试集中的字符串转换为数字
只是保存了额外的信息,并没有对DataFrame本身进行修改

65:30
pd.to_feather保存为feather格式,这是一种全新的也是最快的保存格式

68:00
使用proc_df函数,对DataFrame本身进行修改

Lessson2

12:00
从公式上解释 R 2 R^2 score
R 2 R^2 score为0时,表示均值模型
R 2 R^2 score小于0时,表示模型比均值模型还差
R 2 R^2 score等于1时,表示模型完美拟合

68:00
对于RandomForest,如何判断n_estimators设置得足够多了?
答案是画出一个In [59]那样的图,当performance变得平坦时,说明estimator数量已经足够了

70:10
在训练样本数量较少,无法划分出验证集时,使用oob_score=True,查看model.oob_score_

76:05
set_rf_samples似乎从底层修改了RandomForest的采样方式
fit时仍然传入完整的训练集,在训练过程中自动完成采样
reset_tf_samples,fit时使用完整的训练集

80:40
因为该数据集样本数量足够多,跑一次RF花的时间较长,而且由于RF默认参数为每个叶节点仅包含一个样本,故在所有样本上学习出来的RF一定是过拟合的,因此对训练集进行采样,既减轻了过拟合,又节约了时间

83:25
min_samples_leaf=1, 3, 5, 10, 25

84:10
max_features=0.5,意思是每次寻找切分点时,使用50%的特征,这与列采样有区别

Lesson3

07:50
对训练集,使用df, y, nas = proc_df( df_raw, 'SalePrice' )
nas可作为参数在处理测试集时使用

30:20
RF的fit函数可以送入DataFrame,然而最终还是要转换为Numpy Array
所以当数据量很大的时候,提前转换为Numpy Array可以节约不少的时间
%prun m.fit( x, y )可以找出哪一条语句的执行时间最长

55:00
训练了多个决策树,对于某个样本,这些决策树给出不同的预测值,那么这些预测值的方差越小,表示这个样本的confidence较高,预测值的方差越大,表示这个样本的confidence较低

77:30
详细解释了RF中feature importance的计算方式

猜你喜欢

转载自blog.csdn.net/o0Helloworld0o/article/details/82839980