Kaggle竞赛之Titanic存活预测2

  • 提高代码规范性,基于上一个 baseline 的提高
import pandas as pd
from sklearn.preprocessing import LabelBinarizer
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split#数据划分方法
from sklearn.ensemble import RandomForestClassifier#随机森林
from sklearn.model_selection import GridSearchCV #网格交叉搜索交叉验证

# data = pd.read_csv("file_path")打印出来看

def data_clean(file_path):
	""""
	数据处理函数
	parameters:
	file_path:数据文件路径
	""""
	data = pd.read_csv(file_path)
	#删除不需要的列
	data.drop("PassengerId",axis=1,inplace=True)
	data.drop(["Name","Ticket","Cabin"],axis=1,inplace=True)
	#对空值进行填充
	data["Age"].fillna(data["Age"].mean(),inplace=True)
	#对字符的东西进行一个空值填充
	data["Embarked"].fillna(data["Embarked"].mode[0],inplace=True)
	#数据preprocessing
	data["Sex"]=LabelBinarizer().fit_transform(data["Sex"])
	data = pd.get_dummied(data)
	#缩放,减少计算量
	data["Fare"] = StandardScaler().fit_transform(data["Fare"].values.reshape(-1,1))

	return (data)

# 数据划分
def data_split(data):
	""""
	数据划分函数
	parameters:
	data:要划分的数据
	""""
	x = data.drop(["Survived"],axis=1)
	y = data["Survived"]
	x_train,x_test,y_train,y_test = train_test.split(x,y,test_size=0.2)
	return (x_train,x_test,y_train,y_test)

# 模型搭建
def model_fit(x,y):
	"""
	模型训练函数
	parameters:
	x:特征
	y:标签
	"""
	#定义好参数
	Para_grid = [{"n_estimators":[3,10,30],"max_features":[2,4,6,8]},
	{"bootstrap",[False],"n_estimators":[3,10],"max_features":[2,4,6]}]
	#模型实例化
	model = RandomForestClassifier()
	#模型和交叉验证次数
	gird_search = GridSearchCV(model,Para_grid,cv=5)
	#模型训练
	grid_search.fit(x,y)
	
	return(grid_search.best_params_,grid_search.best_estimator_)

data = data_clean("data/train.csv")
x_train,x_test,y_train,y_test = data_split(data)
model_fit(x_train,y_train)
# 上一行得到最优的模型和参数
model = RandomForestClassifier(n_estimators=30,max_features=2,max_depth=100)
model.fit(x_train,y_train)
model.score(x_test,y_test)

#程序入口
if __name__ == '__main__':
	A
	B
	C
  • 模型融合,去 sklearn 看一下就懂
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/423655.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

FL Studio选购指南:新手小白应该选择哪个版本FL Studio?

很多打算入手正版FL Studio的新手朋友都会纠结一个问题:哪个版本的FL Studio更适合我,到底应该入手哪一款FL Studio?本文会介绍每个版本之间的差异点,并带大家选择适合自己的FL Sudio版本。 FL Studio全版本 在选购前有一些小知识…

动态代理如何获取动态生成的代理类的class文件

JDK动态代理 在使用JDK动态代理,即reflect包下的Proxy类的newProxyInstance方法时,会在运行时,根据传进来的接口类型动态生成class字节码文件。这个字节码文件是在内存中动态获取的,程序结束就没有了,如何动态获取呢。…

创新之巅 健康之选 森歌集成灶智能水洗新揭秘

2024年2月27日,一场引领智能厨电风潮的盛会在杭州隆重召开。森歌集成灶以“勠力同心 共生共歌”为主题,成功举办了2024森歌智能厨电优秀经销商峰会。此次峰会上,森歌集成灶发布了令人瞩目的奥运冠军同款智能厨电新品——森歌鲸洗小灶Z60&…

paper-ai :搜索真实文献并生成引用真实文献的AI论文

paper-ai :搜索真实文献并生成引用真实文献的AI论文。 项目简介 使用真实文献最快速完成论文的方法 利用人工智能撰写论文 人工智能书写功能:点击 "AI 写作 "进行正常对话互动。人工智能将根据您的输入提供写作建议或回答问题。 寻找文献功能…

相纸尺寸和相纸分类解释

相纸分类 高光 高光相纸俗称光面相纸,适用一般的证件用照和生活照片,表面平滑光亮。 绒面 绒面相纸(也称哑光相纸或哑光相纸),因为绒面革相纸的表面粗糙,所以绒面相纸的质地很好,表面有哑光感,没有反光…

ELK学习

ELK 一、ELK介绍 😄 “ELK”是三个开源项目的首字母缩写,这三个项目分别是:Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道,能够同时从多个来源采集数据&#xff0…

