机器学习实战7-基于机器学习算法预测相亲成功率

news2025/1/11 5:51:01

大家好,我是微学AI,今天给大家介绍一下机器学习实战7-基于机器学习算法预测相亲成功率,随着社会的发展,大家都忙于事业,对自己的终身大事就耽搁了,相亲是一种传统的寻找伴侣的方式,随着时代的发展,相亲的方式也在不断地改变。在这个过程中,了解相亲双方的信息以及预测相亲是否成功变得越来越重要。本文将介绍如何使用随机森林算法对相亲成功进行预测,通过分析男女双方的房子、车子、长相、家庭条件、父母情况、生活习惯、学历、性格、兴趣等因素,来预测相亲是否成功。

一、设定条件的合并

相亲过程,如果是设定单个条件的话是比较好找,但是将几个条件综合的话概率就低了。真正符合你设定的所有条件的人其实很少了。之前有过这样的一个统计:

某个城市要找一个170以上,本科学历,月薪5000以上,有房,中等长相,无不良嗜好的男生只剩150了。某城市主城区内常住人口300万,男性占一半的话,剩150万,其中年龄段在25-35之间的占20%, 还剩30万,其中还有排除已经结婚,有女朋友的,剩10万。中国南方男性平均身高168.5,170以上的占40%多,还剩4万,其中有独立房的占10%,剩4000,本科及以上占50%,剩2000,月薪5000及以上占50%,剩1000,中等长相的占50%,剩500,父母有体面工作的,健康,家庭和睦,有退休金占60%,剩300,无不良嗜好,不抽烟,不喝酒,顾家的再占一半,剩150。这样看来就是这样简简单单条件的都这么少了。

二、相亲数据集的描述

1.本文使用的数据集为CSV格式,包含以下字段:

房子(house):是否拥有房子(0:无,1:有)

车子(car):是否拥有车子(0:无,1:有)

长相(appearance):长相评分(1-10)

家庭条件(family_status):家庭经济条件评分(1-10)

父母情况(parents_status):父母健康状况评分(1-10)

生活习惯(lifestyle):生活习惯评分(1-10)

学历(education):学历等级(1:小学,2:初中,3:高中,4:大学,5:硕士,6:博士)

性格(personality):性格评分(1-10)

兴趣(interests):兴趣相似度评分(1-10)

相亲成功(success):是否相亲成功(0:失败,1:成功)

2.数据样例:

数据集为男生条件的数据,在那是有这些条件下的时候相亲成功的情况:

house,car,appearance,family_status,parents_status,lifestyle,education,personality,interests,success
1,0,7,6,8,5,4,7,6,1
0,1,5,4,7,6,3,6,5,0
1,1,8,7,9,7,5,8,7,1
0,0,4,3,6,4,2,5,4,0
1,0,6,5,7,5,4,6,5,1
1,1,6,8,5,8,6,6,5,0
0,1,5,4,7,6,3,6,5,0
1,0,7,6,8,5,4,7,6,1
0,0,4,3,6,4,2,5,4,0
1,1,8,7,9,7,5,8,7,1
0,1,5,4,7,6,3,6,5,0
1,0,7,6,8,5,4,7,6,1
1,1,5,8,9,8,6,9,8,1
0,0,9,3,6,4,2,9,4,1
1,0,6,5,7,5,4,6,5,1
0,1,5,4,7,6,3,6,5,0
1,1,8,7,9,7,5,8,7,1
1,0,7,6,8,5,4,7,6,1
0,0,4,3,6,4,2,5,4,0
1,1,9,8,9,8,6,9,8,1
1,0,6,5,8,5,4,6,5,1
0,1,5,4,3,6,3,6,5,0
1,1,6,7,9,7,7,8,7,1
1,0,7,6,8,5,4,7,6,1
0,0,9,4,6,7,7,9,8,1
1,0,9,8,6,7,6,9,7,1
1,1,6,7,9,4,5,5,4,0
1,1,6,7,8,3,5,4,5,0
0,1,7,5,8,4,5,4,6,0
0,0,7,3,6,4,7,5,4,0

2.数据预处理

在进行预测之前,需要对数据进行预处理,包括缺失值处理、数据归一化等。

3. 随机森林算法简介

随机森林是一种集成学习算法,它将多个决策树组合在一起进行分类或回归预测。每个决策树都是基于随机的样本和随机的特征选择建立的,这样可以降低模型的方差,提高模型的泛化能力。 在随机森林中,有两种方法可以增加模型的随机性。一种是随机采样,即在训练过程中随机选择一部分样本进行训练,这样可以降低模型的过拟合程度。另一种是随机特征选择,即在每个节点上,随机选择一部分特征进行划分,这样可以避免某些特征对模型的过度依赖。 随机森林的预测结果是基于所有决策树的预测结果的综合得出的,通常是取所有决策树预测结果的平均值(回归问题)或多数投票(分类问题)。随机森林的优点包括易于实现,不需要对数据进行特征缩放,可以处理高维数据和大量样本,同时还可以估计每个特征的重要性。

