深度学习:基于TensorFlow 和 Keras,使用神经网络回归模型预测 IPL 分数

在这里插入图片描述

前言

系列专栏:机器学习:高级应用与实践【项目实战100+】【2024】✨︎
在本专栏中不仅包含一些适合初学者的最新机器学习项目,每个项目都处理一组不同的问题,包括监督和无监督学习、分类、回归和聚类,而且涉及创建深度学习模型、处理非结构化数据以及指导复杂的模型,如卷积神经网络、门控循环单元、大型语言模型和强化学习模型

自 2008 年 IPL 开始举办以来,它吸引了全球各地的观众。高度的不确定性和最后时刻的钉子户促使球迷观看比赛。在很短的时间内,IPL 已成为板球界收入最高的联赛。在板球比赛中,我们经常会看到比分线显示根据当前比赛形势球队获胜的概率。这种预测通常是在数据分析的帮助下完成的。以前,在机器学习还不发达的时候,预测通常是基于直觉或一些基本算法。

作为一名板球迷,板球统计数据的可视化令人着迷。我们浏览了各种博客,发现了一些可以用来提前预测 IPL 比赛得分的模式。

我们人类无法轻易从海量数据中找出模式,因此,机器学习和深度学习在此发挥了作用。它可以了解球员和球队之前对阵对方球队时的表现,并据此训练模型。仅使用机器学习算法的准确率不高,因此我们使用了深度学习,它的性能比我们之前的模型要好得多,并且考虑到了能够提供准确结果的属性。

目录

  • 1. 相关库和数据集
    • 1.1 相关库介绍
    • 1.2 加载数据集
  • 2. 数据预处理
    • 2.1 数据清理
    • 2.2 标签编码
    • 2.3 数据准备(拆分为训练集和测试集)
    • 2.4 特征缩放(归一化)
  • 3. 神经网络
    • 3.1 定义神经网络
    • 3.2 模型训练
    • 3.3 模型评估
  • 4. 创建互动小部件

1. 相关库和数据集

1.1 相关库介绍

Python 库使我们能够非常轻松地处理数据并使用一行代码执行典型和复杂的任务。

  • Numpy – 可用来存储和处理大型矩阵,比Python自身的嵌套列表结构要高效的多。
  • Pandas – 该库有助于以 2D 数组格式加载数据框,并具有多种功能,可一次性执行分析任务。
  • Matplotlib/Seaborn – 此库用于绘制可视化效果,用于展现数据之间的相互关系。
  • Sklearn – 包含多个库,这些库具有预实现的功能,用于执行从数据预处理到模型开发和评估的任务。
  • TensorFlow™ – 是一个基于数据流编程的符号数学系统,被广泛应用于各类机器学习算法的编程实现。
  • Keras – 是一个由Python编写的开源人工神经网络库,可以作为 Tensorflow 的高阶应用程序接口。
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as snsfrom sklearn import preprocessing
import keras 
import tensorflow as tf

1.2 加载数据集

在处理板球数据时,它包含 2008 年至 2017 年的数据。数据集可以从这里下载。该数据集包含场地、日期、击球和保龄球队、击球手和投球手的名称、检票口等特征。

我们使用 .read_csv() 方法将两个数据集导入到 pandas 的数据帧中,并显示每个数据集的前 5 行。

ipl = pd.read_csv('ipl.csv')
ipl.head()

数据集

2. 数据预处理

2.1 数据清理

删除不重要的功能

  1. 我们通过从原始 DataFrame 中删除几列来创建一个新的 DataFrame。
  2. 新的 DataFrame 包含我们将要训练预测模型的其余列。
#Dropping certain features 
df = ipl.drop(['date', 'runs', 'wickets', 'overs', 'runs_last_5', 'wickets_last_5','mid', 'striker', 'non-striker'], axis =1)
  1. 我们将数据框拆分为输入特征 (X) 和目标特征 (y),我们的目标特征是总分。
X = df.drop(['total'], axis =1)
y = df['total']
X.head()

数据前五行

2.2 标签编码

  • 我们在 X 中对分类特征进行了标签编码。
  • 我们为每个分类特征创建了单独的对象,并对其值进行了编码。标签编码器
  • 我们创建了映射,将编码标签转换回原始值,这对解释结果很有帮助。
