Tôi đang cố gắng làm điều gì đó rất giống với previous question nhưng tôi gặp lỗi. Tôi có một dataframe gấu trúc chứa các tính năng và nhãn Tôi cần phải làm một số chuyển đổi để gửi các tính năng và biến nhãn vào một đối tượng học máy:Chuyển đổi mảng chuỗi (danh mục) thành mảng int từ một khung dữ liệu gấu trúc
import pandas
import milk
from scikits.statsmodels.tools import categorical
sau đó tôi có:
trainedData=bigdata[bigdata['meta']<15]
untrained=bigdata[bigdata['meta']>=15]
#print trainedData
#extract two columns from trainedData
#convert to numpy array
features=trainedData.ix[:,['ratio','area']].as_matrix(['ratio','area'])
un_features=untrained.ix[:,['ratio','area']].as_matrix(['ratio','area'])
print 'features'
print features[:5]
##label is a string:single, touching,nuclei,dust
print 'labels'
labels=trainedData.ix[:,['type']].as_matrix(['type'])
print labels[:5]
#convert single to 0, touching to 1, nuclei to 2, dusts to 3
#
tmp=categorical(labels,drop=True)
targets=categorical(labels,drop=True).argmax(1)
print targets
Sản lượng console mang đầu tiên:
features
[[ 0.38846334 0.97681855]
[ 3.8318634 0.5724734 ]
[ 0.67710876 1.01816444]
[ 1.12024943 0.91508699]
[ 7.51749674 1.00156707]]
labels
[[single]
[touching]
[single]
[single]
[nuclei]]
tôi gặp thì báo lỗi sau:
Traceback (most recent call last):
File "/home/claire/Applications/ProjetPython/projet particule et objet/karyotyper/DAPI-Trainer02-MILK.py", line 83, in <module>
tmp=categorical(labels,drop=True)
File "/usr/local/lib/python2.6/dist-packages/scikits.statsmodels-0.3.0rc1-py2.6.egg/scikits/statsmodels/tools/tools.py", line 206, in categorical
tmp_dummy = (tmp_arr[:,None]==data).astype(float)
AttributeError: 'bool' object has no attribute 'astype'
Có thể chuyển đổi loại danh mục 'loại' trong khung dữ liệu thành int không? 'loại' có thể lấy giá trị 'đơn', 'chạm', 'hạt nhân', 'bụi' và tôi cần chuyển đổi với giá trị int như 0, 1, 2, 3.
Tôi nghĩ rằng lớp Yếu tố đã được thay đổi kể từ khi bài viết này được thực hiện. Khi tôi cố gắng chạy mã bạn đã đăng, tôi nhận được thông báo lỗi rằng Factor mong đợi 3 đối số và 2 đối số đã được đưa ra. Nhìn vào tài liệu cho Factor, đây là những gì constructor mong đợi: {{{Factor (self, labels, levels, name = None)}}}. Từ bài viết của bạn, tôi giả định rằng các nhãn và các cấp đã được tự động tính toán từ chuỗi, nhưng có vẻ như Factor hy vọng chúng sẽ được chuyển vào Factor. – CadentOrange
Yếu tố đã được đổi tên thành Phân loại trong gấu trúc 0.8.0 (6/2012) – smci