阅读 94

机器学习的方法中的线性回归,机器学习线性回归步骤

线性回归模型请看上篇文章,本篇文章介绍的是非线性回归模型
线性回归模型链接

在目前的机器学习领域中,最常见的三种任务就是:回归分析、分类分析、聚类分析。那么什么是回归呢?回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。回归分析在机器学习领域应用非常广泛,例如,商品的销量预测问题,交通流量预测问题。下面介绍几种常见的非线性回归模型。

1、SVR

众所周知,支持向量机在分类领域应用非常广泛,支持向量机的分类方法可以被推广到解决回归问题,这个就称为支持向量回归。支持向量回归算法生成的模型同样地只依赖训练数据集中的一个子集(和支持向量分类算法类似)。

#加载SVR模型算法库from sklearn.svm import SVR#训练集X = [[0, 0], [2, 2]]y = [0.5, 2.5]#创建SVR回归模型的对象clf = SVR()# 利用训练集训练SVR回归模型clf.fit(X, y) """SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto_deprecated', kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)"""clf.predict([[1, 1]])

2、决策树回归

from sklearn.tree import DecisionTreeRegressor X = [[0, 0], [2, 2]]y = [0.5, 2.5]clf = DecisionTreeRegressor()clf = clf.fit(X, y)clf.predict([[1, 1]])

3、knn回归
在数据标签是连续变量而不是离散变量的情况下,可以使用KNN回归。分配给查询点的标签是根据其最近邻居标签的平均值计算的。

X = [[0], [1], [2], [3]]y = [0, 0, 1, 1]from sklearn.neighbors import KNeighborsRegressorneigh = KNeighborsRegressor(n_neighbors=2)neigh.fit(X, y) print(neigh.predict([[1.5]]))

4、RandomForest回归

随机森林回归算法也是一种经典的集成算法之一。

from sklearn.ensemble import RandomForestRegressorfrom sklearn.datasets import make_regressionX, y = make_regression(n_features=4, n_informative=2, random_state=0, shuffle=False)regr = RandomForestRegressor(max_depth=2, random_state=0, n_estimators=100)regr.fit(X, y)print(regr.feature_importances_)print(regr.predict([[0, 0, 0, 0]]))

5、XGBoost回归
XGBoost近些年在学术界取得的成果连连捷报,基本所有的机器学习比赛的冠军方案都使用了XGBoost算法

import xgboost as xgbxgb_model = xgb.XGBRegressor(max_depth = 3, learning_rate = 0.1, n_estimators = 100, objective = 'reg:linear', n_jobs = -1)xgb_model.fit(X_train, y_train, eval_set=[(X_train, y_train)], eval_metric='logloss', verbose=100)y_pred = xgb_model.predict(X_test)print(mean_squared_error(y_test, y_pred))

6、神经网络MLP回归
神经网络使用slearn中MLPRegressor类实现了一个多层感知器(MLP),它使用在输出层中没有激活函数的反向传播进行训练,也可以将衡等函数视为激活函数。因此,它使用平方误差作为损失函数,输出是一组连续的值。

from sklearn.neural_network import MLPRegressormlp=MLPRegressor()mlp.fit(X_train,y_train)"""MLPRegressor(activation='relu', alpha=0.0001, batch_size='auto', beta_1=0.9, beta_2=0.999, early_stopping=False, epsilon=1e-08, hidden_layer_sizes=(100,), learning_rate='constant', learning_rate_init=0.001, max_iter=200, momentum=0.9, n_iter_no_change=10, nesterovs_momentum=True, power_t=0.5, random_state=None, shuffle=True, solver='adam', tol=0.0001, validation_fraction=0.1, verbose=False, warm_start=False)"""y_pred = mlp.predict(X_test)

7、LightGBM回归
LightGBM作为另一个使用基于树的学习算法的梯度增强框架。在算法竞赛也是每逢必用的神器,且要想在竞赛取得好成绩,LightGBM是一个不可或缺的神器。相比于XGBoost,LightGBM有如下优点,训练速度更快,效率更高效;低内存的使用量。

import lightgbm as lgbgbm = lgb.LGBMRegressor(num_leaves=31, learning_rate=0.05, n_estimators=20)gbm.fit(X_train, y_train, eval_set=[(X_train, y_train)], eval_metric='logloss', verbose=100)y_pred = gbm.predict(X_test)print(mean_squared_error(y_test, y_pred))

8、GBDT回归
集成算法Boosting的一种,基于决策树的梯度提升树回归算法

# GBDT超参数调优params = {'n_estimators': 400, 'max_depth': 11,'learning_rate': 0.06, 'loss': 'ls', 'subsample':0.8 }gbdt=GradientBoostingRegressor(**params)# 模型训练gbdt.fit(X_train, y_train)


文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