【笔记】【机器学习基础】分箱、离散化、线性模型、树

数据表示的最佳方法不仅取决于数据的语义,还取决于所使用的模型种类。
线性模型与基于树的模型(决策树、梯度提升树、随机森林)很常用的模型,但他们在处理不同特征表示时具有非常不同的性质。

(1)线性回归和决策树在make_wave数据集中的对比

from sklearn.linear_model import LinearRegression
from sklearn.tree import DecisionTreeRegressor

X, y = mglearn.datasets.make_wave(n_samples=120)
line = np.linspace(-3, 3, 1000, endpoint=False).reshape(-1, 1)

reg = DecisionTreeRegressor(min_samples_leaf=3).fit(X, y)
plt.plot(line, reg.predict(line), label="decision tree")

reg = LinearRegression().fit(X, y)
plt.plot(line, reg.predict(line), label="linear regression")

plt.plot(X[:, 0], y, 'o', c='k')
plt.ylabel("Regression output")
plt.xlabel("Input feature")
plt.legend(loc="best")

在这里插入图片描述
线性模型对单个特征的建模,决策树可以构建更复杂的数据表示,但依赖于数据表示

(2)分箱
分箱(binning,离散化):将单个特征划分为多个特征,让线性模型在连续的数据上变得更加强大
假设特征输入范围,划分为固定个数箱子。

1、创建箱子

 bins = np.linspace(-3,3,11) 
 bins.shape

2、记录数据点所属箱子

 which_bin = np.digitize(X,bins=bins)
 print("\nBin memebership for data points:\n"which_bin[0:5])

3、编码

  from sklearn.preprocessing import OneHotEncoder

  encoder = OneHotEncoder(sparse=False).fit(which_bin) 

  X_binned = encoder.transform(which_bin) 
  print(X_binned[0:5])

4、编码后数据上构建模型进行比较

line_binned = kb.transform(np.digitize(line,bins=bins))

reg = LinearRegression().fit(X_binned, y)
plt.plot(line, reg.predict(line_binned), label='linear regression binned')

reg = DecisionTreeRegressor(min_samples_split=3).fit(X_binned, y)
plt.plot(line, reg.predict(line_binned), label='decision tree binned')
plt.plot(X[:, 0], y, 'o', c='k')
plt.vlines(bins, -3, 3, linewidth=1, alpha=.2)
plt.legend(loc="best")
plt.ylabel("Regression output")
plt.xlabel("Input feature")

在这里插入图片描述
实线虚线重合,说明做出了完全相同的预测。
由于每个箱子内特征值相同,所以预测值都相同。
线性模型更加灵活,而决策树灵活性降低

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值