示例#1
0
    def analyze(self, event):
        array_list = [
            "lepJet_llpdnnx_-1_isLLP_QMU_QQMU",
            "lepJet_llpdnnx_0_isLLP_QMU_QQMU",
            "lepJet_llpdnnx_1_isLLP_QMU_QQMU",
            "lepJet_llpdnnx_2_isLLP_QMU_QQMU", "dimuon_mass", "dimuon_deltaR",
            "lepJet_pt", "lepJet_eta", "lepJet_deltaR", "MET_pt", "MET_phi",
            "looseMuons_pt", "looseMuons_eta", "looseMuons_dxy",
            "tightMuons_pt", "tightMuons_eta", "tightMuons_dxy"
        ]
        data = pd.DataFrame(data={
            "lepJet_llpdnnx_-1_isLLP_QMU_QQMU":
            getattr(event, "lepJet_llpdnnx_-1_isLLP_QMU_QQMU"),
            "lepJet_llpdnnx_0_isLLP_QMU_QQMU":
            event.lepJet_llpdnnx_0_isLLP_QMU_QQMU,
            "lepJet_llpdnnx_1_isLLP_QMU_QQMU":
            event.lepJet_llpdnnx_1_isLLP_QMU_QQMU,
            "lepJet_llpdnnx_2_isLLP_QMU_QQMU":
            event.lepJet_llpdnnx_2_isLLP_QMU_QQMU,
            "dimuon_mass":
            event.dimuon_mass,
            "dimuon_deltaR":
            event.dimuon_deltaR,
            "lepJet_pt":
            event.lepJet_pt,
            "lepJet_eta":
            event.lepJet_eta,
            "lepJet_deltaR":
            event.lepJet_deltaR,
            "MET_pt":
            event.MET_pt,
            "MET_phi":
            event.MET_phi,
            "looseMuons_pt":
            event.looseMuons_pt,
            "looseMuons_eta":
            event.looseMuons_eta,
            "looseMuons_dxy":
            event.looseMuons_dxy,
            "tightMuons_pt":
            event.tightMuons_pt,
            "tightMuons_eta":
            event.tightMuons_eta,
            "tightMuons_dxy":
            event.tightMuons_dxy,
        },
                            columns=array_list,
                            index=[0])

        model = XGBClassifier()
        booster = Booster()
        #model._le = LabelEncoder().fit([1])
        booster.load_model(self.modelPath)
        booster.feature_names = array_list
        model._Booster = booster
        bdt_score = model.predict_proba(data)
        setattr(event, "bdt_score", bdt_score[:, 1])
        return True
示例#2
0
def upload_xgb_to_memsql(xgb: Booster,
                         conn: Connection,
                         udf_name: str,
                         func=F.SIGMOID,
                         feature_names: List[str] = None,
                         allow_overwrite: bool = False) -> None:
    if feature_names:
        xgb.feature_names = feature_names
    trees = split_trees(xgb.trees_to_dataframe())
    sqls = [tree_to_func_def(udf_name, allow_overwrite, t) for t in trees]
    sqls.append(
        tree_to_main_func(udf_name, allow_overwrite, trees, xgb.feature_names,
                          func))
    for s in sqls:
        assert 1 == conn.query(s)