前言
这次是我第一次接触到模型融合,之前没打过什么比赛,也没有什么人教,沟通交流的人也少,自从发现datawhale这个组织之后,发现里面很多宝藏男孩、宝藏女孩,从中学习到了很多东西,包括数据挖掘、数据分析、特征工程等等.今天又到了新一期学习的最后一个任务,这个任务真的还是蛮难的,我花了挺多时间 代码操作还是有问题.提示:以下是本篇文章正文内容,下面案例可供参考
一、模型融合是什么?
先解决第一个问题,模型融合是什么?
模型融合有哪些?
我主要考虑的是使用stacking融合的方法.
二、使用步骤
1.引入库
代码如下(示例):
import pandas as pd
import numpy as np
import warnings
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
warnings.filterwarnings('ignore')
%matplotlib inline
import itertools
import matplotlib.gridspec as gridspec
from sklearn import datasets
from sklearn.linear_model import LogisticRegression
from sklearn.neighbors import KNeighborsClassifier
from sklearn.naive_bayes import GaussianNB
from sklearn.ensemble import RandomForestClassifier,RandomForestRegressor
# from mlxtend.classifier import StackingClassifier
from sklearn.model_selection import cross_val_score, train_test_split
# from mlxtend.plotting import plot_learning_curves
# from mlxtend.plotting import plot_decision_regions
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import train_test_split
from sklearn.model_selection import StratifiedKFold
from sklearn.model_selection import train_test_split
import lightgbm as lgb
from sklearn.neural_network import MLPClassifier,MLPRegressor
from sklearn.metrics import mean_squared_error, mean_absolute_error
2.引入一个降存函数
代码如下(示例):
def reduce_mem_usage(df):
start_mem = df.memory_usage().sum() / 1024**2
print('Memory usage of dataframe is {:.2f} MB'.format(start_mem))
for col in df.columns:
col_type = df[col].dtype
if col_type != object:
c_min = df[col].min()
c_max = df[col].max()
if str(col_type)[:3] == 'int':
if c_min > np.iinfo(np.int8).min and c_max < np.iinfo(np.int8).max:
df[col] = df[col]