【机器学习】机器学习与时间序列分析的融合应用与性能优化新探索

在这里插入图片描述
在这里插入图片描述

文章目录

    • 引言
    • 第一章:机器学习在时间序列分析中的应用
      • 1.1 数据预处理
        • 1.1.1 数据清洗
        • 1.1.2 数据归一化
        • 1.1.3 数据增强
      • 1.2 模型选择
        • 1.2.1 自回归模型
        • 1.2.2 移动平均模型
        • 1.2.3 长短期记忆网络
        • 1.2.4 卷积神经网络
      • 1.3 模型训练
        • 1.3.1 梯度下降
        • 1.3.2 随机梯度下降
        • 1.3.3 Adam优化器
      • 1.4 模型评估与性能优化
        • 1.4.1 模型评估指标
        • 1.4.2 超参数调优
        • 1.4.3 增加数据量
        • 1.4.4 模型集成
    • 第二章:时间序列分析的具体案例分析
      • 2.1 股票价格预测
        • 2.1.1 数据预处理
        • 2.1.2 模型选择与训练
        • 2.1.3 模型评估与优化
      • 2.2 气象预报
        • 2.2.1 数据预处理
        • 2.2.2 模型选择与训练
        • 2.2.3 模型评估与优化
    • 第三章:性能优化与前沿研究
      • 3.1 性能优化
        • 3.1.1 特征工程
        • 3.1.2 超参数调优
        • 3.1.3 模型集成
      • 3.2 前沿研究
        • 3.2.1 强化学习在时间序列分析中的应用
        • 3.2.2 联邦学习与隐私保护
        • 3.2.3 自监督学习在时间序列分析中的应用
    • 结语

引言

时间序列分析是统计学和机器学习中的一个重要领域,旨在对时间序列数据进行建模和预测。时间序列数据在金融市场预测、气象预报、经济指标分析和工业设备监测等领域广泛存在。随着深度学习技术的发展,机器学习在时间序列分析中的应用越来越广泛。本文将详细介绍机器学习在时间序列分析中的应用,包括数据预处理、模型选择、模型训练和性能优化。通过具体的案例分析,展示机器学习技术在时间序列分析中的实际应用,并提供相应的代码示例。
在这里插入图片描述

第一章:机器学习在时间序列分析中的应用

1.1 数据预处理

在时间序列分析应用中,数据预处理是机器学习模型成功的关键步骤。时间序列数据通常具有时间依赖性和噪声,需要进行清洗、归一化和数据增强等处理。

1.1.1 数据清洗

数据清洗包括处理缺失值、异常值和噪声等。

import pandas as pd
import numpy as np

# 加载时间序列数据
data = pd.read_csv('timeseries_data.csv', index_col='date', parse_dates=True)

# 处理缺失值
data.fillna(method='ffill', inplace=True)

# 处理异常值
data = data[(np.abs(data - data.mean()) <= (3 * data.std()))]

# 去除噪声
data['smoothed'] = data['value'].rolling(window=5).mean()
1.1.2 数据归一化

数据归一化可以消除不同时间序列之间的量纲差异,使模型更容易学习。

from sklearn.preprocessing import MinMaxScaler

# 数据归一化
scaler = MinMaxScaler()
data_normalized = scaler.fit_transform(data[['value']])
data['normalized'] = data_normalized
1.1.3 数据增强

数据增强通过对训练数据进行随机变换,如时间平移、缩放等,增加数据的多样性,提高模型的泛化能力。

def add_noise(data, noise_level=0.1):
    noise = np.random.randn(len(data)) * noise_level
    return data + noise

# 数据增强
data['noisy'] = add_noise(data['normalized'])

1.2 模型选择

在时间序列分析中,常用的机器学习模型包括自回归模型(AR)、移动平均模型(MA)、长短期记忆网络(LSTM)和卷积神经网络(CNN)等。不同模型适用于不同的任务和数据特征,需要根据具体应用场景进行选择。

1.2.1 自回归模型

自回归模型(AR)适用于线性时间序列数据,通过历史数据的线性组合进行预测。

from statsmodels.tsa.ar_model import AutoReg

# 训练自回归模型
model = AutoReg(data['value'], lags=5)
model_fit = model.fit()

# 预测
predictions = model_fit.predict(start=len(data), end=len(data)+10)
print(predictions)
1.2.2 移动平均模型

移动平均模型(MA)适用于线性时间序列数据,通过历史预测误差的线性组合进行预测。

from statsmodels.tsa.arima_model import ARMA

