如何在scikit中加载CSV数据并将其用于朴素贝叶斯分类

时间:2013-08-23 06:12:07

标签: python csv scikit-learn scikits

尝试加载自定义数据以在Scikit中执行NB分类。需要帮助将样本数据加载到Scikit然后执行NB。如何为目标加载分类值。

使用相同的数据进行训练和测试,或使用完整的训练集进行测试。

Sl No,Member ID,Member Name,Location,DOB,Gender,Marital Status,Children,Ethnicity,Insurance Plan ID,Annual Income ($),Twitter User ID
1,70000001,Fly Dorami,New York,39786,M,Single,,Asian,2002,0,548900028
2,70000002,Bennie Ariana,Pennsylvania,6/24/1940,F,Single,,Caucasian,2002,66313,
3,70000003,Brad Farley,Pennsylvania,12001,F,Married,4,African American,2002,98444,
4,70000004,Daggoo Cece,Indiana,14032,F,Married,2,Hispanic,2001,41896,113481472.

1 个答案:

答案 0 :(得分:12)

以下内容应该让你开始,你需要大熊猫和numpy。您可以将.csv加载到数据框中并使用它输入到模型中。你们都需要定义目标(0表示负数,1表示正数,假设二进制分类),具体取决于你要分离的内容。

from sklearn.naive_bayes import GaussianNB
import pandas as pd
import numpy as np

# create data frame containing your data, each column can be accessed # by df['column   name']
df = pd.read_csv('/your/path/yourFile.csv')

target_names = np.array(['Positives','Negatives'])

# add columns to your data frame
df['is_train'] = np.random.uniform(0, 1, len(df)) <= 0.75
df['Type'] = pd.Factor(targets, target_names)
df['Targets'] = targets

# define training and test sets
train = df[df['is_train']==True]
test = df[df['is_train']==False]

trainTargets = np.array(train['Targets']).astype(int)
testTargets = np.array(test['Targets']).astype(int)

# columns you want to model
features = df.columns[0:7]

# call Gaussian Naive Bayesian class with default parameters
gnb = GaussianNB()

# train model
y_gnb = gnb.fit(train[features], trainTargets).predict(train[features])