Ensemble Learning------基本的回归模型

Ensemble Learning----基本的回归模型
上一次有点没说完。
聚类是无监督学习的一种,比如我们常见的k-means算法,不给出因变量,对自变量的取值进行聚类。
回归是监督学习的一种方法,包含的内容非常多,比较基础的是线性回归,当线性回归不能解决问题时将线性回归的每个变量增加次数,成为多项式回归,如果将每个变量变成多项式,就成为了广义可加模型(GAM)。另外决策树、SVM(支持向量机)都是回归问题的解决方法。

from sklearn import datasets
boston=datasets.load_boston() #返回一个类似字典的类
X=boston.data
y=boston.target
features=boston.feature_names
boston_data=pd.DataFrame(X,columns=features)
boston_data["Price"]=y
boston_data.head()

使用的是sklearn里面的boston()数据集,Price是因变量,我们就要通过另外的自变量对房价进行回归。
在这里插入图片描述
使用基本的线性回归模型对房价进行回归,看模型的判定系数是多少。

使用线性回归模型

from sklearn import linear_model#引入线性回归方法
lin_reg=linear_model.LinearRegression()
lin_reg.fit(X,y)
print("模型系数",lin_reg.coef_)
print("模型得分",lin_reg.score(X,y))#输出模型的决定系数R^2

得到结果:
模型系数 [-1.08011358e-01 4.64204584e-02 2.05586264e-02 2.68673382e+00
-1.77666112e+01 3.80986521e+00 6.92224640e-04 -1.47556685e+00
3.06049479e-01 -1.23345939e-02 -9.52747232e-01 9.31168327e-03
-5.24758378e-01]
模型得分 0.7406426641094094

线性模型的推广

多项式函数,体现非线性关系

from sklearn.preprocessing import PolynomialFeatures
X_arr=np.arange(6).reshape(3,2)
print("原始X为: \n",X_arr)

poly=PolynomialFeatures(2)
print("2次转化X:\n",poly.fit_transform(X_arr))

poly=PolynomialFeatures(interaction_only=True)#是否只包含交互项
print("2次转化:\n",poly.fit_transform(X_arr))

在这里插入图片描述
GAM模型
gam = LinearGAM(intercept + s(0) + s(1) + f(2)+……).fit(X, y)

from pygam import LinearGAM
gam=LinearGAM().fit(boston_data[boston.feature_names],y)
# gam = LinearGAM(intercept + s(0) + s(1) + f(2)+……).fit(X, y)
gam.summary()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随机森林(Random Forest)是一种集成学习(Ensemble Learning)方法,它通过构建多个决策树来进行分类或回归。scikit-learn是一个流行的Python机器学习库,提供了实现随机森林算法的工具。 在scikit-learn中,可以使用ensemble模块中的RandomForestClassifier进行分类问题,或者使用RandomForestRegressor进行回归问题。随机森林通过随机选择特征子集和样本子集来构建多个决策树,然后通过投票或平均的方式来得到最终的预测结果。 使用scikit-learn中的随机森林算法,需要先导入相关的类和函数,然后创建一个随机森林模型对象,并对其进行训练和预测。例如,下面是一个使用随机森林分类器进行分类的示例代码: ```python from sklearn.ensemble import RandomForestClassifier from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split # 加载数据集 data = load_iris() X = data.data y = data.target # 划分训练集和测试集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 创建随机森林分类器 rf = RandomForestClassifier(n_estimators=100) # 训练模型 rf.fit(X_train, y_train) # 预测 predictions = rf.predict(X_test) ``` 这只是一个简单的示例,你可以根据自己的需求进行参数调整和功能扩展。随机森林在处理各种机器学习问题时具有较好的性能和鲁棒性,你可以进一步了解scikit-learn文档中关于RandomForestClassifier和RandomForestRegressor的详细用法和参数设置。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值