2013-03-05 13 views
6

Tôi đã tự học và luyện tập thư viện sklearn. Khi tôi tham gia các cuộc thi Kaggle, tôi nhận thấy mã mẫu được cung cấp được sử dụng BaseEstimator từ sklearn.base. Tôi không hiểu tại sao sử dụng BaseEstimator.BaseEstimator trong sklearn.base (Python)

from sklearn.base import BaseEstimator 
class FeatureMapper: 
    def __init__(self, features): 
     self.features = features  #features contains feature_name, column_name, and extractor(which is CountVectorizer) 

    def fit(self, X, y=None): 
     for feature_name, column_name, extractor in self.features: 
      extractor.fit(X[column_name], y) #my question is: is X features? if yes, where is it assigned? or else how can X call column_name by X[column_name]. 

... 

Đây là những gì tôi thường thấy trên trang hướng dẫn sklearn của:

from sklearn import SomeClassifier 
X = [[0, 0], [1, 1],[2, 2],[3, 3]] 
Y = [0, 1, 2, 3] 
clf = SomeClassifier() 
clf = clf.fit(X, Y) 

tôi không thể tìm thấy một ví dụ điển hình hoặc bất kỳ tài liệu trên trang chính thức của sklearn. Mặc dù tôi tìm thấy mã số sklearn.base trên github, nhưng tôi muốn một số ví dụ và giải thích về cách sử dụng nó.

CẬP NHẬT

Dưới đây là liên kết cho đoạn code mẫu: https://github.com/benhamner/JobSalaryPrediction/blob/master/features.py Correction: Tôi chỉ nhận ra BaseEstimator được sử dụng cho các lớp SimpleTransform. Tôi đoán câu hỏi đầu tiên của tôi là tại sao nó lại cần thiết? (bởi vì nó không được sử dụng ở bất cứ nơi nào trong tính toán), câu hỏi khác là khi xác định phù hợp, X là gì và cách được gán? Bởi vì thường tôi thấy:

def mymethod(self, X, y=None): 
    X=self.features 
    # then do something to X[Column_name] 
+0

Bạn có thể liên kết với mã mẫu đó không? 'BaseEstimator' được nhập vào đoạn mã bạn đăng, nhưng nó không thực sự được sử dụng. –

Trả lời

8

BaseEstimator cung cấp số những thứ khác một việc thực hiện mặc định cho get_paramsset_params phương pháp, xem the source code. Điều này hữu ích để làm cho lưới mô hình có thể tìm kiếm được với GridSearchCV để điều chỉnh thông số tự động và hoạt động tốt với những người khác khi được kết hợp trong một số Pipeline.

+0

Tôi nghĩ rằng số dòng đã trôi dạt trong liên kết đó ... –