大数跨境
0
0

拟合(Fitting)

拟合(Fitting) 数据皮皮侠
2019-12-21
2
导读:防止过拟合1减少特征2增加数据量3正则化个人理解:LASSO与岭回归就是标准方程法下的变形,代价函数等价于常

防止过拟合
1减少特征
2增加数据量
3正则化

个人理解:LASSO与岭回归就是标准方程法下的变形,代价函数等价于常规梯度下降的L1,L2形式

'''

numpy.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None)

在指定的间隔内返回均匀间隔的数字。


RidgeCV:岭回归,CV是交叉验证

alphas是岭回归系数

shape形状中,第0列是样本数量,第1列是第一维(第一个特征),第2列是第二维

'''

岭回归

import numpy as np

from numpy import genfromtxt

from sklearn import linear_model

import matplotlib.pyplot as plt

data=genfromtxt(r"longley.csv",delimiter=',')#导入

x_data=data[1:,2:]#切片

y_data=data[1:,1]#切片

alphas_to_test=np.linspace(0.001,1)#等差数列

model=linear_model.RidgeCV(alphas=alphas_to_test,store_cv_values=True)#建模

model.fit(x_data,y_data)#训练

print(model.alpha_,model.cv_values_.shape)#得值

plt.plot(alphas_to_test,model.cv_values_.mean(axis=0))

plt.plot(model.alpha_,min(model.cv_values_.mean(axis=0)),'ro')

plt.show()

=============================================

Lasso

import numpy as np

from numpy import genfromtxt

from sklearn import linear_model

data=genfromtxt(r"longley.csv",delimiter=',')#导入

x_data=data[1:,2:]#切片

y_data=data[1:,1]#切片

model=linear_model.LassoCV()

model.fit(x_data,y_data)#训练

print(model.alpha_,model.coef)#得值

print(model.predict(x_data[-2,np.newaxis]))

=============================================

正则化时指数q取值可以有很多种:

弹性网结合了L1L2正则化:

=============================================

import numpy as np

from numpy import genfromtxt

from sklearn import linear_model

data=genfromtxt(r"longley.csv",delimiter=',')#导入

x_data=data[1:,2:]#切片

y_data=data[1:,1]#切片

model=linear_model.ElasticNetCV()#与Lasso例程就这个不同!

model.fit(x_data,y_data)#训练

print(model.alpha_,model.coef)#得值

print(model.predict(x_data[-2,np.newaxis]))

【声明】内容源于网络
0
0
数据皮皮侠
社科数据综合服务中心,立志服务百千万社科学者
内容 2137
粉丝 0
数据皮皮侠 社科数据综合服务中心,立志服务百千万社科学者
总阅读2.3k
粉丝0
内容2.1k