Sklearn算法需要一个特征和一个标签来学习。
我有一个CSV文件,其中包含一些数据。这些数据实际上是来自黑客地球网站的一个挑战,在这个网站中,参与者需要创建一种学习算法,从来自附属网络的大量个人数据和他们的广告点击性能中学习,然后预测联盟网络中其他个人的未来表现,从而使公司能够优化他们的广告表现。
这些数据的特点包括id、日期、站点、发盘、类别、商人、国家代码、浏览器类型、设备类型和广告点击次数。
因此,我的计划是使用前7个信息作为我的特点和广告点击作为标签。不幸的是,国家代码,浏览器和设备信息是文本(谷歌Chrome,桌面),而不是整数,可以转化为数组。
Q1:有没有一种方法可以让滑雪板不仅接受numpy数组,还可以接受单词作为特性?我支持使用矢量器吗?如果是的话,我会怎样做呢?如果没有,我是否可以将这些措辞数据替换成数字(Google被1替换,firefox由2代替),但它仍然可以工作吗?(我使用的是朴素贝叶斯算法)
Q2:朴素贝叶斯算法是否适合这个任务?由于这一竞争要求参与者创建一个程序,预测个人在联盟网络中点击广告的概率,我认为朴素贝叶斯最适合。
培训数据:https://drive.google.com/open?id=1vWdzm0uadoro3WcpWmJ0SVEebeaSsHvr
测试数据:qR6EGUeGBQl
我乱七八糟的代码和对这个挑战的可怕尝试,我不认为会有多大帮助:
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])发布于 2017-12-15 02:41:03
对Question1的回答是:不。Sklearn只适用于数值数据。所以你需要把你的文字转换成数字。
现在,要将文本转换为数字,可以采用多种方法。首先,就像你说的,给他们分配号码。但是,如果文本数据显示与分配给它们的数字类似的顺序,则需要考虑这些数据。在这种情况下,通常使用一个热编码。请参阅下面的scikit-学习文档:- http://scikit-learn.org/stable/modules/preprocessing.html#encoding-categorical-features
对问题2的回答:这取决于手头的数据和任务。
没有一个单一的算法能够最优地处理每一种类型的数据。
- [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)
- [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)
希望这能消除你的疑虑。确保浏览一下科学工具包--学习文档和示例:
他们是外面最好的人之一。
https://stackoverflow.com/questions/47817107
复制相似问题