# 训练移动平均模型
model = ARMA(data['value'], order=(0, 5))
model_fit = model.fit(disp=False)

# 预测
predictions = model_fit.predict(start=len(data), end=len(data)+10)
print(predictions)
1.2.3 长短期记忆网络

长短期记忆网络(LSTM)适用于处理序列数据,能够捕捉时间序列中的长距离依赖关系,适用于非线性时间序列数据。

from keras.models import Sequential
from keras.layers import LSTM, Dense

# 数据准备
def create_dataset(data, look_back=1):
    X, Y = [], []
    for i in range(len(data)-look_back-1):
        a = data[i:(i+look_back), 0]
        X.append(a)
        Y.append(data[i + look_back, 0])
    return np.array(X), np.array(Y)

look_back = 3
X, Y = create_dataset(data_normalized, look_back)

# 数据分割
X_train, X_test = X[:int(len(X)*0.8)], X[int(len(X)*0.8):]
Y_train, Y_test = Y[:int(len(Y)*0.8)], Y[int(len(Y)*0.8):]

# 构建LSTM模型
model = Sequential()
model.add(LSTM(50, input_shape=(look_back, 1)))
model.add(Dense(1))

# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')

# 训练模型
model.fit(X_train, Y_train, epochs=100, batch_size=1, validation_data=(X_test, Y_test))
1.2.4 卷积神经网络

卷积神经网络(CNN)能够捕捉时间序列中的局部模式,适用于具有局部依赖关系的时间序列数据。

from keras.layers import Conv1D, MaxPooling1D, Flatten

# 构建CNN模型
model = Sequential()
model.add(Conv1D(filters=64, kernel_size=2, activation='relu', input_shape=(look_back, 1)))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(50, activation='relu'))
model.add(Dense(1))

# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')

# 训练模型
model.fit(X_train, Y_train, epochs=100, batch_size=1, validation_data=(X_test, Y_test))

1.3 模型训练

模型训练是机器学习的核心步骤,通过优化算法最小化损失函数,调整模型参数,使模型在训练数据上表现良好。常见的优化算法包括梯度下降、随机梯度下降和Adam优化器等。

1.3.1 梯度下降

梯度下降通过计算损失函数对模型参数的导数,逐步调整参数,使损失函数最小化。

import numpy as np

# 定义损失函数
def loss_function(y_true, y_pred):
    return np.mean((y_true - y_pred) ** 2)

# 梯度下降优化
def gradient_descent(X, y, learning_rate=0.01, epochs=1000):
    m, n = X.shape
    theta = np.zeros(n)
    for epoch in range(epochs):
        gradient = (1/m) * X.T.dot(X.dot(theta) - y)
        theta -= learning_rate * gradient
    return theta

# 训练模型
theta = gradient_descent(X_train, Y_train)
1.3.2 随机梯度下降

随机梯度下降在每次迭代中使用一个样本进行参数更新,具有较快的收敛速度和更好的泛化能力。

def stochastic_gradient_descent(X, y, learning_rate=0.01, epochs=1000):
    m, n = X.shape
    theta = np.zeros(n)
    for epoch in range(epochs):
        for i in range(m):
            gradient = X[i].dot(theta) - y[i]
            theta -= learning_rate * gradient * X[i]
    return theta

# 训练模型
theta = stochastic_gradient_descent(X_train, Y_train)
1.3.3 Adam优化器

Adam优化器结合了动量和自适应学习率的优点,能够快速有效地优化模型参数。

from keras.optimizers import Adam

# 编译模型
model.compile(optimizer=Adam(learning_rate=0.001), loss='mean_squared_error')

# 训练模型
model.fit(X_train, Y_train, epochs=100, batch_size=1, validation_data=(X_test, Y_test))

1.4 模型评估与性能优化

模型评估是衡量模型在测试数据上的表现,通过计算模型的均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE)等指标,评估模型的性能。性能优化包括调整超参数、增加数据量和模型集成等方法。

1.4.1 模型评估指标

常见的模型评估指标包括均方误差(MSE)、均方根误差(RMSE)和平均绝对误差(MAE)等。

from sklearn.metrics import mean_squared_error, mean_absolute_error
import math

# 预测
y_pred = model.predict(X_test)

# 计算评估指标
mse = mean_squared_error(Y_test, y_pred)
rmse = math.sqrt(mse)
mae = mean_absolute_error(Y_test, y_pred)

print(f'MSE: {mse}')
print(f'RMSE: {rmse}')
print(f'MAE: {mae}')


