试图建立一个树形分类器与Scikit包,但我有问题得到正确的格式为分类器输入...
import pandas as pd
import numpy as np
from sklearn.tree import DecisionTreeClassifier
from sklearn.model_selection import train_test_split
#import dataset
data = pd.read_table('Data/Breast.csv')
data.head(10)
X=data[['clump_thickness','shape_uniformity','marginal_adhesion','epithelial_size','bare_nucleoli','bland_chromatin','normal_nucleoli','mitoses']]
X_train = X.values
Y = data[['class']]
Y_train = Y.values
model = DecisionTreeClassifier()
model
model.fit(X_train,Y_train)
但我收到以下错误消息:
()中的ValueError回溯(最近一次调用)----
C:\用户\托比亚斯\appdata\本地\程序\python\python36\lib\site-包\sk学\树\tree.py适合(自我,X,y,sample_weight,check_input,X_idx_sorted)788sample_weight=sample_weight,789check_input=check_input,-
c:\users\tobias\appdata\local\programs\python36\lib\site packages\sklearn\tree\tree。py拟合(自身、X、y、样本重量、检查输入、X\U idx\U排序)114随机状态=检查随机状态(自身、随机状态)115如果检查输入:--
c:\users\tobias\appdata\local\programs\python36\lib\site packages\sklearn\utils\validation。检查数组中的py(数组、接受稀疏、数据类型、顺序、复制、强制所有有限、确保2d、允许nd、确保最小样本、确保最小特征、警告数据类型、估计器)431强制所有有限)432其他:--
ValueError:无法将字符串转换为浮点:'?'
我做错了什么?我可以看到X.values的类型是dType=Object。。。
谢谢
尝试此操作以确保传递的是整数,如果集合包含字符串或分类值,或显示其他问题,我将使用解决方案编辑此答案:
cols = ['clump_thickness','shape_uniformity','marginal_adhesion','epithelial_size','bare_nucleoli','bland_chromatin','normal_nucleoli','mitoses']
for col in cols:
data[col] = data[col].astype('int')
X.train = data[cols]
Y.train = data[['class]]
model = DecissionTreeClassifier()
model.fit(X_train,Y_train)