python - 是否需要在 scikit-learn 中对训练数据进行编码的输入进行编码?
问题描述
我是 python 新手。我已经在分类数据上训练了我的算法强文本,并且在训练期间我遇到了一些解决方案的错误。我看到它需要使用 a并且我使用了它。至此,问题解决,算法训练完成。LabelEncoder
我想知道为什么它不接受作为原始数据的字符串(编码之前)。 有没有办法将字符串字符提供给算法进行预测? 这是我的代码:
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'
. 是否有任何机制可以提供 astring
作为输入?
解决方案
问题是您LabelEncoder
用于对训练数据进行编码,但在运行model2.predict()
在运行 predict 之前尝试使用 LabelEncoder 对数据进行编码
data_encoded = le.transform([['980','1','UOS']])
model2.predict(data_encoded)
推荐阅读
- mysql - MySQL 错误 1264 超出第 1 行列“Telnum”的值
- c++ - 我可以从取消引用`new`的返回值初始化引用吗?
- swift - 使用 IGListKit 或 UICollectionView 每行多个部分
- .net - 如何在 VS2017(或 VS2019)中使用新的 CSPROJ 格式创建 .NET 程序
- flutter - 如何使用 pushNamed 传递的参数?
- c++ - C++ 文件逐行读取
- json - JOLT Spec 从一组类似名称的键中构建数组
- mysql - Mysql 使用硬编码数据
- jquery - 图像在子模态选项卡中不可见 - MVC 5 .NET 中的模态内模态
- python - 如何在 Python 中截取屏幕截图?