
16
|
第
2
章
2.3.1
对数变换实战
我们看一下对数变换在监督式学习中有什么作用。本节会使用前面的两个数据集。对
于
Yelp
点评数据集,我们使用点评数量来预测一个商家的平均评分(见例
2-8
)。对于
Mashable
新闻文章数据集,我们使用文章中的单词数量来预测文章流行度。因为两个预
测的输出都是连续型数值,所以我们可以使用简单线性回归来构造模型。我们使用
scikit-
learn
,分别在进行了对数变换和未进行对数变换的特征上进行
10-
折交叉验证的线性回归。
我们使用
R
方分数来评价模型,它衡量的是训练出的回归模型预测新数据的能力。良好
的模型会有较高的
R
方分数。完美的模型能得到的最大
R
方分数是
1
。
R
方分数可以是负
的,一个糟糕的模型可以得到任意低的负分。通过交叉验证,我们不仅能得到分数的估计
值,还能得到它的方差,这有助于我们判断两种模型之间的差异是否是有意义的。
例
2-8
使用对数变换后的
Yelp
点评数量预测商家的平均评分
>>> import pandas as pd
>>> import numpy as np
>>> import json
>>> from sklearn import linear_model
>>> from sklearn.model_selection import cross_val_score
# 使用前面加载的Yelp点评数据框,计算Yelp点评数量的对数变换值。
# 注意,我们为原始点评数量加1,以免当点评数量为0时,对数运算结果得到负无穷大。
>>> ...