数据分析案例-中国黄金股票市场的EDA与价格预测

 

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

1.项目背景

2.数据集介绍

3.技术工具

4.导入数据

5.数据可视化

6.建模预测

源代码 


1.项目背景

        在金融市场中,黄金一直被视为避险资产和价值储存工具。中国的黄金市场在全球范围内具有举足轻重的地位。随着中国经济实力的增强和金融市场的逐步开放,国内黄金市场的规模和影响力不断扩大。在此背景下,对于中国黄金市场的深度分析和预测,对于投资者、政策制定者和学术研究者都具有重要意义。

一、研究背景

        近年来,受全球经济形势不确定性增加、金融市场波动加剧的影响,黄金作为避险资产的需求持续上升。中国作为全球第二大经济体,其黄金市场的动态和趋势备受关注。因此,对中国黄金市场的有效分析和预测,对于理解全球黄金市场的动态、制定投资策略和政策具有重要意义。

二、技术进步的推动

        随着大数据、人工智能等技术的快速发展,数据驱动的定量分析方法在金融领域的应用越来越广泛。这为深入研究中国黄金市场提供了新的工具和视角。利用先进的数据分析技术,我们可以更准确地挖掘市场数据中的隐藏信息,更有效地预测市场趋势。

三、政策与市场环境

        中国政府近年来对于金融市场的开放和黄金市场的规范化发展给予了高度重视。一系列的政策措施推动了黄金市场的健康发展。同时,国内外经济环境、货币政策、地缘政治等因素,都对黄金市场产生了深远影响。对这些因素的深入分析和理解,是进行黄金市场预测的重要基础。

四、学术研究的需要

        学术界对于中国黄金市场的关注也在持续升温。对于中国黄金市场的深入研究,不仅可以丰富和发展金融市场的理论体系,还可以为投资者提供更有价值的决策依据。通过科学的实证研究和模型构建,可以更准确地把握市场动态,更有效地预测市场趋势。

2.数据集介绍

        本数据集来源于Kaggle,原始数据集为2015-2022年中国黄金股票价格,共有1945条,11个变量,各变量含义如下:

ts_code- 交易市场代码

trade_date- 交易日期

close- 开盘价

open- 收盘价

high- 最高价格

low- 最低价格

pre_close- 最后交易日收盘价

change- 变化点

pct_chg- 变化的百分比

vol- 交易量

3.技术工具

Python版本:3.9

代码编辑器:jupyter notebook

4.导入数据

导入第三方库并加载数据集

import numpy as np 
import pandas as pd 
import seaborn as sns
from datetime import datetime
from matplotlib.pyplot import figure
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.metrics import accuracy_score, recall_score, precision_score, f1_score,confusion_matrix
from xgboost import XGBRegressor
import time
import plotly.io as pio
import plotly.graph_objects as go
import plotly.offline as pyo
# 初始化plotly
pyo.init_notebook_mode()

df = pd.read_csv('Gold-Au99_95.csv')
df.head()

查看数据大小

查看数据基本信息

 查看描述性统计

数据预处理

# 转化日期数据类型
df['trade_date'] = pd.to_datetime(df['trade_date'].astype(str), format='%Y%m%d')
df.sort_values(by="trade_date",inplace=True) # 按日期重新排序
df.drop('ts_code',axis=1,inplace=True)  # 删除ts_code列
df

5.数据可视化

figure(figsize=(12, 4),dpi=80)
sns.lineplot(data=df,x='trade_date',y='close')
plt.show()

a = df[df['vol']<6000]
figure(figsize=(16, 4), dpi=80)
sns.regplot(data=a,x='price_avg',y='vol')
plt.show()

figure(figsize=(12, 4), dpi=80)
sns.lineplot(data=df,x='trade_date',y='amount')
plt.show()

figure(figsize=(12, 4), dpi=80)
sns.boxplot(data=df,x='pct_change')
plt.show()

a = df[(df['pct_change']>-10) &(df['pct_change']<10)]
figure(figsize=(12, 4), dpi=80)
sns.boxplot(data=a,x='pct_change')
plt.show()

figure(figsize=(12, 4), dpi=80)
sns.histplot(data=a,x='pct_change',kde=True)
plt.show()

