【问题标题】:scikit-learn preperationscikit-learn 准备
【发布时间】:2015-08-24 18:12:54
【问题描述】:

我正在尝试使用 scikit-learn 包进行半监督分类,我有一个包含类、实例和特性的文件,但我不确定如何为 scikit-learn 准备此文件。你能提供一些文件准备的指导方针吗?本教程仅提供从机器学习存储库上传准备好的数据集的说明。谢谢!

【问题讨论】:

  • 你先google了吗?你读过文档吗?试试这个:scikit-learn.org/stable/tutorial
  • 好的,这里有个提示。谷歌一个叫做“RTFM”的东西。之后谷歌“sklearn 中的特征提取”和“sklearn 中的特征转换”。在那之后回来更具体的问题。这太模糊了。如果您已经提取了特征(因为问题中并不清楚),您需要做的就是 clf.fit() 和 clf.predict()
  • 我不使用文本数据,该手册仅指示文本数据的解决方案。我的问题是关于 scikit learn 的输入文件。例如,这些示例使用数据虹膜。我的数据集是一个 txt,其中 50 列对应于数字特征,2000 列对应于样本,并且有一列带有类。数字 = datasets.load_digits()。这用于数据包,但我的情况不是这样,这就是我提出问题的原因。谢谢
  • 请修改问题描述数据格式。

标签: python machine-learning scikit-learn


【解决方案1】:

Scikit-learn 直接支持特殊的面向学习的输入格式,特别是 SVMLight。但一般来说,它的输入是一个 numpy 数组(密集时),可以使用 SciPy 堆栈中的其他工具从各种数据源生成,尤其是scipy.io,在文本文件的情况下更贴切的是列,Pandas IO tools。您可能会使用pandas.read_csv,然后从功能集中删除目标类列。

【讨论】:

  • 感谢乔因提供的信息。我能够使用以下参数生成一个 numpy 数组,但我不确定这是否是合适的设置,是否有必要更改此参数? thedata = np.genfromtxt('unclassSeq_s.txt',skip_header=0,skip_footer=0,delimiter=',',dtype='float32',filling_values=0,names=['first','second','third' , 'last']) # 列名 print("\n 从 csv 文件打印数据。\n") for row in thedata: print(row)
  • 这将产生一个一维 numpy 结构数组。您需要一个用于 scikit-learn 输入的 2d 非结构数组,以及一个用于您的类的单独数组。您可以从结构数组A 中提取它,例如X = A[['first', 'second', 'third']]y = A['last']。但 Pandas 在处理这类问题时往往更加友好。
猜你喜欢
  • 2015-04-07
  • 2014-05-17
  • 2017-05-26
  • 2016-08-12
  • 2022-01-08
  • 1970-01-01
  • 2016-07-15
  • 2019-01-14
  • 2012-12-06
相关资源
最近更新 更多