Bootstrapping khoảng tin cậy từ một dự đoán hồi quy


10

Đối với bài tập về nhà, tôi đã được cung cấp dữ liệu để tạo / huấn luyện một người dự đoán sử dụng hồi quy lasso. Tôi tạo ra công cụ dự đoán và huấn luyện nó bằng thư viện lthon python từ scikit learn.

Vì vậy, bây giờ tôi có dự đoán này rằng khi đầu vào được đưa ra có thể dự đoán đầu ra.

Câu hỏi thứ hai là "Mở rộng dự đoán của bạn để báo cáo khoảng tin cậy của dự đoán bằng cách sử dụng phương pháp bootstrapping."

Tôi đã nhìn xung quanh và tìm thấy những ví dụ về những người làm điều này vì ý nghĩa và những thứ khác.

Nhưng tôi hoàn toàn thất vọng về cách tôi cho là làm điều đó để dự đoán. Tôi đang cố gắng sử dụng thư viện scikit-bootstrap .

Các nhân viên khóa học đang cực kỳ không phản hồi, vì vậy bất kỳ trợ giúp được đánh giá cao. Cảm ơn bạn.


Tôi không biết cách sử dụng Scikit nhưng nếu đó chỉ là Scikit mà bạn quan tâm thì bạn nên chuyển câu hỏi này sang StackOverflow. Điều đó đang được nói, bạn phải nhớ rằng dự đoán của bạn là một phản ứng có ý nghĩa trong chính họ. Những gì bạn sẽ nhận được thông qua thủ tục bootstrapping là một cách để ước tính phân phối của phản ứng trung bình đó.
usεr11852

@ usεr11852 Hiện tại tôi chỉ giới hạn sử dụng scikit. Nhưng nếu tôi có thể hiểu lý thuyết đằng sau khoảng tin cậy bootstrapping của các dự đoán, tôi có thể không cần bất kỳ trợ giúp trăn nào. Chẳng hạn, tôi không chắc mình sẽ lấy mẫu từ đâu, dữ liệu tôi sử dụng để huấn luyện người dự đoán hay dự đoán? Tôi thực sự bối rối về cách lấy mẫu vì một dự đoán chỉ liên quan đến một mẫu, tức là một bộ tính năng cụ thể.
itSLO

1
Lưu ý rằng việc nói về "khoảng tin cậy của dự đoán" là sai vì dự đoán không phải là tham số.
Michael M

Câu trả lời:


10

Bootstrapping đề cập đến việc lấy mẫu lại dữ liệu của bạn với sự thay thế. Nghĩa là, thay vì khớp mô hình của bạn với X và y ban đầu, bạn khớp mô hình của mình với các phiên bản X và y được ghép lại nhiều lần.

Do đó, bạn có được n mô hình hơi khác nhau mà bạn có thể sử dụng để tạo khoảng tin cậy. Dưới đây là một ví dụ trực quan của một khoảng thời gian như vậy.

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression

# Create toy data 
x = np.linspace(0, 10, 20)
y = x + (np.random.rand(len(x)) * 10)

# Extend x data to contain another row vector of 1s
X = np.vstack([x, np.ones(len(x))]).T

plt.figure(figsize=(12,8))
for i in range(0, 500):
    sample_index = np.random.choice(range(0, len(y)), len(y))

    X_samples = X[sample_index]
    y_samples = y[sample_index]    

    lr = LinearRegression()
    lr.fit(X_samples, y_samples)
    plt.plot(x, lr.predict(X), color='grey', alpha=0.2, zorder=1)

plt.scatter(x,y, marker='o', color='orange', zorder=4)

lr = LinearRegression()
lr.fit(X, y)
plt.plot(x, lr.predict(X), color='red', zorder=5)

nhập mô tả hình ảnh ở đây


8

Nếu bạn muốn sử dụng API của scikit cho phần bootstrap của mã:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import BaggingRegressor

# Create toy data 
x = np.linspace(0, 10, 20)
y = x + (np.random.rand(len(x)) * 10)

# Extend x data to contain another row vector of 1s
X = np.vstack([x, np.ones(len(x))]).T

n_estimators = 50
model = BaggingRegressor(LinearRegression(), 
                         n_estimators=n_estimators,
                         bootstrap=True)

model.fit(X, y)

plt.figure(figsize=(12,8))

# Accessing each base_estimator (already fitted)
for m in model.estimators_:
    plt.plot(x, m.predict(X), color='grey', alpha=0.2, zorder=1)

plt.scatter(x,y, marker='o', color='orange', zorder=4)

# "Bagging model" prediction
plt.plot(x, model.predict(X), color='red', zorder=5)

5
Mặc dù việc triển khai thường được trộn lẫn với nội dung thực chất trong các câu hỏi, chúng tôi được cho là một trang web cung cấp thông tin về thống kê, học máy, v.v., không phải mã. Cũng có thể tốt khi cung cấp mã, nhưng vui lòng xây dựng câu trả lời thực sự của bạn trong văn bản cho những người không đọc ngôn ngữ này đủ tốt để nhận ra & trích xuất câu trả lời từ mã.
gung - Phục hồi Monica
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.