01- 机器学习经典流程 (中国人寿保费项目) (项目一)

news2024/9/28 15:31:24
  •  删除特征: data = data.drop(['region', 'sex'], axis=1)
  • 特征数据调整: data.apply( )
# 体重指数,离散化转换,体重两种情况:标准、肥胖
def convert(df,bmi):
    df['bmi'] = 'fat' if df['bmi'] >= bmi else 'standard'
    return df
data = data.apply(convert, axis = 1, args=(30,))  # args 是传参
  • 将非数字类型特征转换为数值: data = pd.get_dummies(data)
  • 设定目标值和特征值:
X = data.drop('charges', axis=1) # 训练数据
y = data['charges'] # 目标值


中国人寿保费项目

数据存储: https://blog.csdn.net/March_A/article/details/128985290

1. 导入数据

import numpy as np
import pandas as pd
data = pd.read_excel('./中国人寿.xlsx')
data.head(10)

2. 查看数据特征

import seaborn as sns
# 性别对保费影响
sns.kdeplot(data['charges'],shade = True,hue = data['sex'])

# 地区对保费影响
sns.kdeplot(data['charges'],shade = True,hue = data['region'])

# 吸烟对保费影响
sns.kdeplot(data['charges'],shade = True,hue = data['smoker'])

# 孩子数量对保费影响
sns.kdeplot(data['charges'],shade = True,hue = data['children'],palette='Set1')

  • 不同性别对保费影响不大,不同性别的保费的概率分布曲线基本重合,因此这个特征无足轻重,可以删除, 地区同理

  • 吸烟与否对保费的概率分布曲线差别很大,整体来说不吸烟更加健康,那么保费就低,这个特征很重要

  • 家庭孩子数量对保费有一定影响

3. 删除不重要数据

data = data.drop(['region', 'sex'], axis=1)

4 特征属性调整

# 体重指数,离散化转换,体重两种情况:标准、肥胖
def convert(df,bmi):
    df['bmi'] = 'fat' if df['bmi'] >= bmi else 'standard'
    return df
data = data.apply(convert, axis = 1, args=(30,))  # args 是传参
data.head()

5 非数值转换为数据类型 (去字符串)

# 特征提取,离散型数据转换为数值型数据
data = pd.get_dummies(data)
data.head()

6 设定目标值和特征值

# 特征和目标值抽取
X = data.drop('charges', axis=1) # 训练数据
y = data['charges'] # 目标值
X.head()

7 数据拆分

# 数据拆分
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

8 数据升维

# 特征升维
from sklearn.preprocessing import PolynomialFeatures
poly = PolynomialFeatures(degree= 2, include_bias = False)
X_train_poly = poly.fit_transform(X_train)
X_test_poly = poly.fit_transform(X_test)

9 模型训练

# 模型训练
from sklearn.linear_model import LinearRegression
model_1 = LinearRegression()
model_1.fit(X_train_poly, y_train)

# 使用弹性网络训练
from sklearn.linear_model import ElasticNet
model_2 = ElasticNet(alpha = 0.3,l1_ratio = 0.5,max_iter = 50000)
model_2.fit(X_train_poly,y_train)

10  模型评估

model_1.score(X_train_poly, y_train)  # 0.8624083431844988
model_2.score(X_test_poly, model_2.predict(X_test_poly))   # 1.0
# 模型评估
from sklearn.metrics import mean_squared_error,mean_squared_log_error
print('训练数据均方误差:',
      np.sqrt(mean_squared_error(y_train,model_1.predict(X_train_poly))))
print('测试数据均方误差:',
      np.sqrt(mean_squared_error(y_test,model_1.predict(X_test_poly))))

print('训练数据对数误差:',
      np.sqrt(mean_squared_log_error(y_train,model_1.predict(X_train_poly))))
print('测试数据对数误差:',
      np.sqrt(mean_squared_log_error(y_test,model_1.predict(X_test_poly))))

结论:

  • 进行EDA数据探索,可以查看无关紧要特征

  • 进行特征工程:删除无用特征、特征离散化、特征提取。这对机器学习都至关重要

  • 对于简单的数据(特征比较少)进行线性回归,一般需要进行特征升维

  • 选择不同的算法,进行训练和评估,从中筛选优秀算法

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Hadoop技术浅析

一、什么是HadoopHadoop是一个适合大数据存储和计算的分布式框架Hadoop广义狭义之分狭义上Hadoop指Hadoop框架广义上随着大数据技术的发展,Hadoop也发展成了一个生态圈,包含:Sqoop:Sqoop是一款开源的工具,主要用于在Ha…

洛谷2月普及组(月赛)

🌼小宇(治愈版) - 刘大拿 - 单曲 - 网易云音乐 OI赛制且难度对标蓝桥杯省赛(😥真难,第三题做了几百年,第四题只敢骗骗分) 花了10块钱🙃 买官网的思路,结果…

linux004之 vi和vim编辑器

vi、vim编辑器简介: 是linux中的文本编辑器,用来在linux系统中查看或编辑文本文件的命令, 相当于windows文本编辑器。 vi和vim的区别, vim是增强版, 功能相比vi是增强了。功能都查不多,用哪个都行&#xff…

数据库高并发和高可用方案

