2015-05-25 15 views
5

Tôi có một tập dữ liệu với 158 hàng và 10 cột. Tôi cố gắng xây dựng nhiều mô hình hồi quy tuyến tính và cố gắng dự đoán giá trị tương lai.Tại sao GridSearchCV không cung cấp điểm số tốt nhất? - Scikit Tìm hiểu

Tôi đã sử dụng GridSearchCV để điều chỉnh thông số.

Đây là GridSearchCV và Regression tôi chức năng:

def GridSearch(data): 
    X_train, X_test, y_train, y_test = cross_validation.train_test_split(data, ground_truth_data, test_size=0.3, random_state = 0) 

    parameters = {'fit_intercept':[True,False], 'normalize':[True,False], 'copy_X':[True, False]} 

    model = linear_model.LinearRegression() 

    grid = GridSearchCV(model,parameters) 

    grid.fit(X_train, y_train) 
    predictions = grid.predict(X_test) 

    print "Grid best score: ", grid.best_score_ 
    print "Grid score function: ", grid.score(X_test,y_test) 

Output của mã này là:

Lưới điểm tốt nhất: 0,720298870251

chức năng điểm Lưới: 0,888263112299

Ques của tôi tion là sự khác nhau giữa hàm best_score_score là gì?

Chức năng score có thể tốt hơn chức năng best_score?

Xin cảm ơn trước.

Trả lời

11

best_score_ là điểm tốt nhất từ ​​xác thực chéo. Tức là, mô hình phù hợp trên phần dữ liệu đào tạo và điểm số được tính bằng cách dự đoán phần còn lại của dữ liệu đào tạo. Điều này là do bạn đã vượt qua X_trainy_train đến fit; quá trình fit do đó không biết bất cứ điều gì về bộ kiểm tra của bạn, chỉ tập huấn luyện của bạn.

Phương thức score của đối tượng mô hình đánh giá mô hình trên dữ liệu bạn cung cấp. Bạn đã vượt qua X_testy_test, do đó cuộc gọi này tính toán điểm số của mô hình phù hợp (ví dụ: được điều chỉnh) trên kiểm tra bộ.

Tóm lại, hai điểm được tính toán trên các tập dữ liệu khác nhau, do đó, không nên ngạc nhiên khi chúng khác nhau.

+0

Cảm ơn bạn đã giải thích. Tôi có thêm vài câu hỏi. Điểm số nào bằng r_squared? và cái nào là bí mật hơn cho các dự đoán trong tương lai? Tôi nghĩ 'điểm số' thứ hai nhưng tôi vẫn còn chút bối rối. –

+0

@BatuhanBardak: Cả hai đều là R^2. Họ là R^2 cho phù hợp khác nhau. Giá trị của R^2 không phải là một đặc tính cố định của mô hình; nó phụ thuộc vào dữ liệu bạn đã sử dụng để phù hợp với mô hình và dữ liệu bạn đang sử dụng để đưa ra dự đoán. Tôi không chắc chắn ý của bạn là "bí mật hơn". – BrenBarn

+0

Thực ra vấn đề chính của tôi là tìm điểm R^2 tốt nhất cho mô hình của tôi. Tôi có 158 dữ liệu mẫu. Mỗi dữ liệu đại diện cho một 'tuần' (dữ liệu này là dữ liệu chuỗi thời gian). Vì vậy, tôi cố gắng dự đoán giá trị 'tuần'. Vì vậy, bây giờ tôi cố gắng tạo ra một mô hình tốt nhất để dự đoán dữ liệu trong tương lai. Nhưng điểm số R^2 của tôi là bao nhiêu? Có phải là '0.7202' hoặc' 0.8882'. Tôi nên tập trung vào điểm nào cho mô hình của mình? Nếu mô hình của tôi R^2 là '0.8882' thì nó tốt cho tôi nhưng nếu tôi không phải phát triển mô hình của mình. Tôi hy vọng, tôi có thể giải thích những gì tôi muốn nói. @BrenBarn –

Các vấn đề liên quan