首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否需要对输入进行编码--了解在哪里编码经过训练的数据?

是否需要对输入进行编码--了解在哪里编码经过训练的数据?
EN

Stack Overflow用户
提问于 2020-02-07 15:40:28
回答 1查看 126关注 0票数 0

我对蟒蛇很陌生。我在分类数据上训练了我的算法强大的文本,在训练中我遇到了一些解决方案的错误。我看到它需要使用LabelEncoder,所以我使用了它。从而解决了问题,完成了算法的训练。

我想知道为什么它不接受字符串是原始数据(在编码之前)。有什么方法可以给字符串字符的预测算法?这是我的代码:

代码语言:javascript
复制
import pandas as pd
import sklearn
from sklearn.preprocessing import LabelEncoder
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import NearestNeighbors

df=pd.read_csv(r'E:\Study\FYP Data\FYP\datasets\alluni.csv', encoding= 'unicode_escape')
df.head()


Obtained Marks   Intermediate   Bachelor    Institute   %age
0   1001.0  FSc. Pre Medical    DPT          UOS      91.000000
1   1001.0  FSc. Pre Medical    DPT          UOS      91.000000
2   1010.0  FSc. Pre Medical    DPT          UOS      91.818182
3   1000.0  FSc. Pre Medical    DPT          UOS      90.909091
4   1000.0  FSc. Pre Medical    DPT          UOS      90.909091

le = LabelEncoder()
df['Intermediate'] = le.fit_transform(df.Intermediate.values)
df['Intermediate'] = le.fit_transform(df['Intermediate'])

le = LabelEncoder()
df['Institute'] = le.fit_transform(df.Institute.values)
df['Institute'] = le.fit_transform(df['Institute'])
df.head()

Obtained  Marks Intermediate    Bachelor    Institute
0   1001.0          16             DPT        7
1   1001.0          16             DPT        7
2   1010.0          16             DPT        7
3   1000.0          16             DPT        7
4   1000.0          16             DPT        7

df.drop(['%age'],axis=1,inplace=True)
X=df.drop('Bachelor',axis=1)
y=df['Bachelor']
X_train,X_text,y_train,y_test=train_test_split(X,y,test_size=0.2)

model2=DecisionTreeClassifier()
model2.fit(X_train,y_train)

model2.predict([['980','1','UOS']])

当我使用这段代码时,它显示了错误:ValueError: could not convert string to float: 'UOS'。是否有任何机制将string作为输入?

EN

回答 1

Stack Overflow用户

发布于 2020-02-07 16:10:17

问题是您正在使用LabelEncoder对您的培训数据进行编码,但是在运行model2.predict()时仍在发送原始数据

运行“预测”之前,尝试使用LabelEncoder对数据进行编码。

代码语言:javascript
复制
data_encoded = le.transform([['980','1','UOS']])
model2.predict(data_encoded)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60116650

复制
相关文章

相似问题

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