【ShuQiHere】 探索数据挖掘的世界:从概念到应用
🌐 【ShuQiHere】
数据挖掘(Data Mining, DM) 是一种从大型数据集中提取有用信息的技术,无论是在商业分析、金融预测,还是医学研究中,数据挖掘都扮演着至关重要的角色。本文将带您深入了解数据挖掘的核心概念、经典方法,以及它在日常生活和商业中的应用场景。
什么是数据挖掘?🤖
数据挖掘的定义与背景
数据挖掘(Data Mining, DM) 是从庞大且复杂的数据集中发现模式和有用信息的过程。它是**知识发现过程(KDD, Knowledge Discovery in Databases)**的核心步骤,旨在从数据中提取结构化的信息和知识,帮助企业和研究人员做出更明智的决策。
数据挖掘是机器学习(Machine Learning)、**统计学(Statistics)和数据库系统(Database Systems)**等学科的交汇点。它的核心目标是从大量数据中提取信息,并将其转化为可理解的结构,用于进一步分析或决策。数据挖掘在商业、金融、医疗、社交网络分析等领域都有广泛应用。
数据挖掘的优势与挑战
优势:
- 高效分析:能够从大规模数据集中发现隐藏的模式和趋势,帮助企业快速获取洞见。
- 实时性:允许实时分析复杂的数据,有助于关键任务系统的决策。
- 多领域应用:适用于各种行业,包括零售、银行、保险、制造业等。
挑战:
- 数据隐私和安全:需要处理大量的个人和敏感信息,因此隐私和安全问题需要特别关注。
- 数据质量:数据的完整性、准确性和一致性直接影响挖掘结果的可靠性。
- 复杂性:处理高维度和非结构化数据需要复杂的算法和计算资源。
知识发现过程(KDD Process):数据挖掘的五个关键步骤📊
知识发现过程(Knowledge Discovery in Databases, KDD) 是一个系统的框架,用于从原始数据中提取知识。KDD过程包括以下五个步骤:
- 选择(Selection):从原始数据集中选择合适的数据子集。
- 预处理(Preprocessing):清理和准备数据,确保数据的准确性和一致性。
- 转换(Transformation):将数据转换为适合数据挖掘的格式,如规范化、离散化等。
- 数据挖掘(Data Mining):使用不同的技术挖掘数据中的模式和关系。
- 解释与评估(Interpretation & Evaluation):对挖掘出的结果进行分析和解释,以便做出有用的决策。
1989年,Gregory Piatetsky-Shapiro提出的KDD过程已经成为现代数据挖掘的基础架构。
KDD过程的详细解读
-
选择(Selection):
- 目标:确定分析目标,选择相关的数据集。
- 方法:使用查询、采样等技术提取数据。
-
预处理(Preprocessing):
- 目标:处理缺失值、噪声和异常值,确保数据质量。
- 方法:数据清理、数据补全、异常检测。
-
转换(Transformation):
- 目标:将数据转换为适合挖掘的形式。
- 方法:规范化、标准化、特征提取、降维(如PCA)。
公式示例(数据归一化):
x norm = x − x min x max − x min x_{\text{norm}} = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} xnorm=xmax−xminx−xmin
-
数据挖掘(Data Mining):
- 目标:应用算法发现数据中的模式和关系。
- 方法:分类、聚类、关联规则、回归分析等。
-
解释与评估(Interpretation & Evaluation):
- 目标:评估模型的有效性,解释结果。
- 方法:可视化、统计指标(如准确率、召回率)、业务理解。
💼 实际案例:
金融预测:通过分析股票市场的历史交易数据,结合KDD过程,可以构建预测模型来预测未来市场的走势。这个过程包括数据清理(处理缺失值、异常值)、数据转换(归一化、特征提取)、应用回归分析或时间序列模型,最终形成可以帮助投资者做出决策的模型。
数据预处理:确保数据质量的重要步骤🚿
在数据挖掘过程中,数据预处理是至关重要的环节,因为现实世界中的数据通常是“不完美的”,即包含错误、缺失值或不一致的记录。数据预处理的目标是清理和转换数据,使其适合进一步分析。
数据清理(Data Cleaning)🧽
数据清理是处理数据中的噪声、缺失值和不一致数据的过程。
-
缺失数据(Missing Data):
- 处理方法:
- 删除记录:如果缺失值占比很小,可以删除包含缺失值的记录。
- 数据填充:使用均值、中位数、众数或预测模型来填充缺失值。
示例代码(使用均值填充缺失值,Python/Pandas):
import pandas as pddf = pd.read_csv('data.csv') df.fillna(df.mean(), inplace=True)
- 处理方法:
-
噪声数据(Noisy Data):
- 处理方法:
- 分箱(Binning):将数据划分为多个区间,用区间的均值或中位数替代原始值。
- 回归(Regression):使用回归模型预测和替换异常值。
- 平滑(Smoothing):使用移动平均等方法平滑数据。
- 处理方法:
-
不一致数据(Inconsistent Data):
- 处理方法:
- 数据校验规则:定义规则检测不一致,如年龄与出生日期不符。
- 数据转换:统一数据格式和单位。
- 处理方法:
数据集成(Data Integration)🔗
数据集成是将来自不同来源的数据进行合并,形成一个一致的数据库。
-
数据合并(Data Consolidation):
- 方法:将多个数据源的数据物理地合并到一个存储中。
- 挑战:处理不同数据源的冲突和冗余。
-
数据传播(Data Propagation):
- 方法:通过ETL(Extract, Transform, Load)流程,将数据从一个源复制到另一个源。
- 注意:需要确保数据的一致性和完整性。
-
数据虚拟化(Data Virtualization):
- 方法:创建一个虚拟的统一视图,实时访问不同的数据源。
- 优势:无需实际移动数据,降低了存储成本。
数据转换(Data Transformation)🔄
将数据转换为适合挖掘的形式是非常重要的步骤。
-
数据规范化(Normalization):
-
目的:消除不同属性之间数值范围的差异。
-
方法:
-
最小-最大规范化:
x norm = x − x min x max − x min x_{\text{norm}} = \frac{x - x_{\text{min}}}{x_{\text{max}} - x_{\text{min}}} xnorm=xmax−xminx−xmin
-
Z-Score规范化:
z = x − μ σ z = \frac{x - \mu}{\sigma} z=σx−μ
-
-
-
数据离散化(Discretization):
- 目的:将连续数据转换为离散数据,适用于某些算法。
- 方法:等频分箱、等宽分箱、聚类等。
数据预处理的目标是确保数据的完整性、准确性和一致性,提高后续数据挖掘的效率和效果。
数据挖掘的经典方法📚
分类(Classification)
分类是数据挖掘中最常见的任务之一,它将数据分配到预定义的类别中。常用的分类算法有决策树(Decision Tree)、支持向量机(SVM)、**朴素贝叶斯(Naive Bayes)**等。
-
决策树(Decision Tree):
-
原理:通过树形结构的模型,将数据根据特征值进行划分。
-
算法:常用的构建算法有ID3、C4.5、CART等。
-
示例:
-
信息增益公式(以ID3算法为例):
G a i n ( S , A ) = E n t r o p y ( S ) − ∑ v ∈ V a l u e s ( A ) ∣ S v ∣ ∣ S ∣ E n t r o p y ( S v ) Gain(S, A) = Entropy(S) - \sum_{v \in Values(A)} \frac{|S_v|}{|S|} Entropy(S_v) Gain(S,A)=Entropy(S)−v∈Values(A)∑∣S∣∣Sv∣Entropy(Sv)
-
代码示例(使用Python的scikit-learn库):
from sklearn.tree import DecisionTreeClassifierX = [[0, 0], [1, 1]] y = [0, 1] clf = DecisionTreeClassifier() clf = clf.fit(X, y)
-
聚类(Clustering)
聚类是一种不需要预定义类别的分析方法,根据数据之间的相似性将数据分组。
-
K均值算法(K-Means Algorithm):
-
原理:将数据划分为K个簇,使得簇内数据的相似性最大化,簇间差异最小化。
-
算法步骤:
- 初始化K个簇中心。
- 分配数据点到最近的簇中心。
- 更新簇中心为簇内数据点的均值。
- 重复步骤2和3,直到收敛。
-
公式:
更新簇中心:
μ k = 1 N k ∑ i = 1 N k x i \mu_k = \frac{1}{N_k} \sum_{i=1}^{N_k} x_i μk=Nk1i=1∑Nkxi
-
代码示例(Python/scikit-learn):
from sklearn.cluster import KMeansX = [[1, 2], [1, 4], [1, 0],[4, 2], [4, 4], [4, 0]] kmeans = KMeans(n_clusters=2, random_state=0).fit(X)
-
回归(Regression)
回归分析用于发现变量之间的函数关系,常用于预测数值型变量的趋势。
-
线性回归(Linear Regression):
-
原理:假设因变量 y y y与自变量 x x x之间存在线性关系。
y = β 0 + β 1 x + ϵ y = \beta_0 + \beta_1 x + \epsilon y=β0+β1x+ϵ
-
目标:找到最佳拟合线,使得误差平方和最小。
最小化目标函数:
min β 0 , β 1 ∑ i = 1 n ( y i − β 0 − β 1 x i ) 2 \min_{\beta_0, \beta_1} \sum_{i=1}^n (y_i - \beta_0 - \beta_1 x_i)^2 β0,β1mini=1∑n(yi−β0−β1xi)2
-
代码示例(Python/scikit-learn):
from sklearn.linear_model import LinearRegressionX = [[1], [2], [3], [4]] y = [2, 3, 5, 7] reg = LinearRegression().fit(X, y)
-
关联规则挖掘(Association Rule Mining)
关联规则挖掘常用于分析数据集中项之间的关联性。
-
Apriori算法:
-
目的:发现频繁项集和关联规则。
-
支持度(Support):
Support ( A → B ) = P ( A ∪ B ) \text{Support}(A \rightarrow B) = P(A \cup B) Support(A→B)=P(A∪B)
-
置信度(Confidence):
Confidence ( A → B ) = P ( A ∪ B ) P ( A ) \text{Confidence}(A \rightarrow B) = \frac{P(A \cup B)}{P(A)} Confidence(A→B)=P(A)P(A∪B)
-
提升度(Lift):
Lift ( A → B ) = Confidence ( A → B ) P ( B ) \text{Lift}(A \rightarrow B) = \frac{\text{Confidence}(A \rightarrow B)}{P(B)} Lift(A→B)=P(B)Confidence(A→B)
-
代码示例(Python/mlxtend库):
from mlxtend.frequent_patterns import apriori, association_rules# 假设df是一个包含交易记录的DataFrame frequent_itemsets = apriori(df, min_support=0.1, use_colnames=True) rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)
-
深度神经网络与数据挖掘💡
深度神经网络(Deep Neural Networks, DNN) 是现代数据挖掘中的重要技术,尤其是在处理大规模、复杂数据时表现出色。深度神经网络通过多层结构可以学习数据中的复杂模式,广泛应用于图像识别、自然语言处理、金融预测等领域。
深度学习的优势
- 非线性映射能力:通过激活函数,引入非线性,使模型能够拟合复杂的函数关系。
- 自动特征提取:无需手工提取特征,模型可以自动学习数据的高级特征。
- 高精度:在大数据集上,深度学习模型通常比传统模型表现更佳。
深度神经网络的结构
- 输入层(Input Layer):接收原始数据。
- 隐藏层(Hidden Layers):包含多个神经元层,进行特征提取和转换。
- 输出层(Output Layer):生成最终的预测结果。
数学原理
-
神经元计算:
a ( l ) = f ( W ( l ) a ( l − 1 ) + b ( l ) ) a^{(l)} = f\left( W^{(l)} a^{(l-1)} + b^{(l)} \right) a(l)=f(W(l)a(l−1)+b(l))
- a ( l ) a^{(l)} a(l):第 l l l层的激活值。
- W ( l ) W^{(l)} W(l):第 l l l层的权重矩阵。
- b ( l ) b^{(l)} b(l):第 l l l层的偏置向量。
- f f f:激活函数,如ReLU、Sigmoid、Tanh等。
-
损失函数(Loss Function):
- 用于衡量模型预测值与真实值之间的差异。
- 常用的有均方误差(MSE)、交叉熵(Cross-Entropy)等。
-
优化算法:
- 梯度下降(Gradient Descent):通过计算损失函数的梯度,更新模型参数。
- 学习率(Learning Rate):控制参数更新的步长。
应用案例
-
金融预测:
-
任务:预测股票价格走势。
-
方法:使用LSTM(长短期记忆网络)处理时间序列数据。
-
代码示例(Python/Keras):
from keras.models import Sequential from keras.layers import LSTM, Densemodel = Sequential() model.add(LSTM(50, return_sequences=True, input_shape=(timesteps, features))) model.add(LSTM(50)) model.add(Dense(1)) model.compile(optimizer='adam', loss='mse') model.fit(X_train, y_train, epochs=100, batch_size=64)
-
-
欺诈检测:
- 任务:识别信用卡交易中的欺诈行为。
- 方法:使用自动编码器(Autoencoder)检测异常模式。
案例研究:在美国选择新的披萨店位置🍕
假设您是某披萨连锁店的数据科学家,任务是通过数据挖掘方法选择最佳的新店开设位置,并预测未来一年的销售额。数据挖掘方法可以帮助您完成以下任务:
-
选择最佳开店位置:
-
方法:使用聚类分析(Clustering)和分类模型(Classification Models)。
-
步骤:
- 数据收集:收集美国各州的人口密度、收入水平、消费习惯等数据。
- 数据预处理:清理数据,处理缺失值和异常值。
- 聚类分析:使用K-Means算法将各地区分组,识别高潜力区域。
- 分类模型:使用决策树或随机森林模型预测每个区域的销售潜力。
-
代码示例:
# 聚类分析 from sklearn.cluster import KMeanskmeans = KMeans(n_clusters=5) kmeans.fit(location_data) labels = kmeans.labels_# 可视化结果 import matplotlib.pyplot as pltplt.scatter(location_data['longitude'], location_data['latitude'], c=labels) plt.show()
-
-
产品组合优化:
-
方法:使用关联规则挖掘(Association Rule Mining)。
-
步骤:
- 数据收集:获取现有门店的销售数据和购物篮数据。
- 数据预处理:将数据转换为适合Apriori算法的格式。
- 挖掘关联规则:识别经常一起购买的产品组合。
-
代码示例:
from mlxtend.frequent_patterns import apriori, association_rulesfrequent_itemsets = apriori(transaction_data, min_support=0.05, use_colnames=True) rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1.2)
-
-
销售预测:
-
方法:使用回归分析(Regression Analysis)和时间序列模型(Time Series Models)。
-
步骤:
- 数据收集:收集历史销售数据、季节性因素、促销活动等信息。
- 模型构建:使用ARIMA、Prophet等模型预测未来销售额。
- 模型评估:使用均方误差(MSE)、平均绝对误差(MAE)等指标评估模型性能。
-
代码示例:
from statsmodels.tsa.arima_model import ARIMAmodel = ARIMA(sales_data, order=(1, 1, 1)) model_fit = model.fit(disp=0) forecast = model_fit.forecast(steps=12)
-
-
优化销售策略:
-
方法:使用深度神经网络(DNN)。
-
步骤:
- 数据收集:整合销售数据、客户反馈、市场营销活动等多源数据。
- 模型构建:建立一个多层神经网络,输入多维特征,输出销售预测或客户分类。
- 模型训练:使用大量数据训练模型,提高预测精度。
- 策略优化:根据模型结果,调整产品定价、促销活动、库存管理等策略。
-
代码示例(Python/Keras):
from keras.models import Sequential from keras.layers import Densemodel = Sequential() model.add(Dense(64, input_dim=feature_dim, activation='relu')) model.add(Dense(32, activation='relu')) model.add(Dense(1, activation='linear')) model.compile(optimizer='adam', loss='mse') model.fit(X_train, y_train, epochs=50, batch_size=32)
-
总结📌
数据挖掘是一个强大且灵活的工具,能够帮助我们从海量数据中提取有价值的信息。通过分类、聚类、回归和关联规则挖掘等方法,数据挖掘在商业、医疗、金融等多个领域都有着广泛的应用。深度神经网络的引入使我们能够处理更为复杂的模式,并在未来的智能决策中发挥更大的作用。
无论您是企业家、科学家还是研究人员,数据挖掘都能为您提供强大的洞察力。掌握数据挖掘技术,将为您的事业和研究带来不可估量的价值。
参考文献:
- Han, J., Kamber, M., & Pei, J. (2011). Data Mining: Concepts and Techniques. Morgan Kaufmann.
- Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.
- Géron, A. (2019). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow. O’Reilly Media.
相关文章:

