首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SciKit--学习(Python)--创建我的数据集

SciKit--学习(Python)--创建我的数据集
EN

Stack Overflow用户
提问于 2015-06-25 16:05:37
回答 1查看 934关注 0票数 2

我已经安装了scikit-学习,我不知道如何使用它。我有一些数据如下:

代码语言:javascript
复制
{"Tiempo": 2.1,  "Brazos": "der", "Puntuacion ": 112, "Nombre": "Alguien1"},
{"Tiempo": 4.1, "Brazos": "izq", "Puntuacion ": 11, "Nombre": "Alguien2"},
{"Tiempo": 3.211,  "Brazos": "ambos","Puntuacion ": 1442, "Nombre": "Alguien3"}

我想在它们上使用一些分类器(比如SVM)。对于我在示例中看到的内容,我需要创建一个数据集。在示例中,他们总是使用一些预先确定的数据集作为“虹膜”。在我的例子中,我想我需要使用我的数据创建我自己的数据。为了做到这一点,我搜索并发现,我应该使用下一个函数来获取数据集的“特性”:

代码语言:javascript
复制
measurements = [
    {'city': 'Dubai', 'temperature': 33.},
    {'city': 'London', 'temperature': 12.},
    {'city': 'San Fransisco', 'temperature': 18.},
]

from sklearn.feature_extraction import DictVectorizer
vec = DictVectorizer()

vec.fit_transform(measurements).toarray()
array([[  1.,   0.,   0.,  33.],
       [  0.,   1.,   0.,  12.],
       [  0.,   0.,   1.,  18.]])

>>> vec.get_feature_names()
['city=Dubai', 'city=London', 'city=San Fransisco', 'temperature']

在我的例子中,在y与我的数据一起使用函数之后,我得到以下信息:

一旦我有了这个,我想我需要获得我的“样本”,然而,我不知道如何做。你能帮帮我吗?你能告诉我我的假设是否正确吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-25 17:03:52

你走在正确的轨道上。以您的数据为例。

代码语言:javascript
复制
from sklearn.feature_extraction import DictVectorizer

# your data
data = [{"Tiempo": 2.1,  "Brazos": "der", "Puntuacion ": 112, "Nombre": "Alguien1"}, {"Tiempo": 4.1, "Brazos": "izq", "Puntuacion ": 11, "Nombre": "Alguien2"}, {"Tiempo": 3.211,  "Brazos": "ambos","Puntuacion ": 1442, "Nombre": "Alguien3"}]

# make dummy for categorical variables
transformer = DictVectorizer()
transformer.fit_transform(data).toarray()

Out[168]: 
array([[  0.0000e+00,   1.0000e+00,   0.0000e+00,   1.0000e+00,   0.0000e+00,
          0.0000e+00,   1.1200e+02,   2.1000e+00],
       [  0.0000e+00,   0.0000e+00,   1.0000e+00,   0.0000e+00,   1.0000e+00,
          0.0000e+00,   1.1000e+01,   4.1000e+00],
       [  1.0000e+00,   0.0000e+00,   0.0000e+00,   0.0000e+00,   0.0000e+00,
          1.0000e+00,   1.4420e+03,   3.2110e+00]])

transformer.get_feature_names()

Out[170]: 
['Brazos=ambos',
 'Brazos=der',
 'Brazos=izq',
 'Nombre=Alguien1',
 'Nombre=Alguien2',
 'Nombre=Alguien3',
 'Puntuacion ',
 'Tiempo']

您可以看到,Out[168]中的每条记录都有8列,前3列是Brazos的分类虚拟(查看Out[170]中的特性名称),接下来的3条是Nombre的虚拟,最后两条是连续数值PuntuacionTiempo (这不需要任何转换和保留)。

代码语言:javascript
复制
# to continue to fit the model, transform your raw JSON data to numeric value
X = transformer.fit_transform(data)
# import your estimator
from sklearn.naive_bayes import BernoulliNB
estimator = BernoulliNB()
# then start to fit and predict
# NOTE! require your y labels
estimator.fit(X, y)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31055384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档