机器学习例题——预测facebook签到位置(K近邻算法)和葡萄酒质量预测(线性回归)

一、预测facebook签到位置

代码展示:

import pandas as pd
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.model_selection import cross_val_score
from sklearn.metrics import accuracy_score# 1.获取数据集
df = pd.read_csv("./data/train.csv", encoding="utf-8")
print(df.shape)
# 2.基本数据处理
# 2.1 缩⼩数据范围
df_data = df.query('(x >= 2) & (x <= 3) & (y >= 2) & (y <= 3)').copy()
print(df_data.shape)
# 2.2 选择时间特征
# 假设这里我们提取时间特征中的小时部分作为新特征
df_data['hour'] = pd.to_datetime(df_data['time'], unit='s').dt.hour
print(df_data.hour)# 2.3 去掉签到较少的地⽅
# 假设我们去掉签到次数小于10次的地方
place_counts = df_data['place_id'].value_counts()
less_visited_places = place_counts[place_counts < 10].index
df_data = df_data[~df_data['place_id'].isin(less_visited_places)]
print(df_data.shape)# 2.4 确定特征值和⽬标值
# 选择x, y, hour作为特征值,place_id作为目标值
X = df_data[['x', 'y', 'hour']]
y = df_data['place_id']# 2.5 分割数据集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 3.特征工程 -- 特征预处理(标准化)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)# 4.机器学习 -- knn+cv
# 假设我们使用KNN算法,K值设为5
knn = KNeighborsClassifier(n_neighbors=5)
# 使用交叉验证评估模型
cv_scores = cross_val_score(knn, X_train, y_train, cv=5)
print("交叉验证得分:", cv_scores)
print("平均交叉验证得分:", cv_scores.mean())# 在训练集上训练模型
knn.fit(X_train, y_train)# 5.模型评估
y_pred = knn.predict(X_test)
test_accuracy = accuracy_score(y_test, y_pred)
print("测试集上的准确率:", test_accuracy)

结果展示: 

交叉验证得分: [0.38221957 0.38024076 0.38277611 0.37953993 0.38213712]
平均交叉验证得分: 0.3813826936554397
测试集上的准确率: 0.38908035552330855

 二、葡萄酒质量预测

from sklearn.datasets import load_wine
from sklearn.linear_model import LinearRegression, SGDRegressor
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.metrics import mean_squared_error
import joblib# 1.获取数据集
df = load_wine()
# 2.基本数据处理
x_train, x_test, y_train, y_test = train_test_split(df.data, df.target, test_size=0.2, random_state=20)
# 3.特征工程
transfer = StandardScaler()
x_train = transfer.fit_transform(x_train)
x_test = transfer.transform(x_test)# 4.机器学习 - 正规方程
lr = LinearRegression()
lr.fit(x_train, y_train)joblib.dump(lr,"./test.pkl")lr = joblib.load("./test.pkl")# 5.模型预测与评估 - 正规方程
lr_predict = lr.predict(x_test)
lr_mse = mean_squared_error(y_test, lr_predict)
print("正规方程的均方误差:", lr_mse)# 4.机器学习 - 梯度下降法
sgd = SGDRegressor()
sgd.fit(x_train, y_train)# 5.模型预测与评估 - 梯度下降法
sgd_predict = sgd.predict(x_test)
sgd_mse = mean_squared_error(y_test, sgd_predict)
print("梯度下降法的均方误差:", sgd_mse)

结果展示:

正规方程的均方误差: 0.06709703764885735
梯度下降法的均方误差: 0.06637844373293354

 

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

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

相关文章

对ubuntu的简单介绍

目录 1. 简介 2. 核心特点 3. 系统架构与技术亮点 4. 适用场景 5. 优缺点分析 6. 安装与配置建议 7. 未来发展方向 总结 1. 简介 Ubuntu 是基于 Debian 的开源 Linux 操作系统&#xff0c;由 Canonical 公司&#xff08;创始人 Mark Shuttleworth&#xff09;提供商业支…