【ShuQiHere】 探索数据挖掘的世界:从概念到应用
🌐 【ShuQiHere】 数据挖掘(Data Mining, DM) 是一种从大型数据集中提取有用信息的技术,无论是在商业分析、金融预测,还是医学研究中,数据挖掘都扮演着至关重要的角色。本文将带您深入了解数据挖掘的核心概…...

LabVIEW提高开发效率技巧----使用事件结构优化用户界面响应
事件结构(Event Structure) 是 LabVIEW 中用于处理用户界面事件的强大工具。通过事件驱动的编程方式,程序可以在用户操作时动态执行特定代码,而不是通过轮询(Polling)的方式不断检查界面控件状态。这种方式…...

【前端】ES6:Set与Map
文章目录 1 Set结构1.1 初识Set1.2 实例的属性和方法1.3 遍历1.4 复杂数据结构去重 2 Map结构2.1 初识Map2.2 实例的属性和方法2.3 遍历 1 Set结构 它类似于数组,但成员的值都是唯一的,没有重复的值。 1.1 初识Set let s1 new Set([1, 2, 3, 2, 3]) …...

Java 之网络编程小案例
1. 多发多收 描述: 编写一个简单的聊天程序,客户端可以向服务器发送多条消息,服务器可以接收所有消息并回复。 代码示例: 服务器端 (Server.java): import java.io.*; import java.net.*; import java.util.concurrent.Execut…...