三、代码实现

以下是使用Python和scikit-learn库实现的随机森林算法预测相亲成功的完整代码:

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report

# 读取数据
data = pd.read_csv('data.csv')

# 数据预处理
data.fillna(data.mean(), inplace=True)

# 划分训练集和测试集
X = data.drop('success', axis=1)
y = data['success']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练随机森林模型
rf = RandomForestClassifier(n_estimators=100, random_state=42)
rf.fit(X_train, y_train)

# 预测
y_pred = rf.predict(X_test)

# 评估
print("Accuracy:", accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))

运行结果:

Accuracy: 1.0
              precision    recall  f1-score   support

           0       1.00      1.00      1.00         2
           1       1.00      1.00      1.00         4

    accuracy                           1.00         6
   macro avg       1.00      1.00      1.00         6
weighted avg       1.00      1.00      1.00         6

Sample prediction: Failure

Process finished with exit code 0

预测数据1:

# 输入样例数据进行预测
sample_data = pd.DataFrame({'house': [0],
                            'car': [0],
                            'appearance': [5],
                            'family_status': [5],
                            'parents_status': [5],
                            'lifestyle': [4],
                            'education': [4],
                            'personality': [7],
                            'interests': [4]})

sample_pred = rf.predict(sample_data)
print("Sample prediction:", "Success" if sample_pred[0] == 1 else "Failure")

运行结果:

Sample prediction: Failure

预测数据2:

# 输入样例数据进行预测
sample_data2= pd.DataFrame({'house': [0],
                            'car': [0],
                            'appearance': [9],
                            'family_status': [5],
                            'parents_status': [5],
                            'lifestyle': [9],
                            'education': [5],
                            'personality': [8],
                            'interests': [8]})

sample_pred2 = rf.predict(sample_data2)
print("Sample prediction:", "Success" if sample_pred2[0] == 1 else "Failure")

运行结果:

Sample prediction: Failure

我们可以看到男生房车,生活习惯,兴趣爱好比较不如意的条件下,就比较难成功。

当男生无房车,但是生活习惯,兴趣爱好与女生很匹配,学历优势,能力优势,也是可以成功的,所以重要的还是看自己的后台能力与性格,能力决定你的幸福。

本文结论仅供参考!

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

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

相关文章

谷歌训了28个15亿参数模型,说明数据对大模型训练的影响

夕小瑶科技说 原创 作者 | Python 随着ChatGPT的爆火,大规模语言模型(Large Language Model,LLM)如日中天。然而,由于相关数据细节并不公开,相关研究大多都是盲人摸象式探索,缺乏系统的经验指导…

关于打卡小程序可能会遇到的部分问题【华为云Astro低代码体验季】

关于打卡小程序可能会遇到的部分问题【华为云Astro低代码体验季】 前提一、可能遇到的问题二、 改进 前提 已经注册华为云账号且浏览过 :华为云Astro制作打卡小程序,在此基础上可能会遇到的问题 一、可能遇到的问题 当创建完成应用后,如果…

设计模式之~外观模式

定义: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 结构图: 区分中介模式: 门面模式对外提供一个接口 中介模式对内提供一个接口 优点: 松耦…

【算法题解】32. 验证二叉搜索树的递归解法

这是一道 中等难度 的题 https://leetcode.cn/problems/validate-binary-search-tree/ 题目 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左子树只包含 小于 当前节点的数。节点的右子树只包含…

【瑞萨RA_FSP】DMAC/DTC编程实战

文章目录 一、DMAC存储器到存储器传输二、DTC外部中断触发传输 一、DMAC存储器到存储器传输 1. FSP配置 打开该工程的 FSP 配置界面。然后按如图步骤加入 DMAC。 加入 DMAC 后如下图所示。 单击上图中新添加的 r_dmac 框,然后在左下角的“属性”窗口配置 DMAC 模…

一分钟学一个 Linux 命令 - cd

前言 大家好,我是 god23bin。欢迎来到这个系列,每天只需一分钟,记住一个 Linux 命令不成问题。今天让我们从 cd 命令开始,掌握在 Linux 系统中切换目录的技巧。 什么是 cd 命令? cd 命令来自这么一个词语&#xff0…

liftOver 不同版本基因组文件相互转化

大家好,我是邓飞。前一段时间有小伙伴在星球提问:想将不同版本的SNP数据合并,不想重新call snp,想把绵羊的V2和V4版本的数据合并,具体来说,是V2转为V4然后与V4合并。 我建议用liftOver软件进行处理&#xf…

