Introduction to Emsembling/Stacking in Python

泰坦尼克号https://www.kaggle.com/arthurtok/introduction-to-ensembling-stacking-in-python代码理解1. Preprocessing1.库加载import plotly.offline as pypy.init_notebook_mode(connected=True)import plotly.graph_o...
摘要由CSDN通过智能技术生成

泰坦尼克号

https://www.kaggle.com/arthurtok/introduction-to-ensembling-stacking-in-python

代码理解

1. Preprocessing

1.库加载

import plotly.offline as py
py.init_notebook_mode(connected=True)
import plotly.graph_objs as go
import plotly.tools as tls

import warnings
warnings.filterwarnings('ignore')
import xgboost as xgb

Going to use these 5 base models for the stacking

from sklearn.ensemble import (RandomForestClassifier, AdaBoostClassifier,
GradientBoostingClassifier, ExtraTreesClassifier)
from sklearn.svm import SVC
from sklearn.cross_validation import KFold

  1. 对于feature中含有缺失值(缺失值比例较大时),把缺失的和未缺失的来看

     train['Has_Cabin'] = train["Cabin"].apply(lambda x: 0 if type(x) == float else 1)
    
  2. 分桶处理

     train['CategoricalFare'] = pd.qcut(train['Fare'], 4)
     dataset.loc[ dataset['Fare'] <= 7.91, 'Fare'] 						        = 0
     dataset.loc[(dataset['Fare'] > 7.91) & (dataset['Fare'] <= 14.454), 'Fare'] = 1
     dataset.loc[(dataset['Fare'] > 14.454) & (dataset['Fare'] <= 31), 'Fare']   = 2
     dataset.loc[ dataset['Fare'] > 31, 'Fare'] 							        = 3
     dataset['Fare'] = dataset['Fare'].astype(int)
    
  3. 填充缺失值(通过均值和标准差来填充)

     for dataset in full_data:
         age_avg = dataset['Age'].mean()
         age_std = dataset['Age'].std()
         age_null_count = dataset['Age'].isnull().sum()
         age_null_random_list = np.random.randint(age_avg - age_std, age_avg + age_std, size=age_null_count)
         dataset['Age'][np.isnan(dataset['Age'])] = age_null_random_list
         dataset['Age'] = dataset['Age'].astype(int)
    
  4. 替换

    dataset['Title'] = dataset['Title'].replace('Mlle', 'Miss')
    
  5. 编码mapping

    dataset['Sex'] = dataset['Sex'].map( {'female': 0, 'male': 1} ).astype(int)
    
  6. 热力图(去除冗余变量)

     colormap = plt.cm.RdBu
     plt.figure(figsize=(14,12))
     plt.title('Pearson Correlation of Features', y=1.05, size=15)
     sns.heatmap(train.astype(float).corr(),linewidths=0.1,vmax=1.0, 
                 square=True, cmap=colormap, linecolor='white', annot=True)
    

2. Ensembling & Stacking models

# Some useful parameters which will come in handy later on
ntrain = train.shape[0]
ntest = test.shape[0]
SEED = 0 # for reproducibility
NFOLDS = 5 # set folds for out-of-fold prediction
kf = KFold(ntrain, n_folds= NFOLDS, random_state=SEED)

# Class to extend the Sklearn classifier
class SklearnHelper(object):
    def __init__(self, clf, seed=0, params=None):
        params['random_state'] = seed
        self.clf = clf(**params)

    def train(self, x_train, y_train):
        self.clf.fit(x_train, y_train)

    def predict(self, x):
        return self.clf.predict(x)
    
    def fit(self,x,y):
        return self.clf.fit(x,y)
    
    def feature_importa
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同时,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
stacking模型是一种集成学习方法,其主要目的是通过组合多个不同的基模型,以提高预测的准确性和稳定性。在Python中,我们可以使用多种库和工具来实现和运行stacking模型。 在实现stacking模型之前,我们需要选择并训练多个基模型。Python中有很多强大的机器学习库,如scikit-learn,可以提供各种分类和回归模型。我们可以使用这些库中的模型来训练我们的基模型,并通过交叉验证等技术来调优模型参数。 一旦我们训练好了多个基模型,我们就可以开始构建stacking模型。Python中有一些库,如mlxtend,提供了方便的函数和类来实现stacking。我们可以使用这些库中的StackingClassifier和StackingRegressor来创建stacking模型。 在构建stacking模型时,我们需要指定基模型的列表和元模型。基模型是我们之前训练好的多个模型,而元模型是用来结合基模型预测结果的模型。我们可以选择线性回归、逻辑回归等作为元模型。 通过fit函数,我们可以将训练集传递给stacking模型,并使用交叉验证等方法训练元模型。然后,我们可以使用predict函数来对测试集进行预测。 需要注意的是,stacking模型的训练和预测时间可能会比较长,特别是在处理大型数据集时。因此,我们需要在使用时进行适当的性能优化。 综上所述,通过Python中的机器学习库和工具,我们能够轻松地实现和运行stacking模型。通过构建多个基模型和一个元模型,我们可以获得更高准确性和稳定性的预测结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值