首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自.csv的Sklearn Naive Bayes GaussianNB

来自.csv的Sklearn Naive Bayes GaussianNB
EN

Stack Overflow用户
提问于 2021-08-16 19:57:46
回答 1查看 214关注 0票数 1

我对sklearn有点问题。当我使用".fit()“训练它时,它向我显示ValueError "ValueError: code‘t convert string to float:'Casado'”This is my code:“

代码语言:javascript
复制
from sklearn.naive_bayes import GaussianNB
import pandas as pd



# 1. Create Naive Bayes classifier:
gaunb = GaussianNB()

# 2. Create dataset:
dataset = pd.read_csv("archivos_de_datos/Datos_Historicos_Clientes.csv")
X_train = dataset.drop(["Compra"], axis=1) #Here I removed the last column "Compra"
Y_train = dataset["Compra"] #This one only consists of that column "Compra"
print("X_train: ","\n", X_train)
print("Y_train: ","\n", Y_train)
dataset2 = pd.read_csv("archivos_de_datos/Nuevos_Clientes.csv")
X_test = dataset2.drop("Compra", axis=1)

print("X_test: ","\n", X_test)

# 3. Train classifier with dataset:
gaunb = gaunb.fit(X_train, Y_train) #Here shows "ValueError: could not convert string to float: 'Casado'"


# 4. Predict using classifier:
prediction = gaunb.predict(X_test)

print("PREDICTION: ",prediction)
"""

我使用的数据集是一个.csv文件,它看起来像这样(但有更多的行):

代码语言:javascript
复制
IdCliente,EstadoCivil,Profesion,Universitario,TieneVehiculo,Compra
1,Casado,Empresario,Si,No,No
2,Casado,Empresario,Si,Si,No
3,Soltero,Empresario,Si,No,Si

我正在尝试训练它以确定(使用测试数据集)最后一列是Yes还是No (是或否)

我很感谢你的帮助,我显然是个新手,我不明白我到底做错了什么

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-16 20:29:51

就像Lavin提到的那样,我会使用一个onehotencoder来使是或否成为一个数值。像这样的模型不能处理分类数据。

Onehotencoder用于处理二进制数据,例如yes/no,male/female,而label encoder用于具有两个以上值的分类数据,ei,国家名称。

它看起来像这样,但是,您必须对所有分类数据执行此操作,而不仅仅是y列,并对不是二进制的列使用标签编码器(超过2个变量-例如,可能是Estadio Civil)。

此外,我建议删除任何对模型没有贡献的因变量,因为即时客户端ID听起来可能不会在确定因变量时增加任何价值。这是特定于上下文的,但需要牢记。

代码语言:javascript
复制
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder
ct = ColumnTransformer(transformers=[('encoder', OneHotEncoder(), [Insert column number for your df])], remainder='passthrough')
X = np.array(ct.fit_transform(X))

对于文档:

https://scikit-learn.org/stable/modules/generated/sklearn.preprocessing.OneHotEncoder.html

更多信息:https://contactsunny.medium.com/label-encoder-vs-one-hot-encoder-in-machine-learning-3fc273365621#:~:text=What%20one%20hot%20encoding%20does,which%20column%20has%20what%20value.&text=So%2C%20that's%20the%20difference%20between%20Label%20Encoding%20and%20One%20Hot%20Encoding

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68808555

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档