• Kaggle | Titanic - Machine Learning from Disaster | baseline


    一、数据介绍

      Titanic - Machine Learning from Disaster是主要针对机器学习初学者开展的比赛,数据格式比较简单,为结构化数据。数据的数量较少(训练集892条,测试集419条),因此,就算找到有效的特征有良好的准确度,但很有可能因为一些小变动就让准确度下降。事实上,Public Leaderboard分数较高的notebook,未必对未知数据有良好的预测能力,可能只是过度比对测试数据碰巧得到吻合的结果罢了。在泰坦尼克号公开资料集中,每个用户有如下特征:

    • Survived: 是否存活(label)
    • PassengerId: (乘客ID)
    • Pclass(用户阶级):1 - 1st class,高等用户;2 - 2nd class,中等用户;3 - 3rd class,低等用户;
    • Name(名字)
    • Sex(性别)
    • Age(年龄)
    • SibSp:描述了泰坦尼克号上与乘客同行的兄弟姐妹(Siblings)和配偶(Spouse)数目;
    • Parch:描述了泰坦尼克号上与乘客同行的家长(Parents)和孩子(Children)数目;
    • Ticket(船票号)
    • Fare(乘客费用)
    • Cabin(船舱)
    • Embarked(港口):用户上船时的港口

    二、代码

      代码实现包含如下基本步骤:

    • 特征处理
    • 模型搭建
    • 模型调参
    • 模型集成(融合)
    #!usr/bin/env python
    # -*- coding:utf-8 -*-
    """
    @author: liujie
    @file: titanic.py
    @time: 2022/09/08
    @desc:Kaggle案例——泰坦尼克号
    """
    import numpy as np
    import pandas as pd
    from xgboost import XGBClassifier
    from sklearn.model_selection import KFold
    from sklearn.preprocessing import LabelEncoder
    from sklearn.metrics import log_loss, accuracy_score
    
    # TODO:1.构造训练集与测试集
    train = pd.read_csv("data/train.csv", sep=",", header=0)
    test = pd.read_csv("data/test.csv", sep=",", header=0)
    x_train = train.drop(['Survived'], axis=1)
    y_train = train['Survived']
    x_test = test.copy()
    
    # TODO:2.建立特征
    # 去除 PassengerId,Name, Ticket, Cabin
    x_train = x_train.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1)
    x_test = x_test.drop(['PassengerId', 'Name', 'Ticket', 'Cabin'], axis=1)
    # 对Sex、Embarked进行label encoding
    for c in ["Sex", "Embarked"]:
        le = LabelEncoder()
        le.fit(x_train[c].fillna("NA"))
    
        x_train[c] = le.transform(x_train[c].fillna("NA"))
        x_test[c] = le.transform(x_test[c].fillna("NA"))
    
    # TODO:3.建立模型
    xgb = XGBClassifier(n_estimators=20, random_state=2022)
    xgb.fit(x_train, y_train)  # 训练
    pred = xgb.predict_proba(x_test
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
  • 相关阅读:
    在 4GB 物理内存的机器上,申请 8G 内存会怎么样?
    当光伏巡检走向全自动化
    Delphi使用JSON
    OKHTTP:Cookie在okhttp中的原理
    Shopee店铺没有流量?3步教你如何诊断店铺
    Figma 怎么切图?新手入门教程详解
    _Linux 静态库
    从 Linux 内核角度探秘 JDK NIO 文件读写本质
    [毕业设计源码下载]精品基于Python实现的学生在线选课系统[包运行成功]
    【Axure高保真原型】汇缴学费原型案例模板
  • 原文地址:https://blog.csdn.net/liujiesxs/article/details/126842973