Spring Boot:现代化Java应用开发的艺术
目录 什么是Spring Boot? 为什么选择Spring Boot? Spring Boot的核心概念 详细步骤:创建一个Spring Boot应用 步骤1:使用Spring Initializr创建项目 步骤2:解压并导入项目 步骤3:构建和配置项目 po…...

Redis五种基本数据结构的使用
Redis具有五种基本数据类型:String(字符串)、Hash(哈希)、List(列表)、Set(集合)、SortedSet(有序集合),下面示意它们的使用。 String类数据类型的使用 增:添加数据(set)、添加多个数据(mset)、添加数据时指定过期时间(setex) 删…...

【QT】系统-下
欢迎来到Cefler的博客😁 🕌博客主页:折纸花满衣 🏠个人专栏:QT 目录 👉🏻QTheadrun() 👉🏻QMutex👉🏻QWaitCondition👉🏻Q…...

java和kotlin 可以同时运行吗
Java 和 Kotlin 可以同时运行在同一个项目中,这主要得益于 Kotlin 对 Java 的互操作性。Kotlin 被设计为与 Java 100% 兼容,这意味着 Kotlin 代码可以很容易地调用 Java 代码,反之亦然。这种设计使得 Kotlin 能够无缝集成到现有的 Java 项目中…...

