我试图在地震转储kNN上运行一个数据集分类器,但是当我试图对shift属性的标签进行编码时,我会得到错误的值。以下是代码:
col_names = ['seismic', 'seismoacoustic', 'shift',
'genergy', 'gpuls', 'gdenergy', 'gdpuls',
'ghazard', 'nbumps', 'nbumps2', 'nbumps3',
'nbumps4', 'nbumps5', 'nbumps6', 'nbumps7',
'nbumps89', 'energy', 'maxenergy', 'class']
# Import
sbumps_ds = pd.read_csv('SeismicBumpsDataset.csv', names = col_names)
from sklearn.preprocessing import LabelEncoder
labelenc = LabelEncoder()
# Encode class names to numbers
#sbumps_ds['seismic'] = labelenc.fit_transform(sbumps_ds.seismic)
#sbumps_ds['seismoacoustic'] = labelenc.fit_transform(sbumps_ds.seismoacoustic)
sbumps_ds['shift'] = labelenc.fit_transform(sbumps_ds.shift)
#sbumps_ds['ghazard'] = labelenc.fit_transform(sbumps_ds.ghazard)
#sbumps_ds['shift'] = sbumps_ds.shift.map({'W' : 0, 'N' : 1})
#sbumps_ds['seismic'] = sbumps_ds.seismic.map({'a':0, 'b':1, 'c':2, 'd': 3})所有属性的形状是相等的。以下是错误:
raise ValueError("bad input shape {0}".format(shape))
ValueError: bad input shape ()此外,当我试图映射属性值时,会得到以下错误:
sbumps_ds['shift'] = sbumps_ds.shift.map({'W' : 0, 'N' : 1})
AttributeError: 'function' object has no attribute 'map'引发的错误仅为该属性的。如果我更改shift的名称,分类器就能工作。
发布于 2015-11-14 13:51:07
尝试将其更改为sbumps_ds['shift'].map(...)。
sbumpt_ds.shift是dataframes的一种方法,因此它返回该函数,而不是返回名为"shift"的列。
https://stackoverflow.com/questions/33706354
复制相似问题