如何解决如何实现朴素贝叶斯算法?
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 错误字符串值无法转换为浮点数。
解决方法
您可以使用 LabelEncoder
中的 sklearn
在您的情况下,分类列是索引 [0,1,6,7,8]
您可以使用以下代码对它们进行编码:
from sklearn.preprocessing import LabelEncoder
# ....
cat_index = [0,8]
cigdata.iloc[:,cat_index] = cigdata.iloc[:,cat_index].apply(LabelEncoder().fit_transform)
把它放在 read_csv
之后,你应该得到一个只包含数值的数据框。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。