2024最新版 Tuxera NTFS for Mac 2023绿色版图文安装教程
在数字化时代,数据的存储和传输变得至关重要。Mac用户经常需要在Windows NTFS格式的移动硬盘上进行读写操作,然而,由于MacOS系统默认不支持NTFS的写操作,这就需要我们寻找一款高效的读写软件。Tuxera NTFS for Mac 2023便是其中…...

npm发布插件超级简单版
在开源的世界里,每个人都有机会成为贡献者,甚至是创新的引领者。您是否有过这样的想法:开发一个解决特定问题的小工具,让他成为其他开发者手中的利器?今天,我们就来一场实战训练,学习如何将你的…...

C# 访问Access存取图片
图片存入ole字段,看有的代码是获取图片的字节数组转换为base64字符串,存入数据库;显示图片是把base64字符串转换为字节数组再显示;直接存字节数组可能还好一点; 插入的时候用带参数的sql写法比较好;用拼接…...

正则表达式中常见字符的用法介绍
正则表达式(Regular Expression,简称Regex)是一种文本模式描述的方法,包括普通字符(如a到z之间的字母)和特殊字符(称为“元字符”)。正则表达式使用单个字符串来描述、匹配一系列符合…...

Vue3.0组合式API:依赖注入provide和inject实现跨层组件的通信
Vue3.0组合式API系列文章: 《Vue3.0组合式API:setup()函数》 《Vue3.0组合式API:使用reactive()、ref()创建响应式代理对象》 《Vue3.0组合式API:computed计算属性、watch监听器、watchEffect高级监听器》 《Vue3.0组合式API&…...