pio.renderers.default = 'iframe'
lags   = [1, 2, 3]
def lag_features(df, lags):
    c = df.copy()
    for lag in lags:
        value1 = c['pct_change'].transform(lambda x: x.shift(lag))
        value2 = c['vol'].transform(lambda x: x.shift(lag))
        c['return_lag_' + str(lag)] = value1
        c['vol_lag_' + str(lag)] = value2
    return c

a= lag_features(a, lags)
a['vol_incremental'] = a['vol_lag_1'] -a['vol_lag_2']
a['label'] = a['pct_change'].apply(lambda x:0 if x<=0 else 1)

df['EMA_9'] = df['close'].ewm(9).mean().shift()
df['SMA_5'] = df['close'].rolling(5).mean().shift()
df['SMA_10'] = df['close'].rolling(10).mean().shift()
df['SMA_15'] = df['close'].rolling(15).mean().shift()
df['SMA_30'] = df['close'].rolling(30).mean().shift()

t1 = go.Scatter(x=df.trade_date, y=df.EMA_9, name='EMA 9')
t2 = go.Scatter(x=df.trade_date, y=df.SMA_5, name='SMA 5')
t3 = go.Scatter(x=df.trade_date, y=df.SMA_10, name='SMA 10')
t4 = go.Scatter(x=df.trade_date, y=df.SMA_15, name='SMA 15')
t5 = go.Scatter(x=df.trade_date, y=df.SMA_30, name='SMA 30')
t6 = go.Scatter(x=df.trade_date, y=df.close, name='close', opacity=0.2)
data = [t1,t2,t3,t4,t5,t6]
plt.close('all')
pyo.iplot(data, filename = 'basic-line')

def relative_strength_idx(df, n=14):
    close = df['close']
    delta = close.diff()
    delta = delta[1:]
    pricesUp = delta.copy()
    pricesDown = delta.copy()
    pricesUp[pricesUp < 0] = 0
    pricesDown[pricesDown > 0] = 0
    rollUp = pricesUp.rolling(n).mean()
    rollDown = pricesDown.abs().rolling(n).mean()
    rs = rollUp / rollDown
    rsi = 100.0 - (100.0 / (1.0 + rs))
    return rsi

df['RSI'] = relative_strength_idx(df).fillna(0)

t1 = go.Scatter(x=df.trade_date, y=df.RSI, name='RSI')
data = [t1]
plt.close('all')
pyo.iplot(data, filename = 'basic-line')

from plotly.subplots import make_subplots

EMA_12 = pd.Series(df['close'].ewm(span=12, min_periods=12).mean())
EMA_26 = pd.Series(df['close'].ewm(span=26, min_periods=26).mean())
df['MACD'] = pd.Series(EMA_12 - EMA_26)
df['MACD_signal'] = pd.Series(df.MACD.ewm(span=9, min_periods=9).mean())

t1 = go.Scatter(x=df.trade_date, y=df.close, name='close')
t2 = go.Scatter(x=df.trade_date, y=EMA_12, name='EMA 12')
t3 = go.Scatter(x=df.trade_date, y=EMA_26, name='EMA 26')
t4 = go.Scatter(x=df.trade_date, y=df['MACD'], name='MACD')
t5 = go.Scatter(x=df.trade_date, y=df['MACD_signal'], name='Signal line')
data = [t1,t2,t3,t4,t5]
plt.close('all')
pyo.iplot(data, filename = 'basic-line')

6.建模预测

df.dropna(how="any",inplace=True)
b = df.drop(['change', 'pct_change','amount','vol','high','open','low','price_avg'],axis=1)
# 这里的label表示下一个交易日的收盘价
b['label'] = b['close'].shift(-1)
b.dropna(how="any",inplace=True)

拆分数据集,并使用网格搜索寻找 XGBRegressor模型的最优参数

y = b['label']
X = b.drop(columns=['label'],axis=1)

train_set, valid_set= np.split(b, [int(.7 *len(b))])
y_train = train_set['label']
X_train = train_set.drop(columns=['label','trade_date'],axis=1)

y_valid = valid_set['label']
X_valid = valid_set.drop(columns=['label','trade_date'],axis=1)

grid = {
    'n_estimators': [100, 200, 300, 400],
    'learning_rate': [0.001, 0.005, 0.01, 0.05],
    'max_depth': [8, 10, 12, 15],
    'gamma': [0.001, 0.005, 0.01, 0.02],
    'random_state': [42]
}
clf = GridSearchCV(estimator=XGBRegressor(), 
                       param_grid=grid, 
                       n_jobs=-1, 
                       cv=None)