多商户电商系统整套源码开源,支持二次开发,构建多店铺高效联动运营方案

在数字化浪潮席卷全球的今天&#xff0c;电商行业竞争愈发激烈&#xff0c;多商户电商平台凭借其独特的生态优势&#xff0c;成为众多企业和创业者的热门选择。一套优质的多商户电商系统不仅能为商家提供稳定的销售渠道&#xff0c;还能为平台运营者创造巨大的商业价值。分享一…

Qwen3与Deepseek R1对比(截止20250506)

Qwen3和DeepSeek R1都是在AI领域内备受关注的大规模语言模型。根据最近的评测和报道&#xff0c;以下是Qwen3与DeepSeek R1的一些对比要点&#xff1a; 全面性能&#xff1a; Qwen3被描述为在数学、推理、代码等核心能力上全面超越了DeepSeek R1。特别是在编程能力方面&#x…

Linux56 YUM源配置

epel未启动 显示系统未通过注册 配置YUM仓库 本地YUM仓库 1.备份 tar -zcf repo.tar.gz *.repo 2.挂载 mount -o ro /dev/sr0 /mnt 3.开机自启 chmod x /etc/rc.local echo ‘mount -o ro /dec/sr0 /mnt’ /etc/rc.local 4.编写本地YUM仓库 local.repo [local] namelocal yum …

二叉树—中序遍历—非递归

初始状态 假设当前从根节点 b 开始&#xff0c;此时栈为空 。 第一步&#xff1a;处理根节点 b 的左子树 调用 goAlongLeftBranch 函数&#xff0c;从节点 b 开始&#xff0c;因为 b 有左子树&#xff08;节点 a &#xff09;&#xff0c;将 b 入栈&#xff0c;此时栈&#…

R 语言科研绘图第 45 期 --- 桑基图-和弦

在发表科研论文的过程中&#xff0c;科研绘图是必不可少的&#xff0c;一张好看的图形会是文章很大的加分项。 为了便于使用&#xff0c;本系列文章介绍的所有绘图都已收录到了 sciRplot 项目中&#xff0c;获取方式: R 语言科研绘图模板 --- sciRplothttps://mp.weixin.qq.c…

ARM 流控制指令

计算机按照严格的顺序执行指令。流控制改变了默认的顺序执行方式。前面已 经介绍了强制跳转到程序中某个非顺序位置的无条件分支。以及依据测试结果 进行跳转的条件分支。这里将介绍子程序调用和返回指令&#xff0c;它们会跳转到一个 指令块、执行这些指令&#xff0c;然后返回…

PDF内容搜索--支持跨文件夹多文件、组合词搜索

平时我们接触到的PDF文档特别多&#xff0c;需要对PDF文档做一些处理&#xff0c;那么今天给大家带来的这两个软件非常的棒&#xff0c;可以帮你提升处理文档的效率。 PDF内容搜索 快速检索 我用夸克网盘分享了「PDF搜索PDF 转长图.zip」&#xff0c;点击链接即可保存。打开「…

个人Unity自用面经(未完)

目录标题 1.在 2D 平台跳跃游戏项目中&#xff0c;你使用了对象池来生成和回收怪物包含阵亡的动画预制件。在对象池回收对象时&#xff0c;如何确保动画状态被正确重置&#xff0c;避免下次使用时出现异常&#xff1f;2.在僵尸吃脑子模拟项目中&#xff0c;你创建了继承于IAspe…

【计网】ICMP、IP、Ethernet PDU之间的封装关系

TCP/IP体系结构 应用层RIP、OSPF、FTP运输层TCP、UDP网际层IP、ARP、ICMP网络接口层底层协议&#xff08;Ethernet&#xff09; 数据链路层 Ethernet报文格式 6Byte6Byte2Byte46~1500Byte4Byte目的MAC地址源MAC地址类型/长度数据FCS 其中&#xff0c;类型 / 长度值小于 1536…

前端取经路——入门取经:初出师门的九个CSS修行

