【机器学习(十三)】机器学习回归案例之股票价格预测分析—Sentosa_DSML社区版

文章目录

  • 一、背景描述
  • 二、Python代码和Sentosa_DSML社区版算法实现对比
    • (一) 数据读入
    • (二) 特征工程
    • (三) 样本分区
    • (四) 模型训练和评估
    • (五) 模型可视化
  • 三、总结

一、背景描述

  股票价格是一种不稳定的时间序列,受多种因素的影响。影响股市的外部因素很多,主要有经济因素、政治因素和公司自身因素三个方面的情况。自股票市场出现以来,研究人员采用各种方法研究股票价格的波动。随着数理统计方法和机器学习的广泛应用,越来越多的人将机器学习等预测方法应用于股票预测中,如神经网络预测、决策树预测、支持向量机预测、逻辑回归预测等。
  XGBoost是由TianqiChen在2016年提出来,并证明了其模型的计算复杂度低、运行速度快、准确度高等特点。XGBoost是GBDT的高效实现。在分析时间序列数据时,GBDT虽然能有效提高股票预测结果,但由于检测速率相对较慢,为寻求快速且精确度较高的预测方法,采用XGBoost模型进行股票预测,在提高预测精度同时也提高预测速率。可以利用XGBoost网络模型对股票历史数据的收盘价进行分析预测,将真实值和预测值进行对比,最后通过评估算子来评判XGBoost模型对股价预测的效果。
  数据集通过爬虫获取从2005年开始到2020年的股票(代码为 510050.SH)历史数据,下表展示了股票在多个交易日内的市场表现,主要字段包括:

字段含义
ts_code股票代码
trade_date交易日期
pre_close前一个交易日的收盘价
open开盘价
high当日最高价
low当日最低价
close当日收盘价
change收盘价变化值(与前一日相比的差值)
pct_chg收盘价变化百分比
vol成交量
amount成交金额
label标记某日涨跌情况

  这些字段全面记录了股票每天的价格波动和交易情况,用于后续分析和预测股票趋势。

二、Python代码和Sentosa_DSML社区版算法实现对比

(一) 数据读入

1、python代码实现
  导入需要的库

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from matplotlib import rcParams
from sklearn.metrics import mean_squared_error, mean_absolute_error, r2_score
import xgboost as xgb

  数据读入

dataset = pd.read_csv('20_year_FD.csv')
print(dataset.head())

2、Sentosa_DSML社区版实现、

  首先,利用文本算子从本地文件读入股票数据集。
在这里插入图片描述

(二) 特征工程

1、python代码实现

def calculate_moving_averages(dataset, windows):
    for window in windows:
        column_name = f'MA{window}'
        dataset[column_name] = dataset['close'].rolling(window=window).mean()
    dataset[['close'] + [f'MA{window}' for window in windows]] = dataset[['close'] + [f'MA{window}' for window in windows]].round(3)
    return dataset

windows = [5, 7, 30]
dataset = calculate_moving_averages(dataset, windows)

print(dataset[['close', 'MA5', 'MA7', 'MA30']].head())

plt.figure(figsize=(14, 7))
plt.plot(dataset['close'], label='Close Price', color='blue')
plt.plot(dataset['MA5'], label='5-Day Moving Average', color='red', linestyle='--')
plt.plot(dataset['MA7'], label='7-Day Moving Average', color='green', linestyle='--')
plt.plot(dataset['MA30'], label='30-Day Moving Average', color='orange', linestyle='--')
plt.title('Close Price and Moving Averages')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend()
plt.show()

在这里插入图片描述

得到实际股价与平均股价的差值的绝对值,观察偏离水平。

def calculate_deviation(dataset, ma_column):
    deviation_column = f'deviation_{ma_column}'
    dataset[deviation_column] = abs(dataset['close'] - dataset[ma_column])
    return dataset

dataset = calculate_deviation(dataset, 'MA5')
dataset = calculate_deviation(dataset, 'MA7')
dataset = calculate_deviation(dataset, 'MA30')