clf.fit(X_train, y_train)
scores=clf.score(X_valid, y_valid)
scores

print(f'Best params: {clf.best_params_}')
print(f'Best validation score = {clf.best_score_}')

使用最佳参数重新训练模型

model = XGBRegressor(**clf.best_params_, objective='reg:squarederror')
model.fit(X_train, y_train)
pred = model.predict(X_valid)

重要特征可视化

from xgboost import plot_importance
plot_importance(model) # 特征重要性可视化
plt.show()

 

from sklearn.metrics import mean_squared_error
print(f'mean_squared_error = {mean_squared_error(y_valid, pred)}')

i = len(pred)
predicted_prices = df.tail(i).copy()
predicted_prices['close'] = pred
t1 = go.Scatter(x=df.trade_date, y=df.close,
                         name='Truth',
                         marker_color='LightSkyBlue')

t2 = go.Scatter(x=predicted_prices.trade_date,
                         y=predicted_prices.close,
                         name='Prediction',
                         marker_color='MediumPurple')

t3 = go.Scatter(x=predicted_prices.trade_date,
                         y=y_valid,
                         name='Truth',
                         marker_color='LightSkyBlue',
                         showlegend=False)

t4 = go.Scatter(x=predicted_prices.trade_date,
                         y=pred,
                         name='Prediction',
                         marker_color='MediumPurple',
                         showlegend=False)
data = [t1,t2,t3,t4]
plt.close('all')
pyo.iplot(data, filename = 'basic-line')

源代码 

ts_code- 交易市场代码
trade_date- 交易日期
close- 开盘价
open- 收盘价
high- 最高价格
low- 最低价格
pre_close- 最后交易日收盘价
change- 变化点
pct_chg- 变化的百分比
vol- 交易量
import numpy as np 
import pandas as pd 
import seaborn as sns
from datetime import datetime
from matplotlib.pyplot import figure
import matplotlib.pyplot as plt
from sklearn.model_selection import train_test_split,GridSearchCV
from sklearn.metrics import accuracy_score, recall_score, precision_score, f1_score,confusion_matrix
from xgboost import XGBRegressor
import time
import plotly.io as pio
import plotly.graph_objects as go
import plotly.offline as pyo
# 初始化plotly
pyo.init_notebook_mode()

df = pd.read_csv('Gold-Au99_95.csv')
df.head()
df.shape
df.info()
df.describe()
# 转化日期数据类型
df['trade_date'] = pd.to_datetime(df['trade_date'].astype(str), format='%Y%m%d')
df.sort_values(by="trade_date",inplace=True) # 按日期重新排序
df.drop('ts_code',axis=1,inplace=True)  # 删除ts_code列
df
figure(figsize=(12, 4),dpi=80)
sns.lineplot(data=df,x='trade_date',y='close')
plt.show()
a = df[df['vol']<6000]
figure(figsize=(16, 4), dpi=80)
sns.regplot(data=a,x='price_avg',y='vol')
plt.show()
figure(figsize=(12, 4), dpi=80)
sns.lineplot(data=df,x='trade_date',y='amount')
plt.show()
figure(figsize=(12, 4), dpi=80)
sns.boxplot(data=df,x='pct_change')
plt.show()
a = df[(df['pct_change']>-10) &(df['pct_change']<10)]
figure(figsize=(12, 4), dpi=80)
sns.boxplot(data=a,x='pct_change')
plt.show()
figure(figsize=(12, 4), dpi=80)
sns.histplot(data=a,x='pct_change',kde=True)
plt.show()
pio.renderers.default = 'iframe'
lags   = [1, 2, 3]
def lag_features(df, lags):
    c = df.copy()
    for lag in lags:
        value1 = c['pct_change'].transform(lambda x: x.shift(lag))
        value2 = c['vol'].transform(lambda x: x.shift(lag))
        c['return_lag_' + str(lag)] = value1
        c['vol_lag_' + str(lag)] = value2
    return c

a= lag_features(a, lags)
a['vol_incremental'] = a['vol_lag_1'] -a['vol_lag_2']
a['label'] = a['pct_change'].apply(lambda x:0 if x<=0 else 1)

df['EMA_9'] = df['close'].ewm(9).mean().shift()
df['SMA_5'] = df['close'].rolling(5).mean().shift()
df['SMA_10'] = df['close'].rolling(10).mean().shift()
df['SMA_15'] = df['close'].rolling(15).mean().shift()
df['SMA_30'] = df['close'].rolling(30).mean().shift()

