Python(scikit learn)lda 崩溃为单一维度

2024-01-26

总的来说,我对 scikit learn 和机器学习非常陌生。

I am currently designing a SVM to predict if a specific amino acid sequence will be cut by a protease. So far the the SVM method seems to be working quite well: sensitivity and specificity of one of my SVM models

我想可视化两个类别(剪切和未剪切)之间的距离,因此我尝试使用线性判别分析,它类似于主成分分析,使用以下代码:

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
lda = LinearDiscriminantAnalysis(n_components=2)
targs = np.array([1 if _ else 0 for _ in XOR_list])
DATA = np.array(data_list)
X_r2 = lda.fit(DATA, targs).transform(DATA)
plt.figure()
for c, i, target_name in zip("rg", [1, 0],["Cleaved","Not Cleaved"]):
    plt.scatter(X_r2[targs == i], X_r2[targs == i], c=c, label=target_name)
plt.legend()
plt.title('LDA of cleavage_site dataset')

然而,LDA 只给出一维结果

In: print X_r2[:5]
Out: [[ 6.74369996]
 [ 4.14254941]
 [ 5.19537896]
 [ 7.00884032]
 [ 3.54707676]]

然而,PCA 分析将根据我输入的数据给出 2 个维度:

pca = PCA(n_components=2)
X_r = pca.fit(DATA).transform(DATA)
print X_r[:5]
Out: [[ 0.05474151  0.38401203]
 [ 0.39244191  0.74113729]
 [-0.56785236 -0.30109694]
 [-0.55633116 -0.30267444]
 [ 0.41311866 -0.25501662]]

编辑:这里是两个带有输入数据的谷歌文档的链接。我没有使用序列信息,只是使用后面的数字信息。文件分为阳性和阴性对照数据。 输入数据:file1 https://drive.google.com/file/d/0B9fhTraU6SUkT0toQnFMQmFHVjQ/view?usp=sharing file2 https://drive.google.com/file/d/0B9fhTraU6SUkZkdkbm0wa18wZG8/view?usp=sharing


LDA 不是一种降维技术。 LDA 是一个分类器,人们可视化的事实决策函数只是一个副作用,并且 - 不幸的是对于您的用例 - 二元问题(2类)的决策函数是1维。您的代码没有任何问题,这就是线性二元分类器的每个决策函数的样子。