plt.figure(figsize=(10, 6))
plt.plot(dataset['deviation_MA5'], label='Deviation from MA5')
plt.plot(dataset['deviation_MA7'], label='Deviation from MA7')
plt.plot(dataset['deviation_MA30'], label='Deviation from MA30')
plt.legend(loc='upper left')
plt.title('Deviation from Moving Averages')
plt.show()

在这里插入图片描述

def calculate_vwap(df, close_col='close', vol_col='vol'):
    if close_col not in df.columns or vol_col not in df.columns:
        raise ValueError(f"DataFrame must contain '{close_col}' and '{vol_col}' columns.")
    try:
        cumulative_price_volume = (df[close_col] * df[vol_col]).cumsum()
        cumulative_volume = df[vol_col].cumsum()
        vwap = np.where(cumulative_volume == 0, np.nan, cumulative_price_volume / cumulative_volume)
    except Exception as e:
        print(f"Error in VWAP calculation: {e}")
        vwap = pd.Series(np.nan, index=df.index)
    return pd.Series(vwap, index=df.index)
dataset['VWAP'] = calculate_vwap(dataset)
def generate_signals(df, close_col='close', vwap_col='VWAP'):
    if close_col not in df.columns or vwap_col not in df.columns:
        raise ValueError(f"DataFrame must contain '{close_col}' and '{vwap_col}' columns.")

    signals = pd.Series(0, index=df.index)

    signals[(df[close_col] > df[vwap_col]) & (df[close_col].shift(1) <= df[vwap_col].shift(1))] = 1  # 买入信号
    signals[(df[close_col] < df[vwap_col]) & (df[close_col].shift(1) >= df[vwap_col].shift(1))] = -1  # 卖出信号
    return signals

dataset['signal'] = generate_signals(dataset)
print(dataset[['close', 'VWAP', 'signal']].head())

2、Sentosa_DSML社区版实现
  移动平均线是一种常用的技术指标,通过计算移动平均来分析股票的价格走势,帮助识别市场趋势,并为交易决策提供参考。根据不同的窗口大小(5天、7天、30天)来计算股票的收盘价的移动平均线,移动平均线可以平滑股价的短期波动,从而更好地识别股票的长期趋势。短期的 5 日、7 日移动平均线通常用来捕捉股票的短期趋势,帮助交易者快速做出买入或卖出的决策。30 日移动平均线则代表中长期趋势,帮助识别更广泛的市场方向。通过绘制图表,可以直观地看到收盘价格及其对应的移动平均线,方便观察价格变化和趋势。
  利用生成列算子,通过设定的生成列表达式计算的新列的值,并设置列名,这里生成列分别为 moving_avg_5d、 moving_avg_7d、 moving_avg_30d,分别表示不同周期(5天、7天、30天)的移动平均线。
在这里插入图片描述
  表达式为SQL窗口函数,

AVG(`close`) OVER ( ROWS BETWEEN 4 PRECEDING AND CURRENT ROW)
AVG(`close`) OVER ( ROWS BETWEEN 4 PRECEDING AND CURRENT ROW)
AVG(`close`) OVER ( ROWS BETWEEN 4 PRECEDING AND CURRENT ROW)

在这里插入图片描述
  连接折线图算子,选择收盘价实际值和移动平均线,进行图表展示。
在这里插入图片描述
  得到结果如下,可以直观地看到收盘价格及其对应的移动平均线,方便观察价格变化和趋势。
在这里插入图片描述
  再利用生成列算子,计算股票价格与不同周期的移动平均线的偏差的绝对值,得出当前价格偏离移动平均线的程度,观察偏离水平。偏差值越大,意味着价格波动越剧烈,可能处于较强的上涨或下跌趋势中。偏差值越小,意味着价格与均值靠近,波动较小,市场可能处于震荡或横盘阶段。
  如果偏差持续扩大,说明价格远离均值,可能面临较大的回调风险或即将突破某个方向。
  如果偏差开始收窄,说明价格回归均值,可能表明市场趋势趋于稳定或发生反转。
  这里设置生成列列名分别为deviation_MA5、 deviation_MA7、deviation_MA30,分别表示不同周期得偏差。
  生成列值得表达式如下:

