sklearn实现lda模型_运用sklearn进行线性判别分析(LDA)代码实现

本文介绍了如何使用sklearn库实现线性判别分析(LDA),通过10行代码展示了在葡萄酒数据集上的分类应用,强调了LDA作为有监督方法在数据降维中的优势,并与PCA进行了对比。
摘要由CSDN通过智能技术生成

基于sklearn的线性判别分析(LDA)代码实现

一、前言及回顾

本文记录使用sklearn库实现有监督的数据降维技术——线性判别分析(LDA)。在上一篇LDA线性判别分析原理及python应用(葡萄酒案例分析),我们通过详细的步骤理解LDA内部逻辑实现原理,能够更好地掌握线性判别分析的内部机制。当然,在以后项目数据处理,我们有更高效的实现方法,这篇将记录学习基于sklearn进行LDA数据降维,提高编码速度,而且会感觉更加简单。

学习之后可以对数据降维处理两种实现方法进行对比:

二、定义分类结果可视化函数

这个函数与上一篇文章 运用sklearn进行主成分分析(PCA)代码实现 里是一样的,plot_decision_region函数在分类结果区别决策区域中可以复用。

def plot_decision_regions(x, y, classifier, resolution=0.02):

markers = ['s', 'x', 'o', '^', 'v']

colors = ['r', 'g', 'b', 'gray', 'cyan']

cmap = ListedColormap(colors[:len(np.unique(y))])

x1_min, x1_max = x[:, 0].min() - 1, x[:, 0].max() + 1

x2_min, x2_max = x[:, 1].min() - 1, x[:, 1].max() + 1

xx1, xx2 = np.meshgrid(np.arange(x1_min, x1_max, resolution), np.arange(x2_min, x2_max, resolution))

z = classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)

z = z.reshape(xx1.shape)

plt.contourf(xx1, xx2, z, alpha=0.4, cmap=cmap)

for idx, cc in enumerate(np.unique(y)):

plt.scatter(x=x[y == cc, 0],

y=x[y == cc, 1],

alpha=0.6,

c=cmap(idx),

edgecolor='black',

marker=markers[idx],

label=cc)

三、10行代码实现葡萄酒数据集分类

sklearn依然实现了LDA类方法,我们只需要直接调用而无需自己实现内部逻辑,这样显得更加方便。所以,10行代码实现也不为过,重点需要先理解内部逻辑原理。

关键代码如下:

lda = LDA(n_components=2)

lr = LogisticRegression()

x_train_lda = lda.fit_transform(x_train_std, y_train) #

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值