#Label Encodingfrom sklearn.preprocessing import LabelEncoder# Create a LabelEncoder object for each categorical feature
venue_encoder = LabelEncoder()
batting_team_encoder = LabelEncoder()
bowling_team_encoder = LabelEncoder()
striker_encoder = LabelEncoder()
bowler_encoder = LabelEncoder()# Fit and transform the categorical features with label encoding
X['venue'] = venue_encoder.fit_transform(X['venue'])
X['bat_team'] = batting_team_encoder.fit_transform(X['bat_team'])
X['bowl_team'] = bowling_team_encoder.fit_transform(X['bowl_team'])
X['batsman'] = striker_encoder.fit_transform(X['batsman'])
X['bowler'] = bowler_encoder.fit_transform(X['bowler'])

2.3 数据准备(拆分为训练集和测试集)

我们将数据分为训练集和测试集。训练集包含数据集的 70%,其余 30% 为测试集。

  • X_train 包含输入特征的训练数据。
  • X_test 包含输入特征的测试数据。
  • y_train 包含目标变量的训练数据。
  • y_test 包含目标变量的测试数据。
# Train test Split 
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

2.4 特征缩放(归一化)

  • 我们对输入特征进行了最小-最大缩放,以确保所有特征都在同一比例上
  • 缩放是为了确保尺度一致,以提高模型性能。
  • 缩放使用缩放参数对训练数据和测试数据进行了转换。
from sklearn.preprocessing import MinMaxScalerscaler = MinMaxScaler()# Fit the scaler on the training data and transform both training and testing data
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)

3. 神经网络

3.1 定义神经网络

  • 我们使用 TensorFlow 和 Keras 定义了一个用于回归的神经网络。
  • 定义模型后,我们使用 Huber Loss 对模型进行了编译。
# Define the neural network model
model = keras.Sequential([keras.layers.Input( shape=(X_train_scaled.shape[1],)), # Input layerkeras.layers.Dense(512, activation='relu'), # Hidden layer with 512 units and ReLU activationkeras.layers.Dense(216, activation='relu'), # Hidden layer with 216 units and ReLU activationkeras.layers.Dense(1, activation='linear') # Output layer with linear activation for regression
])# Compile the model with Huber loss
huber_loss = tf.keras.losses.Huber(delta=1.0) # You can adjust the 'delta' parameter as needed
model.compile(optimizer='adam', loss=huber_loss) # Use Huber loss for regression

3.2 模型训练

