kaggle入门
时间:2021-10-10
本文章向大家介绍kaggle入门,主要包括kaggle入门使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Kaggle入门Titanic数据处理
问题相关数据官方下载地址:https://www.kaggle.com/c/titanic/data
# 导入需要的库 import sys import pandas as pd import numpy as np import sklearn import random import time from sklearn import ensemble from sklearn.preprocessing import LabelEncoder from sklearn.preprocessing import LabelEncoder from sklearn import feature_selection from sklearn import model_selection from sklearn import metrics import matplotlib import matplotlib as mpl import matplotlib.pyplot as plt import seaborn as sns %matplotlib inline
Pandas加载源数据集
我的文件树
读取源数据集
data_raw = pd.read_csv('data/train.csv') data_val = pd.read_csv('data/test.csv')
# 查看前五行内容
data_raw.head()
# 查看数据基本信息
data_raw.info
为了便于操作,我们将列名转换成小写形式,也可以自定义修改列名
# 列名称转换成小写 data_raw.columns = data_raw.columns.str.lower()
data_val.columns = data_val.columns.str.lower()
根据幸存绘制图形,有一个大概了解
#绘制图形 sns.countplot(data_raw['survived'])
进行数据清洗
合并训练集与测试集进行统一清洗操作
data_all = [data_raw, data_val]
查看全部数据集空值等基础信息,对其进行清洗操作如对缺失值进行补全或删除某些无用的特征值
data_raw.isnull().sum() #查看训练集中的空值 data_val.isnull().sum() #查看验证集空值 data_raw.describe(include='all') # 对数据集进行描述 #用数据的统计数据对空值进行补全 #对原始数据集(数据集+验证集)进行清洗 for dataset in data_all: #补足空缺值 dataset['age'].fillna(dataset['age'].median(), inplace=True) #用中位数补足年龄空缺值,inplace=True 设置为直接填充在原始表中 dataset['fare'].fillna(dataset['fare'].median(), inplace=True) dataset['embarked'].fillna(dataset['embarked'].mode()[0], inplace=True)#mode返回出现次数最多的元素 #删除一些字段 drop_columns = ['cabin', 'passengerid', 'ticket'] data_raw.drop(drop_columns, axis=1, inplace=True) data_val.drop(drop_columns, axis=1, inplace=True)
特征构建,选取有用的属性值对其进行进一步处理(如编码操作,分类操作等),便于后续计算机处理
for dataset in data_all: # 构建新字段 family_size 家庭规模 sibs+parch 合并 dataset['family_size'] = dataset['sibsp'] + dataset['parch'] + 1 #构建第二个字段 single 是否单身 1表示单身 0 表示非单身 dataset['single'] = 1 dataset['single'].loc[dataset['family_size'] > 1] = 0 #第三个字段title:身份 name中的称谓隐藏着身份信息 dataset['title'] = dataset['name'].str.split(', ', expand=True)[1].str.split('.', expand= True)[0] #dataset['title'] = dataset['name'].apply(lambda x: x.split(', ')[1]).apply(lambda x : x.split('.')[1]) #票价 fare_bin 分组 dataset['fare_bin'] = pd.qcut(dataset['fare'], 4) # 给票价分成4组,qcut分组后每组人数一致 #年龄分组 age_bin dataset['age_bin'] = pd.cut(dataset['age'].astype(int), 5) #将年龄分成五组,每组人数不一定一致
#统计title个数 data_raw['title'].value_counts() title_names = (data_raw['title'].value_counts() < 10) # title: 将那些称谓人数小于10的数据全部归为一类 data_raw['tltle'] = data_raw['title'].apply(lambda x : 'other' if title_names[x] else x)
构建新的字段 基于scikit-learn中的LabelEncoder()
label = LabelEncoder() for dataset in data_all: # 构建sex-code,对于一些字符串类型进行编码 dataset['sex_code'] = label.fit_transform(dataset['sex']) dataset['embarked_code'] = label.fit_transform(dataset['embarked']) dataset['title_code'] = label.fit_transform(dataset['title']) dataset['age_bin_code'] = label.fit_transform(dataset['age_bin']) dataset['fare_bin_code'] = label.fit_transform(dataset['fare_bin'])
特征选择(任意选择可能对结果有所影响的属性),在这里就随便选几个了
Target = ['survived']# 标签 data_columns_one = ['sex', 'pclass', 'embarked', 'title', 'sibsp', 'parch', 'age', 'fare', 'family_size', 'single'] # 通过pandas中的get_dummies()进行编码转换 data_one_dummy = pd.get_dummies(data_raw[data_columns_one]) data_one_dummy_list = data_one_dummy.columns.tolist()# 获得列名列表
原文地址:https://www.cnblogs.com/sevent/p/15388946.html
- 表单验证和正则表达式
- ELK日志系统:Elasticsearch + Logstash + Kibana 搭建教程
- 兰花协议—让世界自由的互联网
- Git(二)Git几个区的关系与Git和GitHub的关联
- maven/gradle 打包后自动上传到nexus仓库
- bash/shell编程学习(1)
- Git(一)之基本操作详解
- JavaScript中的函数基础
- JS魔法堂:判断节点位置关系
- bash/shell编程学习(3)
- Tomcat配置Web程序几种方式
- java并发编程学习: 守护线程(Daemon Thread)
- HTML条件注释判断浏览器及检验
- HttpClient(二)HttpClient使用Ip代理与处理连接超时
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 原创 | 详解command设计模式,解耦操作和回滚
- 第32天:图解大数打印,这道题如此经典!
- Mac终端配置好的环境变量在关闭终端后失效怎么办
- R中的stack和unstack函数
- 第33期:上海自来水来自海上,回文字符串验证!
- nginx location配置
- 快速学习-RocketMQ Dledger快速搭建
- 原创 | 非典型算法题,用程序和电脑玩一个游戏
- 快速学习-RocketMQ Dledger集群搭建
- 原创 | 你能想出解法,让你的基友少氪金吗?
- 快速学习-ElasticJob运维平台
- 第34期:最后一个单词的长度(高频)
- 原创 | 学会这三个命令,你就不再是git只会用三板斧的菜鸟了
- 构建Flink第一个应用程序
- 第35期:从 DFS 学习二叉树!(适合小白)