当前位置: 首页 > news >正文

机器学习例题——预测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

 

相关文章:

  • 多模态训练与微调
  • TypeScript简介
  • MPay码支付系统第四方聚合收款码多款支付插件个人免签支付源码TP8框架全开源
  • MD2card + Deepseek 王炸组合 一键制作小红书知识卡片
  • Qwen3与Deepseek R1对比(截止20250506)
  • CentOS 7 安装指定版本 Docker 及镜像加速/配置优化攻略
  • 计算机视觉与深度学习 | 基于数字图像处理的裂缝检测与识别系统(matlab代码)
  • SiC 材料及器件在高频大功率领域的应用现状
  • MCP服务发展现状的有趣发现
  • 【每天一个知识点】使用 apriori() 函数获取频繁项集
  • 论广告系统对存算分离架构的应用
  • 代码随想录算法训练营第60期第二十八天打卡
  • 1ms城市算网稳步启航,引领数字领域的“1小时经济圈”效应
  • C++复习
  • 老牌即时通讯应用Skype被关闭,卒年22岁!
  • 2024 ICPC武汉邀请赛暨湖北省赛 题解
  • [特殊字符]【深度解析】Transformer革命:《Attention Is All You Need》完全解读
  • 数据初步了解
  • Excel Vlookup
  • Flutter 布局
  • 8小时《大师与玛格丽特》:长度可以是特点,但不是价值标准
  • 外交部发言人就当前印巴局势答记者问
  • 上海市委常委会扩大会议传达学习习近平总书记考察上海重要讲话和在部分省区市“十五五”时期经济社会发展座谈会上的重要讲话精神
  • 马上评|独生子女奖励不能“私了”,政府诚信是第一诚信
  • A股高开高走,三大股指涨超1.1%:两市成交1.3万亿元,近5000股收涨
  • 发表“男性患子宫肌瘤”论文的杂志一年发文三千余篇,中介称可提供代写