【发布时间】:2016-05-14 00:10:42
【问题描述】:
我对使用 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) 中,但在这一点上我被卡住了。我不知道下一步该去哪里。我阅读了 pandas 和 sklearn 的文档,但它们什么也没告诉我。 您能否通过提供指导和可能的示例来帮助我。
【问题讨论】:
-
data.txt 中的行的名称是什么
-
那么你试过
X = np.array([[-0.864810, 0.101410], [-0.195770, 0.221670], ...)和y = np.array([1, 1, ...])吗? -
@Farseer,数据以没有行名的数字开头。
标签: python pandas machine-learning scikit-learn