自适应lasso_线性回归模型优化算法(Lasso)

学习最好的时间是十年前,其次就是现在。算法?好难啊,机器学习的,那来看看,啥,线性回归,没意思。所以我也不打算讲什么是目标: 找出

使得

最小。

后来在此基础上引入最小二乘、

与 真实值

尽可能接近。提一下逻辑回归的sigmoid函数把预测的值强行转换为[0,1]范围内大小的值,巧的是概率的值也是[0,1]的大小。

2.优化:解决目标的过程,目标是求最值,最值的问题怎么能少了求导。

,初中生用公式就算出来,咱先把它看成一个优化问题,找出最好的

,使得

最小。Gradient Descent(梯度下降法),Gradient Descent

(学习率|步长);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OAL(Online Active Learning)是一种在线学习算法,该算法可以在学习的过程中不断调整模型,以适应新的数据。与传统的批量学习算法不同,OAL在一次处理一个数据点时,通过不断调整模型来取得最佳的预测结果。 LASSO(Least Absolute Shrinkage and Selection Operator)是一种常用的线性回归算法,采用L1正则化约束,可以用来减小模型的复杂度,提高模型的泛化能力。 自适应LASSO是将LASSO算法与OAL算法相结合的一种方法,具有实时性、稳定性和高效率等优点,适用于大规模、高维度的数据处理场景。 以下是自适应LASSO的代码解读: 首先,初始化模型的参数,包括权重w、偏置b、学习率lr、正则化系数lambda和稀疏度theta。 ``` def __init__(self, input_dim, lr=0.1, lambda_=0.1, theta=0.1): self.w = np.zeros((input_dim, 1)) # 权重 self.b = 0 # 偏置 self.lr = lr # 学习率 self.lambda_ = lambda_ # 正则化参数 self.theta = theta # 稀疏度 ``` 然后定义损失函数(损失函数采用了L1正则化),并利用梯度下降算法更新模型的参数。 ``` def update(self, x, y): # 计算预测值 y_pred = np.dot(self.w.T, x) + self.b # 计算损失函数 loss = (y - y_pred) ** 2 + self.lambda_ * np.sum(np.abs(self.w)) # 更新参数(梯度下降法) delta_w = -2 * np.dot((y - y_pred), x.T).T + self.lambda_ * np.sign(self.w) delta_b = -2 * (y - y_pred) self.w -= self.lr * delta_w self.b -= self.lr * delta_b # L1正则化(稀疏化) for i in range(self.w.shape[0]): if np.abs(self.w[i, 0]) < self.theta: self.w[i, 0] = 0.0 ``` 最后,训练模型并对预测结果进行评估。在训练过程中,使用随机梯度下降算法,每次只处理一个样本点。在测试过程中,根据模型的预测值和真实值计算均方误差和决定系数等指标。 ``` def fit(self, X_train, y_train, X_test, y_test, n_epochs=100): # 训练模型 for epoch in range(n_epochs): for i in range(X_train.shape[0]): x = X_train[i].reshape((X_train.shape[1], 1)) y = y_train[i] self.update(x, y) # 评估模型 y_pred = np.dot(X_test, self.w) + self.b mse = np.mean((y_test - y_pred) ** 2) # 均方误差 r2 = 1 - np.sum((y_test - y_pred) ** 2) / np.sum((y_test - np.mean(y_test)) ** 2) # 决定系数 print("MSE: %.4f, R^2: %.4f" % (mse, r2)) ``` 综上所述,自适应LASSO是一种结合了OAL和L1正则化的在线学习算法,具有实时性、稳定性和高效率等优点,有效适用于大规模、高维度的数据处理场景。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值