一般来说,对于 2 个类别,您最多可以获得 1 维投影,而对于 K>2 类别,您最多可以获得 K 维投影。使用其他分解技术(例如 1 vs 1),您可以达到 K(K-1)/2,但同样,仅限于 2 个以上的类。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python(scikit learn)lda 崩溃为单一维度 的相关文章

  • 如何以干净高效的方式在 pytorch 中获得小批量?

    我试图做一件简单的事情 即使用火炬通过随机梯度下降 SGD 训练线性模型 import numpy as np import torch from torch autograd import Variable import pdb def
  • scikit学习逻辑回归方程

    我已经在 iris 数据集上运行了逻辑回归 直到这段代码我才清楚 之后我想形成方程来对测试数据进行评分 该怎么做 我知道我可以使用预测函数对测试进行评分 但是我想查看参数和各自的权重 能否请你帮忙 from sklearn import d
  • 如何使用 lstm 执行多类多输出分类

    I have multiclass multioutput classification see https scikit learn org stable modules multiclass html https scikit lear
  • scikit-learn LinearRegression 的意外交叉验证分数

    我正在尝试学习使用 scikit learn 来完成一些基本的统计学习任务 我认为我已经成功创建了适合我的数据的线性回归模型 X train X test y train y test cross validation train test
  • 如何在 keras 模型中使用张量流度量函数?

    使用Python 3 5 2张量流RC 1 1 我正在尝试在 keras 中使用张量流度量函数 所需的功能接口似乎是相同的 但调用 import pandas import numpy import tensorflow contrib k
  • 尝试校准keras模型

    我正在尝试通过 Sklearn 实现来校准我的 CNN 模型CalibratedClassifierCV 尝试将其包装为KerasClassifier并覆盖预测功能但没有成功 有人可以说我做错了什么吗 这是模型代码 def create m
  • 使用 array.reshape(-1, 1) 重塑数组

    我有一个名为的数据框data我试图从中找出任何异常价格 数据帧头如下所示 Date Last Price 0 29 12 2017 487 74 1 28 12 2017 422 85 2 27 12 2017 420 64 3 22 12
  • 深度学习和传统的人工神经网络机器学习有什么区别? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 您能否简要解释一下两者之间的差异深度学习 https developer nvidia com deep learning和利用神经网
  • 为什么反向传播神经网络中必须使用非线性激活函数? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我一直在阅读一些有关神经网络的内容 并且了解单层神经网络的一般原理 我理解需要额外的层 但为什么要使用非线性激活函数 这个问题后面跟着这个
  • 训练多维高斯过程回归的超参数

    这是一个简单的代码工作实现 我在 Python 的 scikit learn 中使用高斯过程回归 GPR 和二维输入 即网格x1 and x2 和一维输出 y import numpy as np from matplotlib impor
  • 在逻辑回归中使用排名数据

    当我努力学习这些概念时 我将对此给予最大赏金 我正在尝试在逻辑回归中使用一些排名数据 我想使用机器学习来制作一个简单的分类器来判断网页是否 好 这只是一个学习练习 所以我不期望有很好的结果 只是希望学习 过程 和编码技术 我已将数据放入 c
  • sklearn:如何在 sknn 中重置回归器或分类器对象

    我定义了一个回归器 如下所示 nn1 Regressor layers Layer Rectifier units 150 Layer Rectifier units 100 Layer Linear regularize L2 dropo
  • 如何解决错误:PyTorch 中预期输入批量大小与目标批量大小不匹配?

    我尝试通过 PyTorch 在 CIFAR10 数据集上创建逻辑模型 但是我收到错误 ValueError 预期输入batch size 900 与目标batch size 300 匹配 我认为正在发生的事情是 3 100 是 300 所以
  • 地图应用的聚类算法

    我正在研究地图上的聚类点 纬度 经度 对于快速且可扩展的合适算法有什么建议吗 更具体地说 我有一系列纬度 经度坐标和一个地图视口 我正在尝试将靠近的点聚集在一起以消除混乱 我已经有了解决问题的方法 see here http bouldr
  • Scikit - 结合比例和网格搜索

    我是 scikit 的新手 在结合数据规模和网格搜索时遇到两个小问题 高效洁牙机 考虑使用 Kfolds 进行交叉验证 我希望每次我们在 K 1 折叠上训练模型时 数据缩放器 例如使用 preprocessing StandardScale
  • ValueError:未知标签类型:“连续”

    我看过其他帖子讨论过这个问题 但其中任何一个都可以帮助我 我在 Windows x6 机器上使用带有 Python 3 6 0 的 jupyter 笔记本 我有一个很大的数据集 但我只保留其中的一部分来运行我的模型 这是我使用的一段代码 d
  • 提高SVM分类器准确率的技术

    我正在尝试使用 UCI 数据集构建一个分类器来预测乳腺癌 我正在使用支持向量机 尽管我尽最大努力提高分类器的准确性 但仍无法超过 97 062 我尝试过以下方法 1 Finding the most optimal C and gamma
  • 如何在 python 中使用 libSVM 计算精度、召回率和 F 分数

    我想计算precision recall and f score using libsvm在Python中 但我不知道如何 我已经发现这个网站 http www csie ntu edu tw cjlin libsvmtools eval
  • 不使用 graphviz/web 可视化决策树

    由于某些限制 我无法使用 graphviz webgraphviz com 可视化决策树 工作网络与另一个世界是封闭的 问题 是否有一些替代实用程序或一些 Python 代码用于至少非常简单的可视化可能只是决策树的 ASCII 可视化 py
  • PyTorch 中的后向函数

    我对 pytorch 的后向功能有一些疑问 我认为我没有得到正确的输出 import numpy as np import torch from torch autograd import Variable a Variable torch

随机推荐