如何实现朴素贝叶斯算法?

时间:2021-01-03 07:48:42

标签: python naivebayes

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

cigdata = pd.read_csv ('cigs.csv')
print(cigdata.head())
cigdata.shape
#Changing pandas dataframe to numpy array
X = cigdata.iloc[:,:8].values
y = cigdata.iloc[:,8:9].values
#Normalizing the data
from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X = sc.fit_transform(X)

我正在尝试标准化我的数据以实现朴素贝叶斯算法,但它不起作用,因为我的数据集中有字符串值并且它显示如下内容:

<块引用>

valuetype 错误字符串值无法转换为浮点数。

1 个答案:

答案 0 :(得分:0)

您可以使用 LabelEncoder 中的 sklearn

在您的情况下,分类列是索引 [0, 1, 6, 7, 8] 您可以使用以下代码对它们进行编码:

from sklearn.preprocessing import LabelEncoder 

# ....

cat_index = [0, 1, 6, 7, 8]
cigdata.iloc[:, cat_index] = cigdata.iloc[:, cat_index].apply(LabelEncoder().fit_transform)

把它放在 read_csv 之后,你应该得到一个只包含数值的数据框。