मैं लगभग 100 रिकॉर्ड (अनलॉक) का नमूना क्लस्टर कर रहा हूं और विभिन्न हाइपरपेरामीटरों के साथ क्लस्टरिंग एल्गोरिदम का मूल्यांकन करने के लिए ग्रिड_सार्च का उपयोग करने की कोशिश कर रहा हूं। मैं silhouette_score
का उपयोग कर स्कोरिंग कर रहा हूं जो ठीक काम करता है।विज्ञान-सीखने में क्लस्टरिंग के हाइपरपेरामीटर मूल्यांकन के लिए ग्रिड खोज
मेरे यहाँ समस्या यह है कि मैं GridSearchCV
/RandomizedSearchCV
के पार सत्यापन पहलू का उपयोग करने की जरूरत नहीं है, लेकिन मैं एक साधारण GridSearch
/RandomizedSearch
नहीं मिल रहा। मैं अपना खुद का लिख सकता हूं लेकिन ParameterSampler
और ParameterGrid
ऑब्जेक्ट्स बहुत उपयोगी हैं।
मेरे अगले कदम BaseSearchCV
उपवर्ग और अपने _fit()
विधि लागू करने के लिए होगा, लेकिन सोचा था कि यह वहाँ cv
पैरामीटर के लिए कुछ पारित करके उदाहरण के लिए यह करने के लिए, एक सरल तरीका है पूछ लायक था?
def silhouette_score(estimator, X):
clusters = estimator.fit_predict(X)
score = metrics.silhouette_score(distance_matrix, clusters, metric='precomputed')
return score
ca = KMeans()
param_grid = {"n_clusters": range(2, 11)}
# run randomized search
search = GridSearchCV(
ca,
param_distributions=param_dist,
n_iter=n_iter_search,
scoring=silhouette_score,
cv= # can I pass something here to only use a single fold?
)
search.fit(distance_matrix)
आप में पार सत्यापन (या ग्रिड-सर्च) नहीं करते में की जरूरत है * असुरक्षित * डेटा खनन। बस के-साधनों के 10 रनों की गणना करें, और सर्वोत्तम का उपयोग करें। –
स्पष्ट रूप से आप क्रॉस-सत्यापन नहीं करते हैं, लेकिन ग्रिड खोज को उचित स्कोरिंग मीट्रिक क्यों नहीं दिया जाता है जैसे सिल्हूट स्कोर? –
इसके अलावा, केमन्स यहां सिर्फ एक उदाहरण है। मैं कई अलग-अलग एल्गोरिदम और उनके हाइपरपेरामीटरों का परीक्षण करना चाहता हूं। –