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
R2 score
R
2
R^2
R2 score为0时,表示均值模型
R
2
R^2
R2 score小于0时,表示模型比均值模型还差
R
2
R^2
R2 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的计算方式