1.4.2 超参数调优

通过网格搜索(Grid Search)和随机搜索(Random Search)等方法,对模型的超参数进行调优,找到最优的参数组合。

from sklearn.model_selection import GridSearchCV

# 定义超参数网格
param_grid = {
    'batch_size': [1, 16, 32],
    'epochs': [50, 100, 200],
    'optimizer': ['adam', 'sgd']
}

# 网格搜索
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='neg_mean_squared_error')
grid_search.fit(X_train, Y_train)

# 输出最优参数
best_params = grid_search.best_params_
print(f'Best parameters: {best_params}')

# 使用最优参数训练模型
model = model.set_params(**best_params)
model.fit(X_train, Y_train, epochs=100, validation_data=(X_test, Y_test))
1.4.3 增加数据量

通过数据增强和采样技术,增加训练数据量,提高模型的泛化能力和预测性能。

from imblearn.over_sampling import SMOTE

# 数据增强
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X_train, Y_train)

# 训练模型
model.fit(X_resampled, y_resampled, epochs=100, validation_data=(X_test, Y_test))
1.4.4 模型集成

通过模型集成的方法,将多个模型的预测结果进行组合,提高模型的稳定性和预测精度。常见的模型集成方法包括Bagging、Boosting和Stacking等。

from sklearn.ensemble import VotingRegressor

# 构建模型集成
ensemble_model = VotingRegressor(estimators=[
    ('ar', AutoReg(data['value'], lags=5)),
    ('ma', ARMA(data['value'], order=(0, 5))),
    ('lstm', model)
])

# 训练集成模型
ensemble_model.fit(X_train, Y_train)

# 预测与评估
y_pred = ensemble_model.predict(X_test)

第二章:时间序列分析的具体案例分析

2.1 股票价格预测

股票价格预测是时间序列分析中的经典问题,通过分析历史价格数据,预测未来的价格走势。以下是股票价格预测的具体案例分析。

2.1.1 数据预处理

首先,对股票价格数据进行预处理,包括数据清洗、归一化和数据增强。

# 加载股票价格数据
data = pd.read_csv('stock_prices.csv', index_col='date', parse_dates=True)

# 数据清洗
data.fillna(method='ffill', inplace=True)

# 数据归一化
scaler = MinMaxScaler()
data_normalized = scaler.fit_transform(data[['close']])
data['normalized'] = data_normalized

# 数据增强
data['noisy'] = add_noise(data['normalized'])
2.1.2 模型选择与训练

选择合适的模型进行训练,这里以LSTM为例。

# 数据准备
look_back = 3
X, Y = create_dataset(data_normalized, look_back)

# 数据分割
X_train, X_test = X[:int(len(X)*0.8)], X[int(len(X)*0.8):]
Y_train, Y_test = Y[:int(len(Y)*0.8)], Y[int(len(Y)*0.8):]

# 构建LSTM模型
model = Sequential()
model.add(LSTM(50, input_shape=(look_back, 1)))
model.add(Dense(1))

# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')

# 训练模型
model.fit(X_train, Y_train, epochs=100, batch_size=1, validation_data=(X_test, Y_test))
2.1.3 模型评估与优化

评估模型的性能,并进行超参数调优和数据增强。

# 评估模型
y_pred = model.predict(X_test)
mse = mean_squared_error(Y_test, y_pred)
rmse = math.sqrt(mse)
mae = mean_absolute_error(Y_test, y_pred)

print(f'MSE: {mse}')
print(f'RMSE: {rmse}')
print(f'MAE: {mae}')

# 超参数调优
param_grid = {
    'batch_size': [1, 16, 32],
    'epochs': [50, 100, 200],
    'optimizer': ['adam', 'sgd']
}
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='neg_mean_squared_error')
grid_search.fit(X_train, Y_train)
best_params = grid_search.best_params_
print(f'Best parameters: {best_params}')

# 使用最优参数训练模型
model = model.set_params(**best_params)
model.fit(X_train, Y_train, epochs=100, validation_data=(X_test, Y_test))

# 数据增强
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X_train, Y_train)
model.fit(X_resampled, y_resampled, epochs=100, validation_data=(X_test, Y_test))

2.2 气象预报

气象预报通过分析历史气象数据,预测未来的天气变化,广泛应用于农业、交通和防灾减灾等领域。以下是气象预报的具体案例分析。

2.2.1 数据预处理
# 加载气象数据
data = pd.read_csv('weather_data.csv', index_col='date', parse_dates=True)

