<>弹性网络回归
弹性网络ElasticNet是同时使用了系数向量的 l1 范数和 l2 范数的线性回归模型,使得可以学习得到类似于Lasso的一个稀疏模型,同时还保留了
Ridge 的正则化属性,结合了二者的优点,尤其适用于有多个特征彼此相关的场合。
<>主要参数说明

alpha: a值。

fit_intercept:一个布尔值,指定是否需要计算b值。如果为False,那么不计算b值(模型会认为你已经将数据中心化了)。

max_iter:整数值,指定最大迭代次数。

normalize:一个布尔值。如果为True,那么训练样本会在回归之前被归一化。

copy_X:一个布尔值,如果为True,则会复制X值

precompute:一个布尔值或者一个序列。他决定是否提前计算Gram矩阵来加速计算。

tol:一个浮点数,指定判断迭代收敛与否的阈值。

warm_start:一个布尔值,如为True,那么使用前一次训练结果继续训练。否则重头开始训练。

positive:一个布尔值,如为Ture,那么强制要求全中响亮的分量都为整数。

selection:一个字符串,可以为‘cyclic’(更新时候,从前向后一次选择权重向量的一个分量来更新)或者‘random’(随机选择权重向量的一个分量来更新),他指定了当每轮迭代的时候,选择权重向量的一个分量来更新

random_state:一个整数或者一个RandomState实例,或者为None。如果为整数,则他指定了随机数生成器种子。如果为RandomState实例,则指定了随机数生成器。如果为None,则使用默认的随机数生成器。
%config InteractiveShell.ast_node_interactivity = 'all' #同时输出多行结果 from sklearn.
linear_modelimport ElasticNet reg = ElasticNet(alpha=1.0, l1_ratio=0.7) X = [[3]
, [8]] y = [1, 2] reg.fit(X, y) ElasticNet(alpha=1.0, copy_X=True, fit_intercept
=True, l1_ratio=0.7, max_iter=1000, normalize=False, positive=False, precompute=
False, random_state=None, selection='cyclic', tol=0.0001, warm_start=False)
#参数含义和lasso和ridge类似 reg.predict([[6]]) reg.coef_ reg.intercept_
ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.7,
max_iter=1000, normalize=False, positive=False, precompute=False,
random_state=None, selection='cyclic', tol=0.0001, warm_start=False)
ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.7,
max_iter=1000, normalize=False, positive=False, precompute=False,
random_state=None, selection='cyclic', tol=0.0001, warm_start=False)
array([1.54198473]) array([0.08396947]) 1.0381679389312977 #修改参数比较结果 reg =
ElasticNet(alpha=1.0, l1_ratio=0.3) # 修改参数,进行对比 reg.fit(X, y) ElasticNet(alpha=
1.0, copy_X=True, fit_intercept=True, l1_ratio=0.3, max_iter=1000, normalize=
False, positive=False, precompute=False, random_state=None, selection='cyclic',
tol=0.0001, warm_start=False) reg.predict([[6]]) reg.coef_ reg.intercept_
ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.3,
max_iter=1000, normalize=False, positive=False, precompute=False,
random_state=None, selection='cyclic', tol=0.0001, warm_start=False)
ElasticNet(alpha=1.0, copy_X=True, fit_intercept=True, l1_ratio=0.3,
max_iter=1000, normalize=False, positive=False, precompute=False,
random_state=None, selection='cyclic', tol=0.0001, warm_start=False)
array([1.56834532]) array([0.13669065]) 0.748201438848921 #利用IRIS数据集进行弹性网络回归
import pandas as pd import numpy as np from sklearn.datasets import load_iris
from sklearn import linear_model from sklearn import metrics #导入IRIS数据集 iris =
load_iris() #特征矩阵 X=iris.data #目标向量 y=iris.target from sklearn.
cross_validationimport train_test_split #导入数据划分包 #以20%的数据构建测试样本,剩余作为训练样本 X_train
,X_test,y_train,y_test=train_test_split(X,y,test_size=0.20,random_state =1)
elastic= linear_model.ElasticNet(alpha=0.1,l1_ratio=0.5) # 设置lambda值,l1_ratio值
elastic.fit(X_train,y_train) #使用训练数据进行参数求解 y_hat2 = elastic.predict(X_test)
#对测试集的预测 print ("RMSE:", np.sqrt(metrics.mean_squared_error(y_test, y_hat2)))
#计算RMSE ElasticNet(alpha=0.1, copy_X=True, fit_intercept=True, l1_ratio=0.5,
max_iter=1000, normalize=False, positive=False, precompute=False,
random_state=None, selection='cyclic', tol=0.0001, warm_start=False) RMSE:
0.25040264500501913

技术
©2019-2020 Toolsou All rights reserved,
一个名叫“讨火车”的小村子 终于把火车讨来了运营商 网站访客手机号码抓取hive压缩&&hdfs合并小文件精准手机号抓取,运营商大数据函数基本定义和使用‘未完待续Spring Boot教程十六:SpringBoot注入类实现多线程基于神经网络的车辆牌照字符识别技术MyBatis 新增数据 成功 返回 自增主键ID值json反斜杠问题接错水管喝了三年软水?软水和软水机究竟有何用