首页 > 解决方案 > 创建自定义估算器

问题描述

联邦机构医疗保险和医疗补助服务中心 (CMS) 对疗养院实施法规。但是,州机构会检查疗养院是否遵守法规,各州对违规行为的罚款可能会有很大差异。

让我们开发一个非常简单的初始模型来预测疗养院可能会根据其位置支付的罚款金额。在下面填写自定义估计器 StateMeanEstimator 的类定义。

我得到以下信息(错误您的解决方案与预期的类型不匹配:53 * number 具体来说,解决方案 [52] 与 {'type': 'number'}: None 不匹配)

这是我的代码

from sklearn.base import BaseEstimator, RegressorMixin, TransformerMixin

类 GroupMeanEstimator(BaseEstimator, RegressorMixin): def init (self, grouper): self.grouper = grouper self.group_averages = {}

def fit(self, X, y):
    # Use self.group_averages to store the average penalty by group
    Xy = X.join(y)
    state_mean_series = Xy.groupby(self.grouper)[y.name].mean()
    for row in pd.DataFrame(state_mean_series).itertuples():
        self.group_averages[row[0]] = row[1]
    return self

def predict(self, X):
    # Return a list of predicted penalties based on group of samples in X
    if not isinstance(X, pd.DataFrame):
        X = pd.DataFrame(X)
    dictionary = self.group_averages
    group = self.grouper
    list_of_predictions = []
    for row in X.itertuples():
        prediction = dictionary.get(row.STATE)
        list_of_predictions.append(prediction)
    return list_of_predictions

标签: python-3.xpandasmachine-learningdata-science

解决方案


推荐阅读