t1 = go.Scatter(x=df.trade_date, y=df.EMA_9, name='EMA 9')
t2 = go.Scatter(x=df.trade_date, y=df.SMA_5, name='SMA 5')
t3 = go.Scatter(x=df.trade_date, y=df.SMA_10, name='SMA 10')
t4 = go.Scatter(x=df.trade_date, y=df.SMA_15, name='SMA 15')
t5 = go.Scatter(x=df.trade_date, y=df.SMA_30, name='SMA 30')
t6 = go.Scatter(x=df.trade_date, y=df.close, name='close', opacity=0.2)
data = [t1,t2,t3,t4,t5,t6]
plt.close('all')
pyo.iplot(data, filename = 'basic-line')
def relative_strength_idx(df, n=14):
    close = df['close']
    delta = close.diff()
    delta = delta[1:]
    pricesUp = delta.copy()
    pricesDown = delta.copy()
    pricesUp[pricesUp < 0] = 0
    pricesDown[pricesDown > 0] = 0
    rollUp = pricesUp.rolling(n).mean()
    rollDown = pricesDown.abs().rolling(n).mean()
    rs = rollUp / rollDown
    rsi = 100.0 - (100.0 / (1.0 + rs))
    return rsi

df['RSI'] = relative_strength_idx(df).fillna(0)

t1 = go.Scatter(x=df.trade_date, y=df.RSI, name='RSI')
data = [t1]
plt.close('all')
pyo.iplot(data, filename = 'basic-line')
from plotly.subplots import make_subplots

EMA_12 = pd.Series(df['close'].ewm(span=12, min_periods=12).mean())
EMA_26 = pd.Series(df['close'].ewm(span=26, min_periods=26).mean())
df['MACD'] = pd.Series(EMA_12 - EMA_26)
df['MACD_signal'] = pd.Series(df.MACD.ewm(span=9, min_periods=9).mean())

t1 = go.Scatter(x=df.trade_date, y=df.close, name='close')
t2 = go.Scatter(x=df.trade_date, y=EMA_12, name='EMA 12')
t3 = go.Scatter(x=df.trade_date, y=EMA_26, name='EMA 26')
t4 = go.Scatter(x=df.trade_date, y=df['MACD'], name='MACD')
t5 = go.Scatter(x=df.trade_date, y=df['MACD_signal'], name='Signal line')
data = [t1,t2,t3,t4,t5]
plt.close('all')
pyo.iplot(data, filename = 'basic-line')
df.dropna(how="any",inplace=True)
b = df.drop(['change', 'pct_change','amount','vol','high','open','low','price_avg'],axis=1)
# 这里的label表示下一个交易日的收盘价
b['label'] = b['close'].shift(-1)
b.dropna(how="any",inplace=True)
y = b['label']
X = b.drop(columns=['label'],axis=1)

train_set, valid_set= np.split(b, [int(.7 *len(b))])
y_train = train_set['label']
X_train = train_set.drop(columns=['label','trade_date'],axis=1)

y_valid = valid_set['label']
X_valid = valid_set.drop(columns=['label','trade_date'],axis=1)

grid = {
    'n_estimators': [100, 200, 300, 400],
    'learning_rate': [0.001, 0.005, 0.01, 0.05],
    'max_depth': [8, 10, 12, 15],
    'gamma': [0.001, 0.005, 0.01, 0.02],
    'random_state': [42]
}
clf = GridSearchCV(estimator=XGBRegressor(), 
                       param_grid=grid, 
                       n_jobs=-1, 
                       cv=None)
clf.fit(X_train, y_train)
scores=clf.score(X_valid, y_valid)
scores
print(f'Best params: {clf.best_params_}')
print(f'Best validation score = {clf.best_score_}')
model = XGBRegressor(**clf.best_params_, objective='reg:squarederror')
model.fit(X_train, y_train)
pred = model.predict(X_valid)
from xgboost import plot_importance
plot_importance(model) # 特征重要性可视化
plt.show()
from sklearn.metrics import mean_squared_error
print(f'mean_squared_error = {mean_squared_error(y_valid, pred)}')
i = len(pred)
predicted_prices = df.tail(i).copy()
predicted_prices['close'] = pred
t1 = go.Scatter(x=df.trade_date, y=df.close,
                         name='Truth',
                         marker_color='LightSkyBlue')