测试:腾讯云4核8G服务器支持多少人在线访问?

腾讯云4核8G服务器支持多少人在线访问?支持25人同时访问。实际上程序效率不同支持人数在线人数不同,公网带宽也是影响4核8G服务器并发数的一大因素,假设公网带宽太小,流量直接卡在入口,4核8G配置的CPU内存也会造成计算…

Heimdallr - 被动嗅探浏览器插件

Heimdallr - 被动嗅探浏览器插件 Heimdallr是一款致力于被动嗅探浏览器流量,提示高危资产指纹和蜜罐特征,并进行拦截告警的谷歌插件,还可以用于对浏览器特征追踪(evercookie、webRTC、Canvas画布等)的对抗。 项目由深…

《汇编语言》- 读书笔记 - 第15章-外中断

《汇编语言》- 读书笔记 - 第15章-外中断 15.1 接口芯片和端口15.2 外中断信息1. 可屏蔽中断(Maskable Interrupt)2. 不可屏蔽中断(Non-Maskable Interrupt)设计思想 15.3 PC 机键盘的处理过程1. 键盘输入2. 引发 9 号中断3. 执行…

在您的下一个项目中选择 Golang 和 Node.js 之间的抉择

作为一名软件开发者,我总是在寻找构建应用程序的最快、最高效的工具。在速度和处理复杂任务方面,我认为 Golang 和 Node.js 是顶尖技术。两者在性能方面都享有极高的声誉。但哪一个更快——Golang 还是 Node?我决定深入一些硬核基准测试&…

Java+SpringBoot+Vue:志愿服务的数字化之旅

✍✍计算机毕业编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java、…

LeetCode 刷题 [C++] 第226题.翻转二叉树

题目描述 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 题目分析 深度优先搜索(DFS)- 递归方式 对于二叉树的镜像问题,很容易想到的就是使用递归来解决,自底向上依次翻转每一个节点…

DataX及Datax-web杂记

👽个人博客:https://everspring.github.io/ 👽公众号:爱历史的IT男 一. DataX调试 DataX之前调试不是很方便,要打包后才能调试。23年7月后一位叫"FuYouJ "的开源者提交了datax-example模块,就方…

蓝桥杯备战刷题two(自用)

1.杨辉三角形 #include<iostream> using namespace std; #define ll long long const int N2e510; int a[N]; //1 0 0 0 0 0 0 //1 1 0 0 0 0 0 //1 2 1 0 0 0 0 //1 3 3 1 0 0 0 //1 4 6 4 1 0 0 //1 5 10 10 5 1 //前缀和思想 //第一列全为1,第二列为从0开始递增1的序…

win安装卸载python3.13

一、安装 访问python官网&#xff1a;https://www.python.org/ 点击“Downloads” 点击“Windows” 找到自己要下载的版本和位数&#xff0c;比如我这个是3.13版本、64位的安装包 下载好了之后&#xff0c;双击安装包 勾选“Add python.exe to PATH”&#xff1a;把python环…

免费插件集-illustrator插件-Ai插件-雷达图-图表自动绘制

文章目录 1.介绍2.安装3.通过窗口>扩展>知了插件4.功能解释5.示例6.总结 1.介绍 本文介绍一款免费插件&#xff0c;加强illustrator使用人员工作效率&#xff0c;进行绘制雷达图。首先从下载网址下载这款插件 https://download.csdn.net/download/m0_67316550/87890501&…

Revit-二开之创建线性尺寸标注-(5)

创建线性尺寸标注 对应的Revit界面的按钮 线性尺寸标注源码 本篇文章实现的逻辑是从rvt文章中拾取一面墙,然后对墙添加再水平方向上的线性尺寸标注 protected override Result OnExecute(ExternalCommandData commandData, ref string message, ElementSet elements

MySQL基础-----SQL语句之DDL语句

目录 前言 开启登录数据库 一、数据库操作 1.查询所有数据库 2.切换使用数据库 3.查询当前使用的数据库 4.创建数据库 创建一个hello数据库, 使用数据库默认的字符集。 创建一个itheima数据库&#xff0c;并且指定字符集 5.删除数据库 二、表操作 1.查询当前数据库所有…

UE5中实现后处理深度描边

后处理深度描边可以通过取得边缘深度变化大的区域进行描边&#xff0c;一方面可以用来做角色的等距内描边&#xff0c;避免了菲尼尔边缘光不整齐的问题&#xff0c;另一方面可以结合场景扫描等特效使用&#xff0c;达到更丰富的效果&#xff1a; 后来解决了开启TAA十字线和锯齿…

基于ssm江苏融汇房地产营销策划有限公司的宣传网站

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…