abs(`close`-` moving_avg_5d`)
abs(`close`-` moving_avg_7d`)
abs(`close`-` moving_avg_29d`)

在这里插入图片描述
  右键生成列算子预览可以得到数据展示。
在这里插入图片描述
  或者利用图表算子对偏差值进行可视化图表展示,通过对偏差值进行可视化展示,绘制偏差曲线,可以直观呈现实际收盘价格与移动平均线之间的偏离趋势,不仅有助于揭示市场波动的幅度,还能为识别潜在的价格反转或趋势变化提供重要依据,能够更精准地判断市场的动向,从而优化决策流程并降低交易风险。
在这里插入图片描述
  然后,基于交易量计算加权平均价格,反映特定时间段内股票的平均成交价格,考虑成交量的影响。计算公式是用股票的收盘价(close)乘以交易量(vol),然后计算加权收盘价的累积和,除以交易量的累积和。
  利用生成列算子设置列名,并构造生成列表达式计算成交量加权平均值。
在这里插入图片描述
  当股票的收盘价(close)大于成交量加权平均值时,signal 设置为 1,表示一个买入信号,股票价格处于强势。
  当股票的收盘价小于等于成交量加权平均值时,signal 为 0,表示弱势,可以用于做空或保持观望。这个信号可以作为简单的策略来指导交易决策。
  利用选择算子,对数据按照表达式trade_date;close>成交量加权平均对数据进行选择。
在这里插入图片描述
  并连接删除和重命名算子将进行条件判断后得列修改列名为signal,表示交易决策的指导信号。
在这里插入图片描述
  再连接合并算子,将数据利用关键字trade_date将特征列进行合并。
在这里插入图片描述
  右键预览,可观察合并后的数据情况,也可以连接表格算子对数据进行表格输出。
在这里插入图片描述

(三) 样本分区

1、python代码实现
  对数据进行预处理和顺序分区。

def preprocess_data(dataset, columns_to_exclude, label_column):
    if label_column not in dataset.columns:
        raise ValueError(f"Label column '{label_column}' not found in dataset.")
    dataset[columns_to_exclude] = None

    for column in columns_to_convert:
        if column in dataset.columns:
            dataset[column] = pd.to_numeric(dataset[column], errors='coerce')
        else:
            print(f"Warning: Column '{column}' not found in dataset.")
    dataset.fillna(0, inplace=True)
    return dataset
def split_data(dataset, label_column, train_ratio=0.8):
    dataset.sort_values(by='trade_date', ascending=True, inplace=True)
    split_index = int(len(dataset) * train_ratio)

    train_set = dataset.iloc[:split_index]
    test_set = dataset.iloc[split_index:]

    return train_set, test_set
def prepare_dmatrix(train_set, test_set, label_column):
    if label_column not in train_set.columns or label_column not in test_set.columns:
        raise ValueError(f"Label column '{label_column}' must be in both training and testing sets.")

    dtrain = xgb.DMatrix(train_set.drop(columns=[label_column]), label=train_set[label_column])
    dtest = xgb.DMatrix(test_set.drop(columns=[label_column]), label=test_set[label_column])

    return dtrain, dtest
columns_to_exclude = [
    'trade_date', 'ts_code', 'label', 'VWAP', 'signal',
    'MA5', 'MA7', 'deviation_MA5', 'deviation_MA7'
]
columns_to_convert = [
    'close', 'MA5', 'MA7', 'deviation_MA5',
    'deviation_MA7', 'MA30', 'deviation_MA30',
    'VWAP', 'signal'
]

label_column = 'close'
dataset = preprocess_data(dataset, columns_to_exclude, label_column)
train_set, test_set = split_data(dataset, label_column)
dtrain, dtest = prepare_dmatrix(train_set, test_set, label_column)

2、Sentosa_DSML社区版实现
  在处理数据时,将trade_date列从int类型转换为datetime 类型,可以连接两个格式算子完成,首先将int类型的日期转换为字符串,然后再将字符串转换为datetime类型。
在这里插入图片描述在这里插入图片描述
  对数据输出类型进行格式化后,连接类型算子,设置数据的测量类型和模型类型。这里修改模型类型,设置建模算子输入数据需要的标签列和特征列等属性。