# 数据清洗
data.fillna(method='ffill', inplace=True)

# 数据归一化
scaler = MinMaxScaler()
data_normalized = scaler.fit_transform(data[['temperature']])
data['normalized'] = data_normalized

# 数据增强
data['noisy'] = add_noise(data['normalized'])
2.2.2 模型选择与训练

选择合适的模型进行训练,这里以CNN为例。

# 数据准备
look_back = 3
X, Y = create_dataset(data_normalized, look_back)

# 数据分割
X_train, X_test = X[:int(len(X)*0.8)], X[int(len(X)*0.8):]
Y_train, Y_test = Y[:int(len(Y)*0.8)], Y[int(len(Y)*0.8):]

# 构建CNN模型
model = Sequential()
model.add(Conv1D(filters=64, kernel_size=2, activation='relu', input_shape=(look_back, 1)))
model.add(MaxPooling1D(pool_size=2))
model.add(Flatten())
model.add(Dense(50, activation='relu'))
model.add(Dense(1))

# 编译模型
model.compile(optimizer='adam', loss='mean_squared_error')

# 训练模型
model.fit(X_train, Y_train, epochs=100, batch_size=1, validation_data=(X_test, Y_test))
2.2.3 模型评估与优化

评估模型的性能,并进行超参数调优和数据增强。

# 评估模型
y_pred = model.predict(X_test)
mse = mean_squared_error(Y_test, y_pred)
rmse = math.sqrt(mse)
mae = mean_absolute_error(Y_test, y_pred)

print(f'MSE: {mse}')
print(f'RMSE: {rmse}')
print(f'MAE: {mae}')

# 超参数调优
param_grid = {
    'batch_size': [1, 16, 32],
    'epochs': [50, 100, 200],
    'optimizer': ['adam', 'sgd']
}
grid_search = GridSearchCV(estimator=model, param_grid=param_grid, cv=5, scoring='neg_mean_squared_error')
grid_search.fit(X_train, Y_train)
best_params = grid_search.best_params_
print(f'Best parameters: {best_params}')

# 使用最优参数训练模型
model = model.set_params(**best_params)
model.fit(X_train, Y_train, epochs=100, validation_data=(X_test, Y_test))

# 数据增强
smote = SMOTE(random_state=42)
X_resampled, y_resampled = smote.fit_resample(X_train, Y_train)
model.fit(X_resampled, y_resampled, epochs=100, validation_data=(X_test, Y_test))

第三章:性能优化与前沿研究

3.1 性能优化

3.1.1 特征工程

通过特征选择、特征提取和特征构造,优化模型的输入,提高模型的性能。

from sklearn.feature_selection import SelectKBest, f_classif

# 特征选择
selector = SelectKBest(score_func=f_classif, k=10)
X_selected = selector.fit_transform(X, y)
3.1.2 超参数调优

通过网格搜索和随机搜索,找到模型的最优超参数组合。

from sklearn.model_selection import RandomizedSearchCV

# 随机搜索
param_dist = {
    'n_estimators': [50, 100, 150],
    'max_depth': [3, 5,

 7, 10],
    'min_samples_split': [2, 5, 10]
}
random_search = RandomizedSearchCV(estimator=RandomForestClassifier(), param_distributions=param_dist, n_iter=10, cv=5, scoring='accuracy')
random_search.fit(X_train, y_train)
best_params = random_search.best_params_
print(f'Best parameters: {best_params}')

# 使用最优参数训练模型
model = RandomForestClassifier(**best_params)
model.fit(X_train, y_train)

# 预测与评估
y_pred = model.predict(X_test)
3.1.3 模型集成

通过模型集成,提高模型的稳定性和预测精度。

from sklearn.ensemble import StackingRegressor

# 构建模型集成
stacking_model = StackingRegressor(estimators=[
    ('ar', AutoReg(data['value'], lags=5)),
    ('ma', ARMA(data['value'], order=(0, 5))),
    ('lstm', model)
])

# 训练集成模型
stacking_model.fit(X_train, Y_train)

# 预测与评估
y_pred = stacking_model.predict(X_test)

3.2 前沿研究

3.2.1 强化学习在时间序列分析中的应用

强化学习通过与环境的交互,不断优化策略,在动态系统和实时决策中具有广泛的应用前景。

3.2.2 联邦学习与隐私保护

联邦学习通过在不交换数据的情况下进行联合建模,保护用户数据隐私,提高时间序列分析系统的安全性和公平性。

