机器学习 线性判别分析(linear discriminant analysis)

线性判别分析(LDA)是一种用于分类数据降维的方法,旨在保持类内距离小且类间距离大。模型通过最大化类间方差与最小化类内方差来确定降维后的超平面。在代码实现中,LDA能有效地将高维数据映射到低维空间,使得数据分类更加明显。
摘要由CSDN通过智能技术生成

一、基本原理

1. 模型形式

LDA模型主要用于分类数据的降维,往往每个样本会有很多属性以及一个所属类别,假设有d个属性,那么样本空间就是d维的,通过LDA模型可以将d维数据投影到某个超平面,从而降低维度。这个超平面也不是随便选择的,它需要同一类的样本投影到超平面后距离尽量小,同时,不同类的样本投影到超平面后距离又要尽量大。说白了就是映射到超平面后,相当于聚了个类,同一类的尽量待在一块,不同类尽量隔开。

假设数据集D=\left \{ (x_1,y_1),(x_2,y_2),...,(x_m,y_m) \right \},对于每个样本x_i有n个属性,那么降维后的样本如下所示

                                                                                 ​​​​​​​​​​​​​​​​​​​​​Z=W^TX

其中Z=\begin{bmatrix} z_{11} &z_{12} &... &z_{1m} \\ z_{21} &z_{22} &... &z_{2m} \\ ... &... &... &... \\ z_{d1} &z_{d2} &... &z_{dm} \end{bmatrix}X=\begin{bmatrix} x_{11} &x_{12} &... &x_{1m} \\ x_{21} &x_{22} &... &x_{2m} \\ ... &... &... &... \\ x_{n1} &x_{n2} &... &x_{nm} \end{bmatrix}

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LinearDiscriminantAnalysis线性判别分析)是一种经典的分类算法,用于将具有多个特征的数据点分配到两个或多个预定义的类别中。在 Scikit-learn 库中,LinearDiscriminantAnalysis 类可以用于实现这种分类算法。下面是 LinearDiscriminantAnalysis 类的用法介绍: 1. 引入 LinearDiscriminantAnalysis 类 ```python from sklearn.discriminant_analysis import LinearDiscriminantAnalysis ``` 2. 创建 LinearDiscriminantAnalysis 实例 ```python flda = LinearDiscriminantAnalysis(n_components=2) ``` 这将创建一个 LinearDiscriminantAnalysis 的实例,其中 n_components 参数指定要提取的特征数量(默认为 None,表示保留所有特征)。 3. 使用 fit 方法拟合模型 ```python flda.fit(X, y) ``` 这将使用 X 和 y 训练数据来拟合 LinearDiscriminantAnalysis 模型,其中 X 是训练数据的特征向量,y 是训练数据的标签。 4. 使用 transform 方法转换数据 ```python X_flda = flda.transform(X) ``` 这将使用 LinearDiscriminantAnalysis 模型将原始特征向量 X 转换为 FDLA 特征向量 X_flda。 5. 使用 predict 方法进行预测 ```python y_pred = flda.predict(X_test) ``` 这将使用 LinearDiscriminantAnalysis 模型对测试数据 X_test 进行预测,并返回预测的标签 y_pred。 6. 使用 score 方法计算模型得分 ```python score = flda.score(X_test, y_test) ``` 这将使用 LinearDiscriminantAnalysis 模型对测试数据 X_test 进行预测,并与实际标签 y_test 进行比较,返回模型的准确率得分。 总之,LinearDiscriminantAnalysis 类提供了一种简单而有效的方法来进行分类和特征提取。它可以轻松地与其他 Scikit-learn 函数和工具集成,使得数据分析和机器学习变得更加简单和高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值