# Train the model
model.fit(X_train_scaled, y_train, epochs=50, batch_size=64, validation_data=(X_test_scaled, y_test))
Epoch 1/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 56.2658 - val_loss: 22.3282
Epoch 2/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 22.4136 - val_loss: 22.7654
Epoch 3/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 22.2383 - val_loss: 21.9184
Epoch 4/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 22.1480 - val_loss: 22.1336
Epoch 5/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 22.2213 - val_loss: 21.8952
Epoch 6/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 22.1529 - val_loss: 21.8332
Epoch 7/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 22.0361 - val_loss: 21.9755
Epoch 8/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 22.1623 - val_loss: 23.2852
Epoch 9/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 22.1077 - val_loss: 21.8450
Epoch 10/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 22.0598 - val_loss: 21.7673
Epoch 11/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 22.1538 - val_loss: 21.8079
Epoch 12/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 22.0716 - val_loss: 21.8496
Epoch 13/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 22.0589 - val_loss: 21.7739
Epoch 14/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 22.2804 - val_loss: 21.9109
Epoch 15/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 22.1427 - val_loss: 21.7200
Epoch 16/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 22.3138 - val_loss: 21.7095
Epoch 17/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.9855 - val_loss: 21.6038
Epoch 18/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.9500 - val_loss: 21.9648
Epoch 19/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 21.8497 - val_loss: 21.4573
Epoch 20/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 21.7528 - val_loss: 21.6321
Epoch 21/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.6298 - val_loss: 21.3790
Epoch 22/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.6973 - val_loss: 21.4358
Epoch 23/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 21.7973 - val_loss: 22.0959
Epoch 24/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.6350 - val_loss: 21.4656
Epoch 25/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.5059 - val_loss: 21.4100
Epoch 26/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.4734 - val_loss: 21.2435
Epoch 27/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.4959 - val_loss: 21.1024
Epoch 28/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 21.4274 - val_loss: 21.0573
Epoch 29/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.3708 - val_loss: 21.0899
Epoch 30/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 21.3479 - val_loss: 21.3070
Epoch 31/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.3438 - val_loss: 20.9639
Epoch 32/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 21.1507 - val_loss: 20.8814
Epoch 33/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 21.0879 - val_loss: 20.9932
Epoch 34/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 20.9838 - val_loss: 20.7426
Epoch 35/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 21.0293 - val_loss: 20.6817
Epoch 36/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 20.8811 - val_loss: 20.5242
Epoch 37/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 20.6925 - val_loss: 20.5147
Epoch 38/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 3s 2ms/step - loss: 20.5798 - val_loss: 20.3213
Epoch 39/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 20.4411 - val_loss: 20.2086
Epoch 40/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 20.4475 - val_loss: 20.2530
Epoch 41/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 20.3650 - val_loss: 20.0541
Epoch 42/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 20.2180 - val_loss: 20.0937
Epoch 43/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 20.0702 - val_loss: 19.9618
Epoch 44/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 19.8153 - val_loss: 19.9452
Epoch 45/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 19.8323 - val_loss: 19.4963
Epoch 46/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 19.8802 - val_loss: 19.7684
Epoch 47/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 19.5058 - val_loss: 19.3091
Epoch 48/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 19.7167 - val_loss: 19.1579
Epoch 49/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 1s 2ms/step - loss: 19.2688 - val_loss: 19.1043
Epoch 50/50
832/832 ━━━━━━━━━━━━━━━━━━━━ 2s 2ms/step - loss: 19.3352 - val_loss: 18.9863

训练完成后,我们会在训练过程中将训练和验证损失值存储到神经网络中。

model_losses = pd.DataFrame(model.history.history)
model_losses.plot()

损失值

3.3 模型评估

  • 我们使用训练好的神经网络对测试数据进行预测。
  • 变量预测包含基于模型学习模式的测试集预测总运行分数。
# Make predictions
predictions = model.predict(X_test_scaled)from sklearn.metrics import mean_absolute_error,mean_squared_error
mean_absolute_error(y_test,predictions)
713/713 ━━━━━━━━━━━━━━━━━━━━ 1s 687us/step
19.47724912576941

4. 创建互动小部件

  • 我们使用ipywidgets创建了一个交互式小部件,根据用户输入的场地、击球队、保龄球队、前锋和投球手来预测得分。
  • 我们创建了下拉小部件来选择场地、击球队、保龄球队、前锋和投球手的值。
  • 我们添加了一个“预测分数”按钮小部件。无论何时单击该按钮,都会调用predict_score函数,然后执行以下步骤:①将用户选择的值解码为其原始分类值。②对这些值进行编码和缩放,以匹配模型训练中使用的格式。③使用训练好的模型根据用户的输入进行预测。④显示预测分数。
import ipywidgets as widgets
from IPython.display import display, clear_outputimport warnings
warnings.filterwarnings("ignore")venue = widgets.Dropdown(options=df['venue'].unique().tolist(),description='Select Venue:')
batting_team = widgets.Dropdown(options =df['bat_team'].unique().tolist(), description='Select Batting Team:')
bowling_team = widgets.Dropdown(options=df['bowl_team'].unique().tolist(), description='Select Batting Team:')
striker = widgets.Dropdown(options=df['batsman'].unique().tolist(), description='Select Striker:')
bowler = widgets.Dropdown(options=df['bowler'].unique().tolist(), description='Select Bowler:')predict_button = widgets.Button(description="Predict Score")def predict_score(b):with output:clear_output() # Clear the previous output# Decode the encoded values back to their original valuesdecoded_venue = venue_encoder.transform([venue.value])decoded_batting_team = batting_team_encoder.transform([batting_team.value])decoded_bowling_team = bowling_team_encoder.transform([bowling_team.value])decoded_striker = striker_encoder.transform([striker.value])decoded_bowler = bowler_encoder.transform([bowler.value])input = np.array([decoded_venue, decoded_batting_team, decoded_bowling_team,decoded_striker, decoded_bowler])input = input.reshape(1,5)input = scaler.transform(input)#print(input)predicted_score = model.predict(input)predicted_score = int(predicted_score[0,0])print(predicted_score)

