使用 Pandas 加载数据并使用 SkLearn 执行 LDA



我对python的数据挖掘很陌生。我需要对数据集实施线性判别分析,如下所示:

0.38769,0.50132,1
-0.86481,0.10141,1
-0.19577,0.22167,1
0.015502,0.1554,2

其中最后一个数字是标签。我使用sklearn和pandas来加载我的数据。我以这种方式加载它:

import numpy as np
import pandas as pd
import matplotlib as plt
from sklearn.lda import LDA
data = pd.read_csv('data.txt')
print data

因此,当我打印数据时,它看起来像这样:

0    -0.864810  0.101410  1
1    -0.195770  0.221670  1
2     0.015502  0.155400  1

我在sklearn官方网站上找到了LDA示例:

>>> import numpy as np
>>> from sklearn.lda import LDA
>>> X = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
>>> y = np.array([1, 1, 1, 2, 2, 2])
>>> clf = LDA()
>>> clf.fit(X, y)
LDA(n_components=None, priors=None, shrinkage=None, solver='svd',
  store_covariance=False, tol=0.0001)
>>> print(clf.predict([[-0.8, -1]]))

从这个例子中,我想我需要我的标签在单独的矩阵 (y) 中,但在这一点上我卡住了。我不知道下一步该去哪里。我读了熊猫和 sklearn 的文档,但他们什么也没告诉我。你能通过提供指导和可能的例子来帮助我吗?

这是你想做的吗?

data = pd.read_csv('data.txt',names=['X1','X2','Y'])
clf = LDA()
clf.fit(data.loc[:,'X1':'X2'].values, data.Y)