在这里插入图片描述
  然后,连接样本分区算子,利用时间序列对数据进行分区,训练集和测试集比例为8:2。在这里插入图片描述

(四) 模型训练和评估

1、python代码实现

params = {
    'objective': 'reg:squarederror',
    'eval_metric': 'rmse',
    'learning_rate': 1,
    'max_depth': 6,
    'min_child_weight': 1,
    'subsample': 1,
    'colsample_bytree': 0.8,
    'lambda': 1,
    'alpha': 0
}
model = xgb.train(params, dtrain, num_boost_round=100, evals=[(dtest, 'test')])
y_train_pred = model.predict(dtrain)
y_test_pred = model.predict(dtest)
def calculate_metrics(y_true, y_pred):
    r2 = r2_score(y_true, y_pred)
    mae = mean_absolute_error(y_true, y_pred)
    rmse = np.sqrt(mean_squared_error(y_true, y_pred))
    mape = np.mean(np.abs((y_true - y_pred) / y_true)) * 100
    smape = np.mean(2 * np.abs(y_true - y_pred) / (np.abs(y_true) + np.abs(y_pred))) * 100
    mse = mean_squared_error(y_true, y_pred)
    return {
        'R2': r2,
        'MAE': mae,
        'RMSE': rmse,
        'MAPE': mape,
        'SMAPE': smape,
        'MSE': mse
    }
train_metrics = calculate_metrics(train_set[label_column], y_train_pred)
test_metrics = calculate_metrics(test_set[label_column], y_test_pred)
print("训练集评估结果:")
print(train_metrics)
print("测试集评估结果:")
print(test_metrics)

2、Sentosa_DSML社区版实现

  首先,选择XGBoost回归算子,并设置了相关参数用于模型训练,使用均方根误差(RMSE)作为评估模型表现的指标。构建了一个XGBoost预测模型,并将其应用于股票收盘价预测。也可以连接其他回归模型进行训练,将XGBoost模型的预测结果与其他模型的预测结果进行比较,并通过模型评价指标(如R²、MAE、RMSE等)对各个模型的表现进行验证和评估。
在这里插入图片描述
  执行后可以得到训练完成的XGBoost回归模型,右键可进行查看模型信息和预览结果等操作。
在这里插入图片描述
  连接评估算子对XGBoost模型进行评估。股票预测模型的预测性能评价指标采用R²、MAE、RMSE、MAPE、SMAPE和MSE,分别用于评估模型的拟合优度、预测误差的平均绝对值、均方根误差、绝对百分比误差、对称百分比误差和均方误差,用于衡量预测的准确性和稳定性。
在这里插入图片描述
  得到训练集和测试集的评估结果如下所示:
在这里插入图片描述在这里插入图片描述
  该XGBoost股票预测模型在训练集上表现优异,误差较小,表明模型能够很好地拟合训练数据。在测试集上的评估结果也较为理想,MAE为0.054,RMSE为0.093,MAPE和SMAPE分别为1.8%和1.7%,说明模型在测试集上的预测误差较小,具有良好的泛化能力,能够较为准确地预测股票收盘价,该模型在平衡训练集拟合和测试集泛化上表现稳定。

(五) 模型可视化

1、python代码实现

rcParams['font.family'] = 'sans-serif'
rcParams['font.sans-serif'] = ['SimHei']

train_residuals = train_set[label_column] - y_train_pred

plt.figure(figsize=(10, 6))
xgb.plot_importance(model, importance_type='weight', title='特征重要性图', xlabel='重要性', ylabel='特征')
plt.show()

plt.figure(figsize=(10, 6))
sns.histplot(train_residuals, bins=30, kde=True, color='blue')
plt.title('残差分布', fontsize=16)
plt.xlabel('残差', fontsize=14)
plt.ylabel('频率', fontsize=14)
plt.axvline(x=0, color='red', linestyle='--')
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.show()