SAP-MM-采购折扣知识与会计处理

采购折扣,按折扣的方式和性质可以分为商业折扣和现金折扣两种方式。 商业折扣是指购货方批量进货时,要求销货方按零售价格打一个折扣而少支付的货款金额。企业之间的商品购销活动中,商业折扣是一种较常见的交易现象。 现金折扣则是指在赊购条…

数列DP进阶

目录 一,斜率优化 1,斜率优化原理 2,凸包和斜率计算 3,实战 黑暗爆炸 - 4709 柠檬 二,else 力扣 644. 子数组最大平均数 II(最大子段和二分) ​力扣 646. 最长数对链 力扣 1235. 规划兼…

浅科普一下计算机发展史阶段及那些不为人知的重要里程碑

目录 〇、前言 一、计算机发展历史阶段 二、计算机发展史中重要的里程碑 三、计算机对人类社会发展的重要性 四、计算机的应用领域 五、常见计算机辅助技术 六、总结 〇、前言 计算机的诞生无疑对人类社会的发展起着至关重要的巨大作用。计算机发明者名叫约翰冯诺依曼&a…

SAP-MM-发票-采购运费

采购运费是采购业务中一种特殊的定价,在SAP系统中,交货成本和其相近,是指在货物交付过程中发生的运输成本,只要有货物交付,就会有运费,而运费或者由采购方承担,或者由销售方承担,国内…

03SpringCloud Docker

Docker (1)从VM与Docker框架中,直观上VM多了一层Guest OS,同时Hypervisor会对硬件资源进行虚拟化,docker直接使用硬件资源,所以资源利用率相对docker低。 (2)openstack能够以10台/min的速度创建…

SSM框架学习-拦截器

1. 简介 在Spring框架中,拦截器是一种很重要的组件,它们允许在请求到达控制器之前或之后执行一些代码。拦截器在请求处理的特定点进行拦截,然后通过逻辑来决定是否将控制器的处理传递给下一个处理程序。 在Spring中,拦截器是由实现…

【MATLAB速成】知识点总结(通俗易懂,学不会来打我)

【MATLAB速成】知识点总结(通俗易懂,学不会来打我) 一、概念 MATLAB的中文名称是(矩阵实验室),英文全称是(Matrix Laboratory),是一种以(矩阵计算&#xff…

【学习日记2023.5.30】之 管理端订单模块完善_调用百度地图优化用户端提交订单是否超出配送距离

文章目录 9. 管理端订单模块完善9.1 需求分析和涉及9.2 代码开发Controller层Service层接口Service层实现类Mapper层 9.3 功能测试9.4 提交代码9.5 优化用户下单功能,引入距离判断 9. 管理端订单模块完善 订单搜索各个状态的订单数量统计查询订单详情接单拒单取消订…

古诗生成-pytorch

本文为RNN做古诗生成的一个小demo,只要是为了完成课上的作业(由于训练比较慢,所以周期仅设置为3,大一点性能可能会更好),如有需要可以在这基础之上进行加工,数据集没办法上传,如有需…

FreeRTOS_从底层学习实时操作系统

目录 1. 裸机系统和多任务系统 2. 任务的定任务切换的实现 2.1 什么是任务? 2.2 调度器 2.3 临界段 3. 空闲任务和阻塞延迟 4. 时间片 1. 裸机系统和多任务系统 裸机系统: 裸机系统分为轮询系统和前后台系统;(51单片机就属…

八大排序:直接插入排序、希尔排序、选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序

文章目录 排序概念常见的排序算法常见排序算法的实现直接插入排序希尔排序选择排序堆排序冒泡排序快速排序递归实现Hoare版本挖坑法前后指针法 非递归实现Hoare版本挖坑法前后指针法 快速排序俩个优化 归并排序递归实现非递归实现外排序 计数排序 常见排序算法的性能分析 排序概…

【已完美解决】scons问题求助:如何设置编译输出目录搞清楚后,有些编译输出的obj文件却在源码目录,而不是设置的输出目录。

【已完美解决】scons问题求助:如何设置编译输出目录搞清楚后,有些编译输出的obj文件却在源码目录,而不是设置的输出目录。 文章目录 1 前置背景2 我的疑问3 一手点拨4 问题解决 1 前置背景 最近在基于目前已有的rt-thread构建框架&#xff0…

【Spring源码解读一】IoC容器之AnnotationConfigApplicationContext

根据AnnotationConfigApplicationContext类去阅读其将Bean对象交给IoC容器管理的过程。以下这三个代码块是将配置类注册进IoC容器的例子。下面是关于这个类的继承与实现的类图关系树。 public class Test {public static void main(String[] args) {// 配置类注册进IoC容器App…