Kaggle简单实战

article/2025/6/23 18:30:17

Kaggle简单分类问题实战

因为在准备下个学期的数模比赛,想着就拿Kaggle上的机器学习比赛练练手,熟悉一下sklearn库的一些算法。笔者也是由易入难,所以一开始选了一个比较简单的分类问题。
比赛的题目也贴在了下方👇。
在这里插入图片描述
首先,我们在kaggle上参加一个比赛就要先去看比赛的要求和这个比赛提供的相关数据集。
比赛要求和数据集如下图👇
在这里插入图片描述
在这里插入图片描述
我们可以从上图看到这是一个二分类问题,并且从我对数据集的形状输出也可以看到我们的数据都是40维的,并且我们最终要输出的应该是针对测试集给出的9000个标签。

那么接下来我们就要开始一步一步的完成这项任务了。

读取数据

在这里插入图片描述
首先这里我们用pd.read_csv读取三个csv文件,当然了,文件名都是自己取得哈,并且记得如果不想加文件路径直接导入的话,请把文件和jupyter文件放在同一目录下。
这里有个小细节就是read_csv函数中有一个header的参数,如果不把这个参数设置为None,那么在读数据的时候为默认把第一行数据作为标题,而如果设置为None,则会帮我们加一个0,1,2…N的标题
在这里插入图片描述

数据清洗

在数据清洗部分,我们首先是要判断各个维度的数据有没有缺失值。
在这个步骤中,我们使用pd.count()函数对数据集进行判断。这里可以看到一共四十个维度(由于截图大小原因只有前24个),每个维度的数据量都是1000,和train数据形状中的1000相吻合,说明了该数据集中没有缺失数据(真的很简单哈,之前做的房价预测的数据集都是大几百的缺失值)
在这里插入图片描述
因为这里数据没有缺失,所以就少了对缺失值做处理的步骤。

特征工程

这里先简单介绍一种数据相关性的分析,因为本题各个维度的数据也没有名称,所以其实分析相关性也很难判断出有什么实际的意义
在这里插入图片描述
这里我们使用.corr()函数算出各个数据之间的协方差来判断不同维度之间的相关性,颜色越红代表越相关,因为协方差矩阵肯定是对称的并且对角线上必定相关性是1,所以我们可以看到上图

进行预测

还是处于介绍的目的,所以这里我也只是用了一个逻辑回归去进行分类
在这里插入图片描述
这里我们可以看到我们用.predict()函数就已经得到了对应的标签,但是我们根据提交要求是需要交一个csv文件,所以我们先用pd.dataframe()函数把label转换为dataframe类型的数据。
在这里插入图片描述
接着我们把dataframe数据写成csv文件格式,这时在当前目录下我们就可以看到一个名叫label的文件,此时提交这个文件作为我们的答案就行了
在这里插入图片描述

总结

首先总的来说,该问题属于是很简单的一个二分类问题,并且数据集中也没有缺失数据需要处理,所以我们就直接用逻辑回归就可以简单的得出答案。但是如果这是按照我上面这样做并不能得到非常好的结果,因为数据中还是有可以做文章的地方,并且还有很多其它的分类算法可以尝试。不过,这篇文章写出来的目的也是让大家知道在做一个kaggle的比赛时大题有哪几个步骤去做,并没有追求很高的正确率。


http://chatgpt.dhexx.cn/article/hVwPvjkJ.shtml

相关文章

Kaggle 入门(Kaggle网站使用及项目复现)

目录 一、简介 二、前期准备 1、python环境 2、pycharm 三、网页运行 1、网址:kaggle.com 2、注册账号 3、打开一个项目 4、进入后可以看到项目的代码 5、点Edit可以进入编辑模式 6、此处可以更改名字并保存 7、选择run all可以运行 8、在output处下载运…

Kaggle注册方法

官网:https://www.kaggle.com/ 1. 点击Register 2. 选择邮箱注册 3. 人机验证。这一步是最难的,因为国内网选择是注册是无法显示人机验证的的,进而收不到验证码就注册不了,会显示Captcha must be filled out(必须填写…

Kaggle入门准备与上网指南

0x01 注册 Kaggle官网:https://www.kaggle.com 可以用普通邮箱注册,注册好了会在邮箱收到验证链接,但点开链接需要进行人机验证,科学上网才能显示,验证框如下图所示(之前已经注册过了,就在网上…

ps-去除红色印章和为人物添加口红