t2 = go.Scatter(x=predicted_prices.trade_date,
                         y=predicted_prices.close,
                         name='Prediction',
                         marker_color='MediumPurple')

t3 = go.Scatter(x=predicted_prices.trade_date,
                         y=y_valid,
                         name='Truth',
                         marker_color='LightSkyBlue',
                         showlegend=False)

t4 = go.Scatter(x=predicted_prices.trade_date,
                         y=pred,
                         name='Prediction',
                         marker_color='MediumPurple',
                         showlegend=False)
data = [t1,t2,t3,t4]
plt.close('all')
pyo.iplot(data, filename = 'basic-line')

资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【数据结构】单链表经典算法题的巧妙解题思路

目录 题目 1.移除链表元素 2.反转链表 3.链表的中间节点 4.合并两个有序链表 5.环形链表的约瑟夫问题 解析 题目1&#xff1a;创建新链表 题目2&#xff1a;巧用三个指针 题目3&#xff1a;快慢指针 题目4&#xff1a;哨兵位节点 题目5&#xff1a;环形链表 介绍完了…

Activity——spring方式创建activiti所需数据表结构

文章目录 前言依赖引入编写数据库连接等配置配置日志文件编写java代码生成数据库表结构问题反馈与解决思路问题一&#xff1a;Cause: java.sql.SQLSyntaxErrorException: Table activiti_02.act_ge_property doesnt exist 为什么文件名必须写死&#xff1f; 前言 在之前创建ac…

循序渐进丨使用 Python 向 MogDB 数据库批量操作数据的方法

当我们有时候需要向数据库里批量插入数据&#xff0c;或者批量导出数据时&#xff0c;除了使用传统的gsql copy命令&#xff0c;也可以通过Python的驱动psycopg2进行批量操作。本文介绍了使用psycopg2里的executemany、copy_from、copy_to、copy_expert等方式来批量操作 MogDB …

js-pytorch:开启前端+AI新世界

嗨&#xff0c; 大家好&#xff0c; 我是 徐小夕。最近在 github 上发现一款非常有意思的框架—— js-pytorch。它可以让前端轻松使用 javascript 来运行深度学习框架。作为一名资深前端技术玩家&#xff0c; 今天就和大家分享一下这款框架。 往期精彩 Nocode/Doc&#xff0c;可…

python爬虫之爬取携程景点评价(5)

一、景点部分评价爬取 【携程攻略】携程旅游攻略,自助游,自驾游,出游,自由行攻略指南 (ctrip.com) import requests from bs4 import BeautifulSoupif __name__ __main__:url https://m.ctrip.com/webapp/you/commentWeb/commentList?seo0&businessId22176&busines…

“中医显示器”是人体健康监测器

随着科技的进步&#xff0c;现代医学设备已经深入到了人们的日常生活中。然而&#xff0c;在这个过程中&#xff0c;我们不应忘记我们的医学根源&#xff0c;中医。我们将中医的望、闻、问、切四诊与现代科技相结合&#xff0c;通过一系列的传感器和算法将人体的生理状态以数字…

3、MYSQL-一条sql如何在MYSQL中执行的

MySQL的内部组件结构 大体来说&#xff0c;MySQL 可以分为 Server 层和存储引擎层两部分。 Server层 主要包括连接器、查询缓存、分析器、优化器、执行器等&#xff0c;涵盖 MySQL 的大多数核心服务功能&#xff0c;以及所有的内置函数&#xff08;如日期、时间、数学和加密函…

[Algorithm][滑动窗口][无重复字符的最长字串][最大连续的一个数 Ⅲ][将x减到0的最小操作数]详细讲解

目录 1.无重复字符的最长字串1.题目链接2.算法原理详解3.代码实现 2.最大连续的一个数 Ⅲ1.题目链接2.算法原理详解3.代码实现 3.将x减到0的最小操作数1.题目链接2.算法原理详解3.代码实现 1.无重复字符的最长字串 1.题目链接 无重复字符的最长字串 2.算法原理详解 研究的对…

算法打卡day39

今日任务&#xff1a; 1&#xff09;卡码网57. 爬楼梯&#xff08;70. 爬楼梯进阶版&#xff09; 2&#xff09;322.零钱兑换 3&#xff09;279.完全平方数 4&#xff09;复习day14 卡码网57. 爬楼梯&#xff08;70. 爬楼梯进阶版&#xff09; 题目链接&#xff1a;57. 爬楼梯…

