关于模型融合_堆叠法问题

您好,在您文章【sklearn】模型融合_堆叠法 中 在使用 对融合模型中的每个评估器做交叉验证,对单一评估器的表现进行评估的代码中
使用python运行的过程 无法出现结果 但是在对融合模型做交叉验证可以出现结果,我不知道为什么会出现这样的结果,有什么解决方法吗

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/692917
  • 你也可以参考下这篇文章:机器学习-基础知识、sklearn库、评估指标、python数据处理库
  • 除此之外, 这篇博客: python机器学习sklearn之决策树中的 这是泰坦尼克号的数据,我们将用决策树,通过对人员的阶级,年龄,性别这三个指标对人员是否存活进行预测,很明显这是个分类问题 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 在这里插入图片描述

    import pandas as pd
    import numpy as np
    from sklearn.model_selection import train_test_split
    from sklearn.feature_extraction import DictVectorizer
    from sklearn.tree import DecisionTreeClassifier
    def taitan():
        """
        泰坦尼克号生死预测
        :return: None
        """
        # 获取文件,处理数据
        taitan = pd.read_csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic.txt")
        # 处理数据,找出特征值和目标值
        x = taitan[["pclass", "age", "sex"]]#获取文件中特征值为pclass,age,sex的三列
        y = taitan["survived"]#获取是否存活的结果
        print(x)#打印输出看看效果
        # 缺失值处理,对于na值用平均值处理
        #这里的fillna方法是对age特征值中na值进行处理,用mean()平均值进行填充!inplace=True是指将填补的数据在原来的表上修改,而不是创建一个副本,在副本上修改
        x['age'].fillna(x["age"].mean(), inplace=True)
        # 分割数据集,一部分测试一部分训练,数据集的分割,分为训练集和测试集
        x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.25)
        # 进行特征工程的处理,将数据集变换成one-hot形式
        dict = DictVectorizer(sparse=False)
        #这里涉及到.to_dict(orient="records")方法,就是将列表转换为一个一个字典形式,因为DictVectorizer()中接收的是字典形式
        x_train = dict.fit_transform(x_train.to_dict(orient="records"))
        #print(dict.get_feature_names())
        x_test = dict.transform(x_test.to_dict(orient="records"))
        #print(x_train)
        #用决策数进行预测,这里就是决策树api
        tre=DecisionTreeClassifier()
        tre.fit(x_train,y_train)
        #输出准确度
        print(tre.score(x_test, y_test))
        return None
    
    
    if __name__ == "__main__":
        taitan()