基于小部件的界面允许您交互式地预测特定比赛场景的得分。现在,我们已经设置了按钮,当单击时触发predict_score函数,并显示场地、击球队、保龄球队、击球手和投球手的小部件。

predict_button.on_click(predict_score)
output = widgets.Output()
display(venue, batting_team, bowling_team, striker, bowler, predict_button, output)

ipywidgets
我们预测了在印度旁遮普邦球场举行的 CSK 与 King XI Punjab 之间比赛的比分。预测的比赛比分为 183。

通过利用 ML 和 DL 的力量,我们根据历史数据成功预测了板球得分。对于 IPL 爱好者、球队和分析师来说,该模型预测板球比分的能力是一笔宝贵的财富。它可以让人们深入了解比赛的动态,帮助预测不同因素对最终比分的影响。

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

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

相关文章

Cesium 问题:billboard 加载未出来

文章目录 问题分析问题 接上篇 Cesium 展示——图标的依比例和不依比例缩放,使用加载 billboard 时,怀疑是路径的原因导致未加载成功 分析 原先

怎样把excel表格转换成图片格式?学会这3个Excel小技巧,表格操作不求人,工作效率翻倍

一,前言 excel是办公必备的表格处理软件,每个表格都包含大量的数据和函数逻辑关系,牵一发而动全身。传输excel表格时可以将文件转换成图片或者pdf,这样有利于传输,而且不会改变表格原有的格式。那么怎样才能把excel转…

设计必备!六款免费平面图设计软件大盘点

平面设计是一种迷人而多样化的艺术形式,它结合了颜色、形状、排版和创造力,通过图像和文本传达信息。市场上有各种各样的平面设计软件,选择合适的设计软件是成为优秀设计师的重要一步。为了降低软件成本,大多数设计师会优先使用免…

Python专题:六、循环语句(2)

for循环语句 列表可以简单的理解为: 顺序保存的若干元素 注释:变量largest,循环语句for,还有二层缩进八个空格 依次取出counts(列表)里的数字,并赋予给x,判断x和largest数值大小。如果x值更大,则赋值给largest 例:1加到100 range对象可遍历的,后面再讲,range(1…

鸿蒙内核源码分析(编译过程篇) | 简单案例窥视编译全过程

一个.c源文件编译的整个过程如图. 编译过程要经过:源文件 --> 预处理 --> 编译(cc1) --> 汇编器(as) --> 链接器(ld) --> 可执行文件(PE/ELF) GCC GCC(GNU Compiler Collection,GNU编译器套件),官网:…

基于Spring Ai 快速创建一个AI会话

文章目录 1、创建SpringBoot项目2、引入依赖3、修改配置文件4、一个简单的会话 前期准备 在OpenAI 注册页面创建帐户并在API 密钥页面生成令牌。 Spring AI 项目定义了一个配置属性,您应该将其设置为从 openai.com 获取的spring.ai.openai.api-key值 代码托管于gite…

《深入Linux内核架构》第4章 进程虚拟内存(2)

目录 4.3 内存映射原理 4.4 数据结构 4.4.1 树和链表 4.4.2 虚拟内存区域VMA的表示 4.4.3 相关数据结构 本专栏文章将有70篇左右,欢迎关注,查看后续文章。 本节讲VMA结构体struct vm_area_struct和struct address_space。 4.3 内存映射原理 所有进…

自注意力架构大成者_Transformer(Pytorch 17)

1 模型简介 在上节比较了 卷积神经网络(CNN)、循环神经网络(RNN)和 自注意力(self‐attention)。值得注意的是, 自注意力同时具有并行计算和最短的最大路径长度这两个优势。因此,使…

【微机原理及接口技术】存储器

【微机原理及接口技术】存储器 文章目录 【微机原理及接口技术】存储器前言一、半导体存储器技术1.半导体存储器概述2.半导体存储器的分类3.半导体存储器芯片的结构 二、半导体存储器芯片1.RAM芯片2.ROM芯片 三、半导体存储器与CPU的连接1.存储芯片数据线的连接2.存储芯片地址线…

webrtc初步了解

WebRTC搭建点对点实时音视频对话,起始需要保证完成两点: 1.媒体协商,了解彼此支持的媒体格式。参与视频通讯的双方必须先交换SDP信息,交换SDP的过程。 2.网络协商,了解彼此的网络环境,找到一条相互通讯的链…

Linux学习之禁用防火墙

查看防火墙状态 systemctl status firewalld.service 第一行前面的圆圈是有颜色的就是开启状态 黑色的就是关闭状态 关闭防火墙 systemctl stop firewalld.service 输入密码认证 再次查看防火墙状态 systemctl status firewalld.service 第一行前面的圆圈变成黑色说明关闭…

ThreeJS:补间动画与Tween.JS

补间动画 补间动画指的是做FLASH动画时,在两个关键帧中间需要做“补间动画”,才能实现图画的运动;插入补间动画后两个关键帧之间的插补帧是由计算机自动运算而得到的。 ——摘自《百度百科:补间动画_百度百科》 Tween.js Tween.js…

xCode升级后: Library ‘iconv2.4.0’ not found

报错信息: targets 选中 xxxNotification: Build Phases ——> Link Binary With Libraries 中,移除 libiconv.2.4.0.tbd libiconv.2.4.0.dylib 这两个库(只有一个的移除一个就好)。 然后重新添加 libiconv.tbd 修改完…

(代码以上传,超级详细)面试必备算法题----Leeecode290单词规律

文章目录 概要题目要求测试and提交结果技术细节 概要 来自Leecode ​ 代码已上传)仓库,需要测试实例和其他题型解决,可以去自行浏览 点击这里进入仓库领取代码喔!顺便点个star给原子加油吧! ​ 题目要求 使用哈希表 …