ps-去除红色印章 步骤: 通道面板-->选择红色通道 ctrlL调出色阶,滑块向左调整到印章消失图像-->模式--->灰度 (删除其它通道,保留红色通道)ctrls保存 ps-添加口红 步骤: 钢笔工具(选出嘴唇部分&#xf…

印章擦除算法

分享下处理过的一套印章定位擦除算法效果。 (1)算法实现印章定位;并对定位上的印章进行擦除。 (2)输入一幅图像,输出定位坐标及擦除后的图像。

利用PS快速去除图片中的红章子

如果文件是彩色的,用上面的方法就会使原来的图片颜色变掉,我们可以局部去除。点击工具栏里选择工具,选择红章子那块画框线。 2 然后我们需要去掉这个选项框里的红色,去掉红色我们需要借助其它工具,现在我们点击上方的选…

怎么把照片里的水印去掉?这三个办法教给你

图片水印是指在图片上添加一些文字或图形,以标识该图片的来源或版权归属。它可以让人们更容易地辨认出图片的来源,从而增强品牌的辨识度。如果我们在网上看到很喜欢的照片,想要用来个人收藏或者当做背景图,而它的图片水印只是为了…

自动生成电子印章

网络办公正逐渐成为常态,无纸化办公也是一个潮流,这二者需要电子签章,最简单的方法就是在纸上盖一个章然后扫描成电子图片文件,最后在你的系统加载这个签章电子图片文件。但这样就会些不理想的地方,如果不是透明的&…

photoshop印章效果制作

最近因为新冠的原因经济不景气,行业离职率都偏高,希望这篇文档能给大家一点帮助 一、印章效果制作 打开photoshop软件,新建500*500像素photoshop图层 然后选择“椭圆工具”,去掉填充,描边颜色为红色,粗细为…

UNet实现文档印章消除

向AI转型的程序员都关注了这个号???????????? 机器学习AI算法工程 公众号:datayx 一个分割网络——Unet,Unet借鉴了FCN网络,其网络结构包括两个对称部分:前面一部分网络与普通卷积网络相同,使用了3x3的卷…

Python-OpenCV 图像处理(十九):霍夫圆检测 (发票印章去除)

import cv2 import numpy as np from matplotlib import pyplot as plt__author__ "zxsuperstar" __email__ "zxsuperstar163.com"""" 霍夫圆检测 """ def detect_circle_demo(image):# dst cv2.cv2.GaussianBlur(image,…

OpenCV精进之路(二十一):实例——去除发票上的印章

最近在做票据识别的编码工作时遇到一些问题,就是票据上往往会有一些红色印章把一些重要信息区域给覆盖了,比如一些开发票人员盖印章时比较随意,容易吧一些关键区域给遮蔽了,这让接下来的票据识别很困难,因此&#xff0…

PS抠印章|证件照换背景

工具:PS CC2018 技巧一:抠印章 方法:色阶亮度/对比度色彩范围仿制图章前景色填充 效果展示: 图片来源于网络(如有侵权,请联系) 步骤1: 复制一个图层(为了保留原图&…

OpenCV探索之路(二十六):如何去除票据上的印章(C++ )

最近在做票据识别的编码工作时遇到一些问题,就是票据上往往会有一些红色印章把一些重要信息区域给覆盖了,比如一些开发票人员盖印章时比较随意,容易吧一些关键区域给遮蔽了,这让接下来的票据识别很困难,因此&#xff0…

OpenCV实践:去除票据中的红色印章

现实生活中,一些票据(比如发票、车票)等都会有一个红色印章,有时会盖在某个关键区域,影响了其他的字符识别。因此,为了提高准确率,我们尽量会移除红色印章,具体实现方法如下&#xf…

OpenCV探索之路(二十六):如何去除票据上的印章

http://www.cnblogs.com/skyfsm/p/7638301.html 最近在做票据识别的编码工作时遇到一些问题,就是票据上往往会有一些红色印章把一些重要信息区域给覆盖了,比如一些开发票人员盖印章时比较随意,容易吧一些关键区域给遮蔽了,这让接下…

OPENCV实践项目-去除票据中的红色印章

目录 1. 实现方法2. 代码实现3. 结果展示 1. 实现方法 现实生活中,一些票据(比如发票、车票)等都会有一个红色印章,有时会盖在某个关键区域,影响了其他的字符识别。因此,为了提高准确率,我们尽…

OpenCV:如何去除票据上的印章

最近在做票据识别的编码工作时遇到一些问题,就是票据上往往会有一些红色印章把一些重要信息区域给覆盖了,比如一些开发票人员盖印章时比较随意,容易吧一些关键区域给遮蔽了,这让接下来的票据识别很困难,因此&#xff0…

OpenCV—python 发票印章去除或分割(图像内容识别预处理)

前言 在做发票内容识别时,发现发票的印章遮挡住文字信息,尤其在合计金额处,导致这一处的信息提取出问题,于是想到去除发票印章。 思路一:通过颜色通道获取所需信息图 (代码主要是参考 http://www.deanha…

【图像处理通道分离去除印章】

如下图所示&#xff0c;想要取出图像上的红色印记&#xff0c;我们可以采用通道分离的方法&#xff0c;具体如下&#xff1a; #include<opencv2\opencv.hpp> #include<string> #include <vector>using namespace cv; using namespace std;int main() {Mat sr…