数据结构从入门到实战——顺序表的应用

目录 一、基于动态顺序表实现通讯录 二、代码实现 2.1 通讯录的初始化 2.2 通讯录的销毁 2.3 通讯录的展示 2.4 通讯录添加联系人信息 2.5 通讯录删除联系人信息 2.6 通讯录修改联系人信息 2.7 通讯录的查找联系人信息 2.8 将通讯录中联系人信息保存到文件中 2.9…

乡政府管理系统|基于Springboot的乡政府管理系统设计与实现(源码+数据库+文档)

乡政府管理系统目录 目录 基于Springboot的乡政府管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户信息管理 2、活动信息管理 3、新闻类型管理 4、新闻动态管理 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推…

考研党们,搭子们,打打鸡血!刷视频免疫了,时间竟然多了起来!——早读(逆天打工人爬取热门微信文章解读)

断舍离&#xff0c;断的是过去 引言Python 代码第一篇 人民日报 一个班级&#xff0c;29人全部“上岸”&#xff01; 第二篇 人民日报 来了&#xff01;新闻早班车要闻社会政策 结尾 时间就像河流 它带来一切 也带走一切 不打游戏不刷视频 时间的河流便能带来更丰富的体验 引言…

PSO-GPR单变量时序预测-递归预测未来数据 基于粒子群算法-高斯过程回归递归预测未来数据

文章目录 效果一览文章概述订阅专栏只能获取一份代码部分源码参考资料效果一览 文章概述 PSO-GPR单变量时序预测-递归预测未来数据 基于粒子群算法-高斯过程回归递归预测未来数据 订阅专栏只能获取一份代码 部分源码 %

Java对象克隆-浅拷贝与深拷贝

目录 1、对象的克隆 1.1 对象的浅拷贝 1.2 对象深拷贝 1、对象的克隆 1.1 对象的浅拷贝 在实际编程过程中&#xff0c;我们常常要遇到这种情况&#xff1a;有一个对象A&#xff0c;在某一时刻A中已经包含了一些有效值&#xff0c;此时可能会需要一个和A完全相同新对象B&am…

PyQt程序:实现新版本的自动更新检测及下载(FTP服务器实现)

一、实现逻辑 本实例采用相对简单的逻辑实现,用户在客户端使用软件时点击“检测升级”按钮,连接至FTP服务器检索是否有新版本的.exe,如果有,下载最新的.exe安装升级。 本实例服务端待下载.exe所在目录结构 本实例客户端待更新.exe所在目录结构 二、搭建服务器 可以参考…

springcloud第4季 springcloud-alibaba之sentinel

一 sentinel介绍 1.1 sentinel作用 sentinel是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、熔断降级、系统自适应过载保护、热点流量防护等多个维度来帮助开发者保障服务的稳定性。 1.2 组成部分 sen…

学习Rust的第11天:模块系统

Today we are taking a look at the module system of rust. We can use this to manage growing projects and keep track of what modules is stored where… 今天我们来看看Rust的模块系统。我们可以使用它来管理不断增长的项目&#xff0c;并跟踪 modules 存储在何处。 Rus…

MyBatis使用PageHelper分页插件

1、不使用PageHelper分页插件 模块名&#xff1a;mybatis-012-page CarMapper接口package org.example.mapper;import org.apache.ibatis.annotations.Param; import org.example.pojo.Car;import java.util.List;public interface CarMapper {/*** 分页查询* param startInd…

LLMs之Llama3:Llama 3的简介、安装和使用方法、案例应用之详细攻略

LLMs之Llama3&#xff1a;Llama 3的简介、安装和使用方法、案例应用之详细攻略 导读&#xff1a;2024年4月18日&#xff0c;Meta 重磅推出了Meta Llama 3&#xff0c;本文章主要介绍了Meta推出的新的开源大语言模型Meta Llama 3。模型架构 Llama 3 是一种自回归语言模型&#x…

1000w背后的故事!

如果只让提一个合作中不靠谱的事&#xff0c;我想说&#xff0c;只要说钱不是问题的&#xff0c;都不靠谱。 因为我经历过的&#xff0c;钱不是问题也有顺利合作的&#xff0c;但绝大多数都是出现在钱的问题上。 我现在最怕就是熟人找来做项目&#xff0c;说多钱你说&#xff0…
最新文章