美文网首页
模型融合

模型融合

作者: SimonLiu000 | 来源:发表于2018-09-16 18:39 被阅读85次

Code: https://github.com/SimonLliu/DGB_AlphaTeam

在本次比赛中,一开始观察了下sklearn和 mlxtend.classifier内置的模型融合函数

https://blog.csdn.net/LAW_130625/article/details/78573736

mlxtend:

sclf = StackingCVClassifier(classifiers=[xgb, rfc, etc], meta_classifier=lr, use_probas=True, n_folds=3, verbose=3)

sklearn:

fromsklearn.ensembleimportVotingClassifier

clf1=LogisticRegression(random_state=1)

clf2=RandomForestClassifier(random_state=1)

clf3=GaussianNB()

eclf=VotingClassifier(estimators=[('lr',clf1),('rf',clf2),('gnb',clf3)],voting='soft')

params={'lr__C':[1.0,100.0],'rf__n_estimators':[20,200],}

grid=GridSearchCV(estimator=eclf,param_grid=params,cv=5

grid=grid.fit(iris.data,iris.target)

由上可观察出利用sklearn内置的模型融合工具,需要对融合后的模型进行再训练。这就迫使了我们开发出了概率加和和分类投票两种模型融合方法。

1、概率加和

1)读取模型+预测概率

clf2 = joblib.load("lr(c40).pkl")

y_test=clf2.predict_proba(x_test)

df_test['proba']=y_test.tolist()

df_result = df_test.loc[:,['id','proba']]

df_result.to_csv('result_proba_lg.csv',index=False)

2)读取概率+概率相加

lg_df = pd.read_csv('result_proba_lg.csv')

def series2arr(series):

    res = []

    for row in series:

        res.append(np.array(eval(row)))

    return np.array(res)

lg_prob_arr = series2arr(lg_df['proba'])

final_prob = svm_prob_arr+lg_prob_arr+kn_prob_arr+nb_prob_arr

3)重新预测结果

y_class=[np.argmax(row) for row in final_prob]

df_test['proba']=y_class

df_test['proba']=df_test['proba']+1

2、分类投票

1、把每个数组按照列combine

a_l = []

for i in range(len(res_l[0])):

a_l.append([res_l[j][i] for j in range(10)])

2、投票

def voting(class_l):

final_class = []

c_l = []

for row in class_l:

c = Counter(row)

c_v_set = set(c.values())

# 票数不等取最大

if(len(c_v_set) > 1):

res = max(c,key=c.get)

else: # 票数相等取最好结果的的值

res = row[max_idx]

final_class.append(res)

c_l.append(c)

return final_class,c_l

final_class,c = voting(a_l)

相关文章

  • 推荐系统陈开江 - C6 模型融合

    哪几个部分?一阶模型融合,线性模型树模型二阶模型融合,FM高阶模型融合,Wide and Deep 1 线性模型和...

  • rf、adaboost、gbdt

    一:模型融合 模型融合又叫集成学习,由若干弱模型合成强模型。即每个分类器都是欠拟合的 二:模型三要素 2.1:模型...

  • 8.Model_ensemble_basics

    1模型融合 1.1载入数据 1.2 投票器模型融合(VotingClassifier) 1.3 Bagging 1...

  • 模型融合

    Code: https://github.com/SimonLliu/DGB_AlphaTeam 在本次比赛中,一...

  • 模型融合

    1.blending 比如数据分成train和test,对于model_i(比如xgboost) ,即对所有的数据...

  • 模型融合

    简单加权融合 回归: 算术平均融合(Arithmetic mean) 加权算术平均法 几何平均融合(Geometr...

  • 模型融合

    1.Voting 投票法针对分类模型,多个模型的分类结果进行投票,少数服从多数。除了公平投票外,还可以给投...

  • 模型融合

    前言 最近在学习模型融合的知识,因为很早之前就听说在比赛中模型融合很有用,而我正好在参加一个比赛,于是就深入学习了...

  • 模型融合

    等待更新

  • 模型融合

    一、模型融合的方式主要是有三种:1.bagging (随机森林模型是基于bagging融合的代表)2.boosti...

网友评论

      本文标题:模型融合

      本文链接:https://www.haomeiwen.com/subject/hgytnftx.html