线性回归-对数几率回归与线性判别分析

这次和上一次的内容类似,以西瓜书南瓜书为主结合统计学习方法与吴恩达机器学习,先做了一些手写的笔记,后面会精简整理成博客。
在这里插入图片描述

首先,让我们分别简要地介绍这两种常见的统计学习算法: 1. 对数几率回归 (Logistic Regression): 对数几率回归主要用于二分类问题,它将输入特征概率关联起来。以下是简单的伪代码实现: ```python // 假设 X 是输入特征矩阵,y 是对应的二进制目标变量 function logistic_regression(X, y): // 初始化模型参数 w w = zeros(size(X[0])); // 正则化参数 λ lambda_ = 0.01 // 迭代优化过程(例如梯度下降) for epoch in range(max_epochs): // 预测概率 p(y=1|x) predictions = sigmoid(X * w) // 计算损失函数(交叉熵) loss = -mean(y * log(predictions) + (1 - y) * log(1 - predictions)) // 梯度更新 dw = (X.T @ (predictions - y)) / X.shape[0] + lambda_ * w // 更新权重 w -= learning_rate * dw return w ``` 其中 `sigmoid` 函数用于计算预测值的概率。 2. 线性判别分析 (Linear Discriminant Analysis, LDA): LDA是一种降维技术,尤其适用于高维数据,目的是最大化类别间的方差同时最小化类内方差。以下是简单描述: ```python function lda(X_train, y_train, X_test): // 计算类均值 class_means = [mean(X[y == i]) for i in unique(y_train)] // 计算类协方差矩阵 within_class_covariances = [] for class_idx, mean in enumerate(class_means): within_class_covariances.append(covariance(X_train[y_train == class_idx], demeaned=True)) // 计算总样本协方差矩阵 pooled_covariance = covariance(X_train, demeaned=True) // 计算W矩阵(投影到低维空间的方向) W = inv(pooled_covariance) - inv(within_class_covariances).sum(axis=0) // 应用LDA变换 X_train_lda = X_train @ W X_test_lda = X_test @ W return X_train_lda, X_test_lda ``` 注意:以上都是简化版本,实际应用中可能需要处理更多细节如数据预处理、异常值检查等。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值