VSCode中配置C/C++环境
在Visual Studio Code(VSCode)中配置C/C环境是一个相对直接且功能强大的过程,它能让开发者利用VSCode的诸多便利功能来编写、编译和调试C/C代码。以下是一个详细的步骤指南,涵盖了从安装必要的软件到配置编译器、调试器以及VSCode…...

vue实现鼠标滚轮控制页面横向滑动
先看效果 20240919_095531 1.首先创建一个xScroll.vue组件 <template><div class"main" v-size-ob"mainSize"><div class"v-scroll"><div class"content"><slot></slot></div></div>…...

【Git使用】删除Github仓库中的指定文件/文件夹
前言: 上篇文章带大家上传了第一个项目至github,那要是想删除仓库中的指定文件夹怎么办?在Github中 仓库是无法通过鼠标操作直接删除文件和文件夹的,那只能通过 git 命令来执行删除操作。接下来就带大家进行操作。 详细步骤: 一…...

Iptables命令常用命令
前言:下是一些非常实用的 iptables 命令合集,涵盖网络攻击防护和日常网络安全防护 1. 查看当前规则 iptables -L -v -n查看现有的所有规则,-v 显示详细信息,-n 禁止解析IP地址和端口以加快显示速度。 2. 清空所有规则 iptables -F清除所有已…...