依旧主要参考沈剑大佬的多篇博文,以及数位网友的优秀分享,文末是完整参考。 1、高可用方案(HA,High Availability) 缓存是通过双写和双读主备、或者利用缓存的集群数据同步,故障自动转移来实现的 数据库的读是通过读写分离(MHA&am…

06-PS中的四种蒙版

Photoshop中的蒙版就是遮罩的意思,主要作用就是将其所在的图层,把不同的明暗度转化成相应的透明度。黑色为完全透明,灰色为半透明,白色为完全不透明。添加蒙版有便于灵活修改,不影响图层原貌。PS蒙版有四类&#xff1a…

【状态估计】基于二进制粒子群优化 (BPSO) 求解最佳 PMU优化配置研究【IEEE30、39、57、118节点】(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Mybatis与微服务注册

目录 一,Springboot整合MybatisPlus 创建商品微服务子模块 二,SpringBoot整合Freeamarker 三、SpringBoot整合微服务 &gateway&nginx 整合微服务之商品服务zmall-product 创建并配置网关gateway服务 安装配置SwitchHosts 安装配置Windo…

【大数据hive】hive 函数使用详解

一、前言 在任何一种编程语言中,函数可以说是必不可少的,像mysql、oracle中,提供了很多内置函数,或者通过自定义函数的方式进行定制化使用,而hive作为一门数据分析软件,随着版本的不断更新迭代&#xff0c…

代码随想录第58天(动态规划):● 392.判断子序列 ● 115.不同的子序列

一、判断子序列 题目描述: 思路和想法: 这道题目还是最长公共子序列的拓展,只是这里进行删除的一定是t字符串,当不相等时,dp[i][j] dp[i][j - 1];其余基本一致。当最长公共子序列个数等s.size()时&#x…

Leetcode力扣秋招刷题路-0050

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 50. Pow(x, n) 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出&am…

N字形变换-力扣6-java

一、题目描述将一个给定字符串 s 根据给定的行数 numRows ,以从上往下、从左到右进行 Z 字形排列。比如输入字符串为 "PAYPALISHIRING" 行数为 3 时,排列如下:P A H NA P L S I I GY I R之后,你的输出需要从左往右逐行读…

大神之路-起始篇 | 第11章.计算机科学导论之【数据压缩】学习笔记

欢迎关注「全栈工程师修炼指南」公众号点击 👇 下方卡片 即可关注我哟!设为「星标⭐」每天带你 基础入门 到 进阶实践 再到 放弃学习!涉及 企业运维、网络安全、应用开发、物联网、人工智能、大数据 学习知识“ 花开堪折直须折,莫待无花空折…

【深度学习】卷积神经网络

1 卷积神经网络(CNN)可以做什么? 检测任务分类与检索超分辨率重构:将图像训练的更清晰医学任务等无人驾驶人脸识别 2 用GPU:图像处理单元 比CPU块一百倍以上 3 卷积神经网络与传统神经网络的区别 传统神经网络&…

从证券软件开发到大数据开发,薪资涨幅一倍多,我经历了什么?

点击上方 "大数据肌肉猿"关注, 星标一起成长点击下方链接,进入高质量学习交流群今日更新| 1052个转型案例分享-大数据交流群分享学习群一位同学的大数据转型经历,他17年毕业后培训了几个月去了杭州一家证券公司做外包,用的是古老的…

有限元分析学习一

系列文章目录 有限元分析学习一 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录系列文章目录前言一、有限元方法的简单介绍1.1 有限元的基础概念1.2 有限元软件发展历史1.3 有限元软件二、弹性力学的简单介绍2.1.…

【Spring】注解实现IOC操作,你理解了吗?

作者:狮子也疯狂 专栏:《spring开发》 坚持做好每一步,幸运之神自然会驾凌在你的身上 专栏推荐:写文章刚刚起步,各个专栏的知识点后续会补充完善,不断更新好文,希望大 家支持一下。 专栏名字El…

jetson nano(ubuntu)安装ninja

文章目录安装环境安装环境 jetson nano 系统:4.6.1 安装re2c apt-get install re2c检查re2c是否安装成功 re2c --version ![在这里插入图片描述](https://img-blog.csdnimg.cn/847c19f15c2646bda44f6ae73b78509a.png#pic_center)下载ninja源代码 git clone https:/…

和在字节上班的兄弟聊过后,才知道原来年薪40W的测试有这么多?

最近脉脉职言区有一条讨论火了: 哪家互联网公司薪资最‘厉害’? 下面的评论多为字节跳动,还炸出了很多年薪40W的测试工程师 我只想问一句,现在的测试都这么有钱了吗? 前几天还有朋友说,从腾讯跳槽去了字…

(干货教程)在VSCode并使用chatgtp插件编写CC++语言程序

(干货教程)在VSCode并使用chatgtp插件编写CC语言程序 下载并安装VSCODE 第1步,下载VSCODE https://code.visualstudio.com/Download 第2步,安装VSCODE 安装过程较简单,这里省略。 安装好后效果如图&#xff1a…

(C语言)数据的存储

问:1. 数据类型有哪五大类?2. 数据类型的作用是什么与什么?3. 整型又可以具体分为哪五个?为什么字符char也归属于整型?4. 浮点型又可以具体分为哪两类?5. 构造类型就是什么?具体分为哪四类&…