Đây không nhất thiết là một câu trả lời cho câu hỏi của bạn. Chỉ cần suy nghĩ chung về việc xác thực chéo số lượng cây quyết định trong một khu rừng ngẫu nhiên.
Tôi thấy rất nhiều người ở kaggle và stackexchange xác nhận chéo số lượng cây trong một khu rừng ngẫu nhiên. Tôi cũng đã hỏi một vài đồng nghiệp và họ nói với tôi rằng điều quan trọng là phải xác thực chéo để tránh tình trạng thừa.
Điều này không bao giờ có ý nghĩa với tôi. Vì mỗi cây quyết định được đào tạo độc lập, việc thêm nhiều cây quyết định sẽ giúp cho bộ đồng phục của bạn ngày càng mạnh mẽ hơn.
.
Tôi đã làm một thí nghiệm đơn giản:
from sklearn.datasets import load_digits
from sklearn.ensemble import RandomForestClassifier
from sklearn.grid_search import GridSearchCV
import numpy as np
import matplotlib.pyplot as plt
plt.ioff()
df = load_digits()
X = df['data']
y = df['target']
cv = GridSearchCV(
RandomForestClassifier(max_depth=4),
{'n_estimators': np.linspace(10, 1000, 20, dtype=int)},
'accuracy',
n_jobs=-1,
refit=False,
cv=50,
verbose=1)
cv.fit(X, y)
scores = np.asarray([s[1] for s in cv.grid_scores_])
trees = np.asarray([s[0]['n_estimators'] for s in cv.grid_scores_])
o = np.argsort(trees)
scores = scores[o]
trees = trees[o]
plt.clf()
plt.plot(trees, scores)
plt.xlabel('n_estimators')
plt.ylabel('accuracy')
plt.savefig('trees.png')
plt.show()
Tôi không nói rằng bạn đang phạm phải ngụy biện này về việc nghĩ rằng nhiều cây có thể gây ra tình trạng thừa. Bạn rõ ràng không phải vì bạn đã yêu cầu một giới hạn thấp hơn. Đây chỉ là một cái gì đó đã được tôi làm phiền trong một thời gian, và tôi nghĩ rằng điều quan trọng là phải ghi nhớ.
(Phụ lục: Các yếu tố của học thống kê thảo luận điều này ở trang 596 và đồng ý với tôi về điều này. «Chắc chắn là việc tăng B [B = số cây] không làm cho chuỗi rừng ngẫu nhiên vượt quá». Nói cách khác, vì giới hạn này có thể vượt quá dữ liệu ». Nói cách khác, vì các siêu âm khác có thể dẫn đến quá mức, tạo ra một mô hình mạnh mẽ không cứu bạn khỏi tình trạng quá mức. Bạn phải chú ý khi xác thực chéo các siêu đường kính khác của bạn. )
Để trả lời câu hỏi của bạn, việc thêm cây quyết định sẽ luôn có lợi cho nhóm của bạn. Nó sẽ luôn làm cho nó ngày càng mạnh mẽ hơn. Nhưng, tất nhiên, không rõ liệu sự giảm phương sai 0,00000001 có xứng đáng với thời gian tính toán hay không.
Do đó, câu hỏi của bạn, theo tôi hiểu, là bằng cách nào đó bạn có thể tính toán hoặc ước tính số lượng cây quyết định để giảm phương sai lỗi xuống dưới một ngưỡng nhất định.
Tôi rất nghi ngờ nó. Chúng tôi không có câu trả lời rõ ràng cho nhiều câu hỏi lớn trong khai thác dữ liệu, những câu hỏi ít cụ thể hơn như thế. Như Leo Breiman (tác giả của các khu rừng ngẫu nhiên) đã viết, có hai nền văn hóa trong mô hình thống kê và rừng ngẫu nhiên là loại mô hình mà ông nói có ít giả định, nhưng cũng rất cụ thể về dữ liệu. Đó là lý do tại sao, ông nói, chúng ta không thể dùng đến thử nghiệm giả thuyết, chúng ta phải đi với xác nhận chéo vũ lực.