前端开发之原型模式
介绍 原型模式本质就是借用一个已有的实例做原型,在这原型基础上快速复制出一个和原型一样的一个对象。 class CloneDemo {name clone democlone(): CloneDemo {return new CloneDemo()} } 原型原型链 函数(class)都有显示原型 prototyp…...

分布式缓存服务Redis版解析与配置方式
一、Redis分布式缓存服务概述 Redis是一款高性能的键值对(Key-Value)存储系统,通常用作分布式缓存服务。它基于内存运行,支持丰富的数据类型,并具备高并发、低延迟的特点,非常适合用于缓存需要频繁访问的数…...

WordPress建站钩子函数及使用
目录 前言: 使用场景: 一、常用的wordpress钩子(动作钩子、过滤器钩子) 1、动作钩子(Action Hooks) 2、过滤器钩子(Filter Hooks) 二、常用钩子示例 1、添加自定义 CSS 和 JS…...

Qt 模型视图(二):模型类QAbstractItemModel
文章目录 Qt 模型视图(二):模型类QAbstractItemModel1.基本概念1.1.模型的基本结构1.2.模型索引1.3.行号和列号1.4.父项1.5.项的角色1.6.总结 Qt 模型视图(二):模型类QAbstractItemModel 模型/视图结构是一种将数据存储和界面展示分离的编程方法。模…...