`if '预测值' in test_set.columns:
    test_data = pd.DataFrame(test_set.drop(columns=[label_column, '预测值']))
else:
    test_data = pd.DataFrame(test_set.drop(columns=[label_column]))

test_data['实际值'] = test_set[label_column].values
test_data['预测值'] = y_test_pred
test_data_subset = test_data.head(400)

original_values = test_data_subset['实际值'].values
predicted_values = test_data_subset['预测值'].values
x_axis = range(1, 401)

plt.figure(figsize=(12, 6))
plt.plot(x_axis, original_values, label='实际值', color='orange')
plt.plot(x_axis, predicted_values, label='预测值', color='green')
plt.title('实际值与预测值比较', fontsize=16)
plt.xlabel('样本编号', fontsize=14)
plt.ylabel('收盘价', fontsize=14)
plt.legend()
plt.grid()
plt.show()`

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

2、Sentosa_DSML社区版实现

  右键模型信息可以查看特征重要性图、残差直方图等信息。
在这里插入图片描述
在这里插入图片描述
  连接时序图算子,用于将XGBoost模型预测的股票收盘价与实际收盘价进行可视化对比,将每个序列单独显示,生成时序对比曲线图,通过这种方式可以直观地看到模型预测与实际数据的差异,从而评估模型的性能和可靠性。这在数据预测中非常重要,因为它有助于识别模型是否能够准确捕捉市场趋势。
在这里插入图片描述
  得到时序图算子的执行结果如下所示:
在这里插入图片描述
  这张图包含两条时间序列曲线,分别展示了模型预测值(Predicted_close)和实际值(close)在一段时间内的走势对比,显示的是模型预测的股票收盘价随时间变化的趋势。两条曲线的整体趋势相似,尤其是在大的波动区域(如2008年左右的高峰期和之后的下降期),表明模型的预测效果与实际值接近。这张图直观地展示了模型预测值与实际值的时间序列对比,帮助评估模型的表现是否符合实际市场走势。

三、总结

  相比传统代码方式,利用Sentosa_DSML社区版完成机器学习算法的流程更加高效和自动化,传统方式需要手动编写大量代码来处理数据清洗、特征工程、模型训练与评估,而在Sentosa_DSML社区版中,这些步骤可以通过可视化界面、预构建模块和自动化流程来简化,有效的降低了技术门槛,非专业开发者也能通过拖拽和配置的方式开发应用,减少了对专业开发人员的依赖。
  Sentosa_DSML社区版提供了易于配置的算子流,减少了编写和调试代码的时间,并提升了模型开发和部署的效率,由于应用的结构更清晰,维护和更新变得更加容易,且平台通常会提供版本控制和更新功能,使得应用的持续改进更为便捷。

  为了回馈社会,矢志推动全民AI普惠的实现,不遗余力地降低AI实践的门槛,让AI的福祉惠及每一个人,共创智慧未来。为广大师生学者、科研工作者及开发者提供学习、交流及实践机器学习技术,我们推出了一款轻量化安装且完全免费的Sentosa_DSML社区版软件,该软件包含了Sentosa数据科学与机器学习平台(Sentosa_DSML)中机器学习平台(Sentosa_ML)的大部分功能,以轻量化一键安装、永久免费使用、视频教学服务和社区论坛交流为主要特点,同样支持“拖拉拽”开发,旨在通过零代码方式帮助客户解决学习、生产和生活中的实际痛点问题。
  该软件为基于通用人工智能的数据分析工具,可以赋能各行各业。应用范围非常广泛,以下是一些主要应用领域:
  金融风控:用于信用评分、欺诈检测、风险预警等,降低投资风险;
  股票分析:预测股票价格走势,提供投资决策支持;
  医疗诊断:辅助医生进行疾病诊断,如癌症检测、疾病预测等;
  药物研发:进行分子结构的分析和药物效果预测,帮助加速药物研发过程;
  质量控制:检测产品缺陷,提高产品质量;
  故障预测:预测设备故障,减少停机时间;
  设备维护:通过分析机器的传感器数据,检测设备的异常行为;
  环境保护:用于气象预测、大气污染监测等。
  欢迎访问官网https://sentosa.znv.com/,下载体验Sentosa_DSML社区版。同时,我们在B站、CSDN、知乎、博客园等平台也有技术讨论博客和文章,欢迎广大数据分析爱好者前往交流讨论。
  Sentosa_DSML社区版,重塑数据分析新纪元,以可视化拖拽方式指尖轻触解锁数据深层价值,让数据挖掘与分析跃升至艺术境界,释放思维潜能,专注洞察未来。