大家好&#xff0c;我是老十三&#xff0c;一名前端开发工程师。CSS就像前端修行路上的第一道关卡&#xff0c;看似简单&#xff0c;实则暗藏玄机。在今天的文章中&#xff0c;我将带你一起应对九大CSS难题&#xff0c;从Flexbox布局到响应式设计&#xff0c;从选择器优先级到B…

n8n工作流自动化平台的实操:Cannot find module ‘iconv-lite‘

解决问题&#xff1a; 1.在可视化界面&#xff0c;执行const iconv require(iconv-lite);&#xff0c;报Cannot find module iconv-lite [line 2]错误&#xff1b; 查看module的路径 进入docker容器 #docker exec -it n8n /bin/sh 构建一个test.js,并写入如何代码 vi tes…

如何在 PowerEdge 服务器上设置 NIC 分组

以下文章提供了有关 Windows、VMware 和 Linux 中的 NIC 分组的信息。 什么是网络适配器分组&#xff1f;设置 NIC 分组 Windows设置 NIC 分组 VMware设置 NIC 分组 Linux 什么是网络适配器分组&#xff08;绑定&#xff09;&#xff1f; 网络适配器分组是一个术语&#xff0…

【Java ee初阶】多线程(5)

一、wait 和 notify wait notify 是两个用来协调线程执行顺序的关键字&#xff0c;用来避免“线程饿死”的情况。 wait 和 notify 其实都是 Object 这个类的方法&#xff0c;而 Object这个类是所有类的“祖宗类”&#xff0c;也就是说明&#xff0c;任何一个类&#xff0c;都…

基于k8s的Jenkins CI/CD平台部署实践(二):流水线构建与自动部署全流程

基于k8s的Jenkins CI/CD平台部署实践&#xff08;二&#xff09;&#xff1a;流水线构建与自动部署全流程 文章目录 基于k8s的Jenkins CI/CD平台部署实践&#xff08;二&#xff09;&#xff1a;流水线构建与自动部署全流程一、Jenkins简介二、系统架构与环境说明1. 系统架构2.…

《Windows 环境下 Qt C++ 项目升级 GCC 版本的完整指南》

Windows 环境下 Qt C++ 项目升级 GCC 版本的完整指南 在 Windows 系统中升级 Qt C++ 项目的 GCC 版本需要同时考虑 Qt 工具链、MinGW 环境以及项目配置的调整。以下是详细的升级步骤和注意事项: 一、升级前的准备工作 1. 确认当前环境 检查 Qt 版本(建议使用 Qt 5.15+ 以获…

【coze】故事卡片(图片、音频、文字)

【coze】故事卡片&#xff08;图片、音频、文字&#xff09; 1、创建智能体2、添加人设与回复逻辑3、添加工作流&#xff08;1&#xff09;创建工作流&#xff08;2&#xff09;添加大模型节点&#xff08;3&#xff09;添加提示词优化节点&#xff08;4&#xff09;添加豆包图…

Maven 依赖发布与仓库治理

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

虚拟现实视频播放器 2.6.1 | 支持多种VR格式,提供沉浸式观看体验的媒体播放器

虚拟现实媒体播放器是一款专为在智能手机上播放VR&#xff08;虚拟现实&#xff09;照片和视频而设计的应用程序。它支持多种格式的影像内容&#xff0c;包括360和180等距矩形柱面、标准镜头和鱼眼镜头拍摄的照片和视频&#xff0c;并且兼容3D立体并排、上/下以及收缩媒体格式。…

ts axios中报 Property ‘code‘ does not exist on type ‘AxiosResponse<any, any>‘

ts语法有严格的格式&#xff0c;如果我们在处理响应数据时&#xff0c;出现了axios响应中非默认字段&#xff0c;就会出现标题那样的警告&#xff0c;我们可以通过创建axios.dt.ts解决这个问题 下面是我在开发中遇到的警告&#xff0c;code并不是axios默认返回的字段&#xff0…