算法打卡 Day41(动态规划)-理论基础 + 斐波那契数 + 爬楼梯 + 使用最小花费爬楼梯
文章目录 理论基础Leetcode 509-斐波那契数题目描述解题思路 Leetcode 70-爬楼梯题目描述解题思路 Leetcode 746-用最小花费爬楼梯题目描述解题思路 理论基础 动态规划,简称 DP,其中的每一个状态一定是由上一个状态推导出来的,而贪心算法没有…...

鸿蒙环境服务端签名直传文件到OSS
本文介绍如何在鸿蒙环境下将文件上传到OSS。 背景信息 鸿蒙环境是当下比较流行的操作环境,与服务端签名直传的原理类似,鸿蒙环境上传文件到OSS是利用OSS提供的PutObject接口来实现文件上传到OSS。关于PutObject的详细介绍,请参见PutObject。…...

计算机毕业设计Python+Flask微博情感分析 微博舆情预测 微博爬虫 微博大数据 舆情分析系统 大数据毕业设计 NLP文本分类 机器学习 深度学习 AI
首先安装需要的python库, 安装完之后利用navicat导入数据库文件bili100.sql到mysql中, 再在pycharm编译器中连接mysql数据库,并在设置文件中将密码修改成你的数据库密码。最后运行app.py,打开链接,即可运行。 B站爬虫数…...

solidwork剪裁实体
之前是这样: 效果如下:...

Junit与Spring Test简单使用
Junit与Spring Test简单使用 Junit5简介Junit5 注解Junit5与Spring结合 差异概览MockingMockBeanSpyBeanDemo 注意事项 又要写测试代码了,总结记录一下。 Junit5简介 与单一模块设计的Junit4不同,Junit5引入了模块化架构,由三个主要子项目组成: JUnit Pl…...

Vxe UI vue vxe-table 实现自适应列宽,根据内容自适应列的宽度
Vxe UI vue vxe-table 实现自适应列宽,根据内容自适应列的宽度 之前老版本是通过计算字符数量,然后给动态给每一列设置宽度,不仅麻烦,还不好复用。 看了 API 发现 v4.7 和 v3.9 版本已经直接就能支持了,只需加上 widt…...

document.visibilityState 监听浏览器最小化
1.document.hidden: 表示页面是否隐藏的布尔值。页面隐藏包括 页面在后台标签页中 或者 浏览器最小化 (注意,页面被其他软件遮盖并不算隐藏,比如打开的 sublime 遮住了浏览器)。 2.document.visibilityStateÿ…...

前端框架对比和选择
大家好,我是程序员小羊! 前言: 前端框架选择是前端开发中的关键决策,因为它影响项目的开发效率、维护成本和可扩展性。当前,最流行的前端框架主要包括 React、Vue 和 Angular。它们各有优劣,适用于不同…...

Linux 进程2
环境变量 再Linux操作系统中一切皆文件,这个环境变量自然也是一个文件,它的作用是辅助我们使用操作系统还可以辨识我们是什么用户(一般用户,root用户)。 env是读取完整环境变量的指令,里面记录了许多我登录操作系统所用的用户的信…...