GD32F103RCT6/GD32F303RCT6(9)高级定时器互补PWM波输出实验

本文章基于兆易创新GD32 MCU所提供的2.2.4版本库函数开发 后续项目主要在下面该专栏中发布: 手把手教你嵌入式国产化_不及你的温柔的博客-CSDN博客 感兴趣的点个关注收藏一下吧! 电机驱动开发可以跳转: 手把手教你嵌入式国产化-实战项目-无刷电机驱动&am…

【设计模式】之观察者模式

系列文章目录 【设计模式】之装饰器模式【设计模式】之工厂模式(三种)【设计模式】之工厂模式(三种) 前言 今天给大家介绍另一种设计模式--观察者模式,有了解webscoket实现原理的小伙伴应该对这个设计模式不陌生。不清…

微服务核心01-Maven【项目管理工具】基础

一、Maven 简介 1.1 传统项目管理: 1.2 Maven 的作用 项目构建:提供标准的、跨平台的自动化项目构建方式。依赖管理:管理项目依赖的资源(jar 包),避免资源间的版本冲突问题统一开发结构:提供标…

Web LLM 攻击实验:利用 LLM API 实现 SQL 注入

前言 Web LLM 攻击 各组织都在急于集成大型语言模型 (LLM),以改善其在线客户体验。这使他们面临 Web LLM 攻击,这些攻击利用模型对攻击者无法直接访问的数据、API 或用户信息的访问权限。例如,攻击可能: 检索 LLM 有权访问的数…

【valse 2024】会议内容汇总(持续更新)

系列文章目录 提示:更新中,一周左右更新完毕。需要具体课件的可私信 文章目录 系列文章目录开幕式主旨报告-1:大模型时代的机遇和挑战主旨报告-2:以深度学习框架为牵引促进自主 AI生态发展主旨报告-3:从洞穴的影子到智能的光辉--连接和交互方式的改变塑造…

别出心裁的自动化网页数据采集:Chrome插件和mitmproxy

别出心裁的自动化网页数据采集:Chrome插件和mitmproxy 前言 在信息时代,数据已成为决策的关键。传统的数据采集方法往往依赖于手动操作或简单的自动化脚本,这限制了数据的时效性和精确性。为了克服这些限制,本文介绍了一种结合C…