继续打卡。
相关的算法原理很多,上一次打卡去学了GBDT和XGBoost,这次又补充了决策树、线性回归和LightBGM。
后面课程还有补充一些回归分析的内容,这里其中有一些是我在学习STATA的时候学过的,比如如何处理多重共线性、异方差性等问题。这里就不多说了。
这次想先学习一下LightBGM。它与XGBoost、Catboost一起被称为GBDT的三大实现。
与XGBoost一样,LGB也不需要遍历所有的节点,但XGB在遍历节点后比较每个节点的信息增益时,需要考虑所有样本带来的信息增益,而LGB则不同,它选择剃度大的样本来计算信息增益,同时随机地保留一些小梯度样本,这样,同时也就放大了小梯度样本带来的信息增益。
不仅如此,LGB还内置了特征降维技术,来合并一些冲突不那么大的稀疏特征。
下面进入正题。在读取数据后,我们可以def一个函数,通过调整数据类型,减少数据在内存中占用的空间。`
sample_feature = reduce_mem_usage(pd.read_csv('data_for_tree.csv'))
然后就可以看到
Memory usage of dataframe is 62099624.00 MB
Memory usage after optimization is: 16520255.00 MB
Decreased by 73.4%
随后,我们可以先简单建一个线性模型。
from sklearn.linear_model import LinearRegression
model = LinearRegression(normalize=True)
model = model.fit(train_X, train_