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

sat*_*ohn 5 python csv scikits scikit-learn

尝试加载自定义数据以在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.
Run Code Online (Sandbox Code Playgroud)

rlm*_*mlr 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])
Run Code Online (Sandbox Code Playgroud)