分别进行PCA降维和LDA降维后分类iris数据集

降维

对iris数据集分别进行PCA降维和LDA降维后,再使用logisticRegression、SGDClassifier、Perceptron进行分类

# PCA降维
pca = PCA(n_components=2)
pca.fit(X)
X_PCA = pca.transform(X)

# LDA降维
lda = LinearDiscriminantAnalysis(n_components=2)
lda.fit(X, y)
X_LDA = lda.transform(X)

分类

# logisticRegression分类
lr_PCA = LogisticRegression(max_iter=5000, random_state=1)
lr_PCA.fit(X_train_PCA_scaler, y_train_PCA)
y_pred_PCA_lr = lr_PCA.predict(X_test_PCA_scaler)

# LR
lr_LDA = LogisticRegression(max_iter=5000, random_state=1)
lr_LDA.fit(X_train_LDA_scaler, y_train_LDA)
y_pred_LDA_lr = lr_LDA.predict(X_test_LDA_scaler)

# Perceptron
perceptron_PCA = Perceptron(max_iter=500, random_state=1)
perceptron_PCA.fit(X_train_PCA_scaler, y_train_PCA)
y_pred_perceptron_PCA = perceptron_PCA.predict(X_test_PCA_scaler)

perceptron_LDA = Perceptron(max_iter=500, random_state=1)
perceptron_LDA.fit(X_train_LDA_scaler, y_train_LDA)
y_pred_perceptron_LDA = perceptron_LDA.predict(X_test_LDA_scaler)

# SGDClassifier
SGD_LDA = SGDClassifier(max_iter=5000, random_state=1)
SGD_LDA.fit(X_train_LDA_scaler, y_train_LDA)
y_pred_SGD_LDA = SGD_LDA.predict(X_test_LDA_scaler)

SGD_PCA = SGDClassifier(max_iter=5000, random_state=1)
SGD_PCA.fit(X_train_PCA_scaler, y_train_PCA)
y_pred_SGD_PCA = SGD_PCA.predict(X_test_PCA_scaler)

结果展示

Perceptron分类器的平均性能更好,由实验结果可以看出Perceptron分类器的准确率最高,但是SGDClassifier分类器不太稳定有时候效果很好,但是有的时候准确率比其他两个都要低,所以整体看Perceptron分类器的性能更好。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

当在划分降维后的数据集的train_test_split函数中的shuffle参数改为True,让数据集乱序排列之后,然后在每个分类器定义的时候加入max_iter参数,并设置为5000时,可以明显的提高每个分类器的性能。

在这里插入图片描述

在这里插入图片描述

这个参数代表了迭代的次数,通过调整这个值每个分类器的准确率提高了很多。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值