3.2.3 自监督学习在时间序列分析中的应用

自监督学习通过生成伪标签进行训练,提高模型的表现,特别适用于无监督数据的大规模训练。

结语

机器学习作为时间序列分析领域的重要技术,已经在多个应用场景中取得了显著的成果。通过对数据的深入挖掘和模型的不断优化,机器学习技术将在时间序列分析中发挥更大的作用,推动预测与决策技术的发展。

以上是对机器学习在时间序列分析中的理论、算法与实践的全面介绍,希望能够为从事相关研究和应用的人员提供有益的参考。

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

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

相关文章

C# 编程中互斥锁的使用

C# 中的互斥锁 互斥锁是 C# 中使用的同步原语&#xff0c;用于控制多个线程或进程对共享资源的访问。其目的是确保在任何给定时间只有一个线程或进程可以获取互斥锁&#xff0c;从而提供互斥。 C# 中互斥锁的优点 可以使用互斥锁 (Mutex) 并享受其带来的好处。 1. 共享资源…

一篇就够了,为你答疑解惑:锂电池一阶模型-在线参数辨识(附代码)

锂电池一阶模型-在线参数辨识 背景在线 VS 离线 参数辨识递推最小二乘法一阶戴维南Z域离散表达式 背景 锂电池一阶戴维南等效模型的基础知识和离线辨识方法&#xff0c;已经在上一期非常详细地讲解了一轮&#xff08;上期文章请戳此处&#xff09;&#xff0c;本期继续讲解一下…

秋招提前批面试经验分享(上)

⭐️感谢点开文章&#x1f44b;&#xff0c;欢迎来到我的微信公众号&#xff01;我是恒心&#x1f60a; 一位热爱技术分享的博主。如果觉得本文能帮到您&#xff0c;劳烦点个赞、在看支持一下哈&#x1f44d;&#xff01; ⭐️我叫恒心&#xff0c;一名喜欢书写博客的研究生在读…

vue3中使用EasyPlayer播放h265视频流

1、下载EasyPlayer 5.0.3版本 在package.json中加入EasyPlayer&#xff0c;并全局install下 "dependencies": {"easydarwin/easyplayer": "^5.0.3" }2、找到node_modules中的EasyPlayer.wasm和EasyPlayer-element.min.js 3、复制到public下面&…

多元微分学中可微、连续、存在问题

一、偏导存在 与一元证明相同&#xff0c;利用偏导定义式&#xff0c;证明偏导数左右极限存在且相同。 二、偏导连续 与一元证明相同&#xff0c;证明 三、极限存在 1、找一条路径&#xff0c;一般地找 y kx 2、代入f(x,y)&#xff0c;得f(x,kx) 3、证明f(x,kx)极限存在 注意&…

基于java语言+ Vue+ElementUI+ MySQL8.0.36数字化产科管理平台源码,妇幼信息化整体解决方案

基于java语言 VueElementUI MySQL8.0.36数字化产科管理平台源码&#xff0c;妇幼信息化整体解决方案 数字化产科管理平台是为医院产科量身定制的信息管理系统。它管理了孕妇从怀孕开始到生产结束42天一系列医院保健服务信息。该系统由门诊系统、住院系统、数据统计模块三部分组…

昇思25天学习打卡营第14天|Pix2Pix实现图像转换

Pix2Pix是基于条件生成对抗网络&#xff08;cGAN, Condition Generative Adversarial Networks &#xff09;实现的一种深度学习图像转换模型&#xff0c;该模型是由Phillip Isola等作者在2017年CVPR上提出的&#xff0c;可以实现语义/标签到真实图片、灰度图到彩色图、航空图到…

MSPM0G3507——滴答定时器和普通定时

滴答定时器定时&#xff1a;&#xff08;放在主函数即可&#xff09; volatile unsigned int delay_times 0;//搭配滴答定时器实现的精确ms延时 void delay_ms(unsigned int ms) {delay_times ms;while( delay_times ! 0 ); } //滴答定时器中断 void SysTick_Handler(…

桌面快充插线板+伸缩数据线,轻松实现1+1>2

手机、平板、笔记本等电子设备已成为我们日常工作和学习的必备工具。然而,随着设备数量的增加,充电问题也日益凸显。桌面空间有限,多个快充头不仅显得杂乱无章,而且效率低下,无法满足我们高效办公的需求。 在这样的背景下,倍思Nomos氮化镓100W桌面充电站凭借其创新的设计和强大…

