【发布时间】:2016-04-12 12:40:38
【问题描述】:
我正在尝试使用 sci-kitLearn 对从 json 文件解析的数据集执行机器学习。要在 sci-kitLearn 中使用数据集 API,我需要一个形状为 (n_samples * n_features) 的 Numpy 数组。
我将此数据编码为嵌套 Python 列表,其中列表大小为“X”(大量样本),每个元素的类型为 [int, float, int](3 个特征)。
例如:[ [int, float, int] , [int, float, int] , ... ]
我需要将其转换为一个 numpy 数组,该数组将与 sci-kitLearn 数据集一起正常工作,但我似乎无法创建一个支持每列不同类型的 numpy 数组。
Numpy 数组通常是同质的,但我很难相信数据集中不同类型的特征/列仍然是使用此 API 的缺陷,而且我已经看到使用不同类型特征的示例。
加载您自己的数据集的文档很差:http://scikit-learn.org/stable/tutorial/basic/tutorial.html。任何帮助创建 numpy 数组和/或使用数据集 API 将不胜感激。
我的代码贴在下面(尽管问题是接下来要做什么):
with open('bc_mp_at_blockchain.json') as data_:
mp_json = json.load(data_)
with open('bc_tv_at_blockchain.json') as data:
tv_json = json.load(data)
# access dictionary of length 1 that list of values
list_of_mpdata = mp_json['values']
list_of_tvdata = tv_json['values']
# ensure both sets of data start on the same day
assert ( list_of_mpdata[0]['x'] == list_of_tvdata[0]['x'] )
#concatenate lists as necessary
combined_list = []
for mp_dict, tv_dict in zip(list_of_mpdata, list_of_tvdata) :
combined_list.append([ mp_dict['x'], mp_dict['y'], tv_dict['y'] ])
# combined_list is now a list of [int,float,int] lists
【问题讨论】:
-
回答你关于特性的问题,我认为这并不重要——所有的值都可以用浮点数表示。您能否提供您尝试使用的 scikit-learn 方法的链接?
-
该函数接受
n_samples * n_features数组作为浮点数(我每天都使用这个)。 -
现在一切正常。完全的用户错误。我的错:|
标签: python arrays numpy dataset scikit-learn