https://sentosa.znv.com/

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

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

相关文章

C++11新特性(4)

目录 1.包装器 2.线程库 2.1thread类的简单介绍 2.2线程函数参数 2.3原子性操作库(atomic) 2.4lock_guard与unique_lock 2.5mutex的种类 1. std::mutex 2. std::recursive_mutex 3. std::timed_mutex 4. std::recursive_timed_mutex 2.6lock_guard 2.7unique_lock 3.支持两个线…

鼠标市场洞察:数据分析揭示消费趋势!

鼠标整体数据分析 一. 概述 本报告基于从淘宝商品搜索接口和淘宝精确月销量接口中提取的数据&#xff0c;分析了前百个品牌在销售额上的占比情况。分析涵盖了销售额和占比的数据&#xff0c;为决策提供了依据。(以上两个接口有需求的可以找我要链接&#xff09;&#xff08;数…

概率 随机变量以及分布

一、基础定义及分类 1、随机变量 随机变量是一个从样本空间&#xff08;所有可能结果的集合&#xff09;到实数集的函数。&#xff08;随机变量的值可以是离散的&#xff0c;也可以是连续的。 &#xff09; 事件可以定义为随机变量取特定值的集合。 2、离散型随机变量 随机变…

Unity开发Hololens项目

Unity打包Hololens设备 目录Visual Studio2019 / Visual Studio2022 远端部署设置Visual Studio2019 / Visual Studio2022 USB部署设置Hololens设备如何查找自身IPHololens设备门户Unity工程内的打包设置 目录 记录下自己做MR相关&#xff1a;Unity和HoloLens设备的历程。 Vi…

软件企业选择第三方软件检测机构有哪些好处?

在软件开发的当今时代&#xff0c;确保软件的质量和性能是每个企业面临的挑战&#xff0c;因此软件检测公正必不可少。随着市场的需求&#xff0c;越来越多企业会选择将该项工作交由第三方软件检测机构进行。第三方软件检测机构指独立于软件开发方和需求方的第三方机构&#xf…

5、JavaScript(二)

17.对象 1、对象&#xff1a;⽤来存储多个数据的 是由多个键值对/key value对组成的 ⽤来描述⼀个事物的 相当于多个变量的集合 2、格式 &#xff1a;{key:value,key:value} 键/值对 属性名&#xff1a;属性值 3、对象的属性值是不限制数据类型的&#xff0c;甚至还可以是对…

CEEMDAN +组合预测模型(BiLSTM-Attention + ARIMA)

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较 全是干货 | 数据集、学习资料、建模资源分享&#xff01; EMD、EEMD、FEEMD、CEEMD、CEEMDAN的区别、原理和Python实现&#xff08;一&#xff09;EMD-CSDN博客 EMD、EEM…

JavaWeb合集05-SpringBoot基础知识

五、SpringBoot基础知识 0、实用方法 0.1 动态获取某个文件路径 //getResource( name:" emp.txt") 更具名称获取资源链接&#xff1b;getFile() 获取文件对象 String filePaththis.getClass().getClassLoader().getResource( name:" emp.txt").getFile(…

数仓建设:如何设计数据治理考评规则?

目录 0 为什么要数据治理&#xff1f; 2 什么是数据治理&#xff1f; ​​​​​​​3 如何数据治理如何落地&#xff1f; ​​​​​​​4 数据考评的指标 5 考核指标列表 6 数仓团队应如何建设&#xff1f; 6.1 ​​​​​​​考评指标分析 6.2 ​​​健康分计算规则…