下载,连接mysql数据库驱动(最详细)

前言 本篇博客&#xff0c;我讲讲如何连接数据库&#xff1f;我使用mysql数据库举例。 目录 下载对应的数据库jar 包 百度网盘 存有8.4.0版本压缩包&#xff1a;链接&#xff1a;https://pan.baidu.com/s/13uZtXRmuewHRbXaaCU0Xsw?pwduipy 提取码&#xff1a;uipy 复制这…

Day05-04-持续集成总结

Day05-04-持续集成总结 1. 持续集成2. 代码上线目标项目 1. 持续集成 git 基本使用, 拉取代码,上传代码,分支操作,tag标签 gitlab 用户 用户组 项目 , 备份,https,优化. jenkins 工具平台,运维核心, 自由风格工程,maven风格项目,流水线项目, 流水线(pipeline) mavenpom.xmlta…

基于SpringBoot的时间管理系统

你好&#xff0c;我是专注于时间管理的技术爱好者&#xff01;如果你对时间管理有独到的见解&#xff0c;欢迎私信交流。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot框架 工具&#xff1a;Eclipse、MySQL数据库管理工具 系统展示 首页…

【C语言】 —— 编译和链接

【C语言】 —— 编译和链接 一、编译环境和运行环境二、翻译环境2.1、 预处理2.2、 编译&#xff08;1&#xff09;词法分析&#xff08;2&#xff09;语法分析&#xff08;3&#xff09;语义分析 2.3、 汇编2.4、链接 三、运行环境 一、编译环境和运行环境 平时我们说写 C语言…

区块链论文速读A会-ISSTA 2023(2/2)如何检测DeFi协议中的价格操纵漏洞

Conference&#xff1a;ACM SIGSOFT International Symposium on Software Testing and Analysis (ISSTA) CCF level&#xff1a;CCF A Categories&#xff1a;Software Engineering/System Software/Programming Languages Year&#xff1a;2023 第1~5篇区块链文章 请点击此…

2-5 softmax 回归的简洁实现

我们发现通过深度学习框架的高级API能够使实现线性回归变得更加容易。 同样&#xff0c;通过深度学习框架的高级API也能更方便地实现softmax回归模型。 本节如在上节中一样&#xff0c; 继续使用Fashion-MNIST数据集&#xff0c;并保持批量大小为256。 import torch from torc…

论文复现-基于决策树算法构建银行贷款审批预测模型(金融风控场景)

作者Toby&#xff0c;来源公众号&#xff1a;Python风控模型&#xff0c;基于决策树算法构建银行贷款审批预测模型 目录 1.金融风控论文复现 2.项目背景介绍 3.决策树介绍 4.数据集介绍 5.合规风险提醒 6.技术工具 7.实验过程 7.1导入数据 7.2数据预处理 7.3数据可…

隔离级别-隔离级别中的锁协议、隔离级别类型、隔离级别的设置、隔离级别应用

一、引言 1、DBMS除了采用严格的两阶段封锁协议来保证并发事务的可串行化&#xff0c;实现事务的隔离性&#xff0c;也可允许用户选择一个可以保证应用程序正确执行并且能够使并发度最大的隔离性等级 2、通常用隔离级别来描述隔离性等级&#xff0c;以下将主要介绍ANSI 92标准…

LaTeX教程(014)-LaTeX文档结构(14)

LaTeX教程(014)- LaTeX \LaTeX LATE​X文档结构(14) 2.3.3 multitoc - 将目录设置为多栏 multitoc包的使用方法相当简单&#xff0c;只需要调用这个包&#xff0c;并将要设置为多栏(默认是双栏)的目录指定到包选项中即可。如\usepackage[toc]{multitoc}&#xff0c;设置的就是…

GIT 使用相关技巧记录

目录 1、commit 用户信息变更 全局用户信息&#xff08;没有特殊配置的情况下默认直接用全局信息&#xff09; 特定仓库用户信息&#xff08;只针对于当前项目&#xff09; 方法一&#xff1a;修改config文件 方法二&#xff1a;命令方式 2、idea同一代码推向多个远端仓库…

如何在应用运行时定期监控内存使用情况

如何在应用运行时定期监控内存使用情况 在 iOS 应用开发中&#xff0c;实时监控内存使用情况对于优化性能和排查内存泄漏等问题非常重要。本文将介绍如何在应用运行时定期监控内存使用情况&#xff0c;使用 Swift 编写代码并结合必要的工具和库。 1. 创建桥接头文件 首先&…