我正在寻找有关sk-learn RANSACRegressor包所描述的base_estimator对象方法的输入的说明。具体而言,我指的是方法X
,y
和fit(X,y)
的输入score(X,y)
和predict(X)
。以下说明:
fit(X,y)
:使模型适合给定的训练数据和目标值。score(X,y)
:返回给定测试数据的平均准确度,该平均准确度用于stop_score定义的停止标准。此外,该得分用于确定选择两个相等的大共识集中的哪一个作为更好的共识集。predict(X)
:使用线性模型返回预测值,该模型用于使用损失函数计算残差。SciPy Cookbook实施的RANSAC文档对于必须由给定模型类实施的方法的要求更为直接:
def fit(self, data):
"""Given the data fit the data with your model and return the model (a vector)"""
def get_error(self, data, model):
"""Given a set of data and a model, what is the error of using this model to estimate the data """
这很有意义:
fit()
函数在给定观察数据点样本的情况下返回模型参数的估计值。样本数量等于拟合模型所需的数据点数量。get_error()
函数对观察到的数据和模型参数的估计值都进行操作,并在给定模型参数的估计值的情况下计算观察到的数据点与预测数据点之间的误差。据我所知,sk-learn的RANSACRegressor已将SciPy观察到的data
解压缩为X
和y
,其中y = f(X;param_vec)
和f
是给定的功能关系,可能是非线性的。 param_vec
是要使用RANSAC估算的模型参数集。
fit(X,y)
返回模型参数的估计值是观察数据的函数是有意义的。对我来说,predict(X)
仅仅是X
的功能对我来说没有任何意义。为了生成一组预测数据点(y_predicted
),还需要对模型参数param_vec
进行估算。
我想念什么?我是否误解了X
和y
?我想了解param_vec
如何适合base_estimator类方法。