[Linux#67][IP] 报头详解 | 网络划分 | CIDR无类别 | DHCP动态分配 | NAT转发 | 路由器

目录 一. IP协议头格式 学习任何协议前的两个关键问题 IP 报头与有效载荷分离 分离方法 为什么需要16位总长度 如何交付 二. 网络通信 1.IP地址的划分理念 2. 子网管理 3.网络划分 CIDR&#xff08;无类别域间路由&#xff09; 目的IP & 当前路由器的子网掩码 …

ubuntu服务器监控程序崩溃自动重启

环境&#xff1a;监控程序运行情况分为两种情况&#xff0c;一种带界面&#xff0c;一种控制台程序&#xff0c;带界面程序采用脚本监控方式&#xff0c;不带界面采用Supervisor工具监控。 1. 自动重启带界面程序&#xff1a; #!/bin/sh while true; do processExistps aux | …

一些简单的编程题(Java与C语言)

引言&#xff1a; 这篇文章呢&#xff0c;小编将会举一些简单的编程题用来帮助大家理解一下Java代码&#xff0c;并且与C语言做个对比&#xff0c;不过这篇文章所出现的题目小编不会向随缘解题系列里面那样详细的讲解每一到题&#xff0c;本篇文章的主要目的是帮助小编和读者们…

【YOLOv11改进[CONV]】使用SAconv模块魔改YOLOv11 + 含全部代码和详细修改方式

本文将进行在YOLOv11中使用SAconv魔改v11,文中含全部代码、详细修改方式。助您轻松理解改进的方法。 改进前和改进后的参数对比如下: 目录 一 SAconv 二 使用SAconv魔改v11

构建 effet.js 人脸识别交互系统的实战之路

构建 effet.js 人脸识别交互系统的实战之路 文章目录 构建 effet.js 人脸识别交互系统的实战之路前言一、什么是effet.js二、为什么需要使用effet.js四、effet.js能做什么五、使用步骤1.引入库2.main.js中注册全局2.使用3.效果图 六、其他模式讲解人脸打卡人脸添加睡眠检测 在h…

[产品管理-46]:产品组合管理中的项目平衡与管道平衡的区别

目录 一、项目平衡 1.1 概述 1.2 项目的类型 1、根据创新程度和开发方式分类 2、根据产品开发和市场周期分类 3、根据风险程度分类 4、根据市场特征分类 5、根据产品生命周期分类 1.3 产品类型的其他分类 1、按物理形态分类 2、按功能或用途分类 3、按技术或创新程…

OpenCV高级图形用户界面(12)用于更改指定窗口的大小函数resizeWindow()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::resizeWindow() 函数用于更改指定窗口的大小。这使得你可以根据需要调整窗口的宽度和高度。 注释 指定的窗口大小是指图像区域的大小。工具栏…

必学的20个Excel表格操作python脚本!

示例数据 (bank_data.xlsx) 首先&#xff0c;我们创建一个示例的Excel文件bank_data.xlsx&#xff0c;并填充一些示例数据。 import pandas as pd # 创建示例数据 data { 客户ID: [1, 2, 3, 4, 5], 姓名: [张三, 李四, 王五, 赵六, 孙七], 联系方式: [13800000000, 13900000…

get请求(豆瓣电影第一页爬取)

目录 &#xff08;一&#xff09;需要的python库 import urllib.request import urllib.parse &#xff08;二&#xff09;找到url和headers url headers &#xff08;三&#xff09;创建一个请求对象和返回一个响应对象 创建一个请求对象 返回一个响应对象 &#xff08…

【网络篇】计算机网络——网络层详述(笔记)

目录 一、网络层 1. 网络传输流程简述 2. 转发和路由选择 3. 控制平面&#xff1a;SDN 方法 二、路由器工作原理 1. 概述 &#xff08;1&#xff09;输入端口 &#xff08;2&#xff09;交换结构 &#xff08;3&#xff09;输出端口 &#xff08;4&#xff09;路由选…

特步引入IPD管理,钉钉项目 Teambition 助力高效产品研发管理

中国是全球第二大消费市场&#xff0c;运动鞋服行业拥有着巨大的发展潜力。在过去五年时间里&#xff0c;随着中国产品品牌和质量的提升&#xff0c;体育市场的占有率格局发生了显著变化&#xff0c;不同于部分国际品牌巨头营收持续减弱&#xff0c;国产领军体育运动品牌「特步…