Nói rằng tôi có một tập dữ liệu như thế này:Rắc rối tìm hiểu đầu ra từ rừng ngẫu nhiên scikit
5.9;0.645;0.12;2;0.075;32;44;0.99547;3.57;0.71;10.2;5
6;0.31;0.47;3.6;0.067;18;42;0.99549;3.39;0.66;11;6
nơi 11 cột 1 cho thấy tính năng (axit, clorua, vv) và cột cuối cùng chỉ ra những đánh giá được đặt cho mục (ví dụ như 5 hoặc 6.)
Tập dữ liệu được đào tạo như sau:
target = [x[11] for x in dataset]
train = [x[0:11] for x in dataset]
rf = RandomForestClassifier(n_estimators=120, n_jobs=-1)
rf.fit(train, target)
predictions = rf.predict_proba(testdataset)
print predictions[0]
mà in cái gì đó như
[ 0. 0.01666667 0.98333333 0. 0. 0. ]
Bây giờ, tại sao nó không tạo ra một phân loại đơn lẻ, ví dụ như xếp hạng 5 hoặc 6?
Tài liệu cho biết "Xác suất lớp được dự đoán của mẫu đầu vào được tính như xác suất lớp được dự đoán trung bình của các cây trong rừng" mà tôi không hiểu.
Nếu bạn sử dụng
print rf.predict(testdataset[-1])
[ 6. 6. 6. 6. 6. 6. 6. 6. 6. 6. 6.]
It in một cái gì đó giống như bạn mong muốn - ít nhất là nó trông giống như xếp hạng - nhưng tôi vẫn không hiểu tại sao có một dự đoán cho mỗi tính năng và không phải là một dự đoán đơn tham gia tính đến tất cả các tính năng?
btw dữ liệu đến từ các tập dữ liệu rượu vang ở đây: http://www3.dsi.uminho.pt/pcortez/wine/ – Sofia
hình dạng của testdatasets là gì? –