首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将CSV文件导入python,然后将其转换为numpy数组,然后将其提供给sklearn算法。

将CSV文件导入python,然后将其转换为numpy数组,然后将其提供给sklearn算法。
EN

Stack Overflow用户
提问于 2017-12-14 15:39:53
回答 1查看 608关注 0票数 0

Sklearn算法需要一个特征和一个标签来学习。

我有一个CSV文件,其中包含一些数据。这些数据实际上是来自黑客地球网站的一个挑战,在这个网站中,参与者需要创建一种学习算法,从来自附属网络的大量个人数据和他们的广告点击性能中学习,然后预测联盟网络中其他个人的未来表现,从而使公司能够优化他们的广告表现。

这些数据的特点包括id、日期、站点、发盘、类别、商人、国家代码、浏览器类型、设备类型和广告点击次数。

https://www.hackerearth.com/practice/algorithms/string-algorithm/string-searching/practice-problems/machine-learning/predict-ad-clicks/

因此,我的计划是使用前7个信息作为我的特点和广告点击作为标签。不幸的是,国家代码,浏览器和设备信息是文本(谷歌Chrome,桌面),而不是整数,可以转化为数组。

Q1:有没有一种方法可以让滑雪板不仅接受numpy数组,还可以接受单词作为特性?我支持使用矢量器吗?如果是的话,我会怎样做呢?如果没有,我是否可以将这些措辞数据替换成数字(Google被1替换,firefox由2代替),但它仍然可以工作吗?(我使用的是朴素贝叶斯算法)

Q2:朴素贝叶斯算法是否适合这个任务?由于这一竞争要求参与者创建一个程序,预测个人在联盟网络中点击广告的概率,我认为朴素贝叶斯最适合。

培训数据:https://drive.google.com/open?id=1vWdzm0uadoro3WcpWmJ0SVEebeaSsHvr

测试数据:qR6EGUeGBQl

我乱七八糟的代码和对这个挑战的可怕尝试,我不认为会有多大帮助:

代码语言:javascript
复制
from sklearn.naive_bayes import GaussianNB
import csv
import pandas as pd
import numpy as np
data = []
from numpy import genfromtxt
import pandas as pd
data = genfromtxt('smaller.csv', delimiter=',')
dat = pd.read_csv('smaller.csv', delimiter=',')
print(dat(siteid))

feature = []
label =[]
i = 1
j = 1

while i <17:
    feature.append(data[i][2:8])
    i += 1
while j <17:
    label.append(data[i][9])
    j += 1
clf = GaussianNB()

clf.fit(feature,label)
print(clf.predict([data[18][2:8]]))
print(data[18])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-15 02:41:03

对Question1的回答是:不。Sklearn只适用于数值数据。所以你需要把你的文字转换成数字。

现在,要将文本转换为数字,可以采用多种方法。首先,就像你说的,给他们分配号码。但是,如果文本数据显示与分配给它们的数字类似的顺序,则需要考虑这些数据。在这种情况下,通常使用一个热编码。请参阅下面的scikit-学习文档:- http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features

对问题2的回答:这取决于手头的数据和任务。

没有一个单一的算法能够最优地处理每一种类型的数据。

  • 大多数情况下,我们需要比较多个算法,看看什么能给我们的数据带来最好的结果。参见此示例:
代码语言:javascript
复制
- [http://scikit-learn.org/stable/auto\_examples/classification/plot\_classifier\_comparison.html#sphx-glr-auto-examples-classification-plot-classifier-comparison-py](http://scikit-learn.org/stable/auto_examples/classification/plot_classifier_comparison.html#sphx-glr-auto-examples-classification-plot-classifier-comparison-py)

  • 即使在一个单一的算法中,我们也需要检查各种参数值,调整这些值以获得最大的分数。这叫做网格搜索。参见此示例:
代码语言:javascript
复制
- [http://scikit-learn.org/stable/auto\_examples/model\_selection/plot\_grid\_search\_digits.html#sphx-glr-auto-examples-model-selection-plot-grid-search-digits-py](http://scikit-learn.org/stable/auto_examples/model_selection/plot_grid_search_digits.html#sphx-glr-auto-examples-model-selection-plot-grid-search-digits-py) 

希望这能消除你的疑虑。确保浏览一下科学工具包--学习文档和示例:

  • guide.html
  • examples/index.html

他们是外面最好的人之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47817107

复制
相关文章

相似问题

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