美国加州房价数据分析02
5. 特征工程
5.1重构数据集
承接上文提到的相似度排名,去掉部分无关的特征。
train_set.corr()["median_house_value"].sort_values(ascending=False)
为了提高模型训练后的鲁棒性,即防止过拟合,不建议删除关联度最低几项特征,防止‘应试’答题
y_train = train_set.pop('median_house_value') #pop()方法不仅从train_set中移除了指定的列,还返回了该列的值被存储到了变量y_train中成为目标数据
train_X = train_set.drop(['households','population_per_household','population','longitude'],axis=1) # 移除相关度低的四列特征后构建特征数
对测试集做同样特征工程处理(划分为训练集和测试集后,为了训练的有效性,对训练集做了什么对测试集就要相应的做什么)
# 在测试集上根据已有的特征构建三个新特征"rooms_per_household","population_per_household","bedrooms_per_room",使之和训练集的参数维度一致
test_set["rooms_per_household"] = strat_test_set["total_rooms"]/strat_test_set["households"]
test_set["population_per_household"]=strat_test_set["population"]/strat_test_set["households"]
test_set["bedrooms_per_room"] = strat_test_set["total_bedrooms"]/strat_test_set["total_rooms"]
y_test = test_set.pop('median_house_value')
test_X = test_set.drop(['households','population_per_household','population','longitude'],axis=1)
查看训练集的信息
train_X.info() # 通过输出信息观察数据是否存在缺失值
可以观察到total_bedrooms存在缺失值,bedroom_per_room受此影响也存在缺失值
# 观察总行数和总列数
train_X
6.数据清洗
6.1处理缺失值
pandas中的DataFrame对象有一些方便的数据清洗方法,用Dataframe的dropna(),drop(),和fillna()方法,可以方便地实现缺失值处理
1.删除缺失值所在的行,总行数变少
train_X.dropna(subset=["total_bedrooms"])
2.删除缺失值所在的列,总列数少1
train_X.drop("total_bedrooms", axis=1)
直接删除的效果不是特别好,一般考虑用一些数代替
3. 用中值替代缺失值,可以看到total_bedrooms总数量为16512,无缺失值了
如果要进一步验证可以用 train_X["total_bedrooms"].is_null.count()查看,输出为0表示没有缺失值了
median = train_X["total_bedrooms"].median()
train_X["total_bedrooms"].fillna(median)
通常,训练集要和测试集做同样的处理,比如我们使用训练集的中值来替换缺失值,那么我们最好也要用这个训练集的中值替换测试集的缺失值,这样才能保证是做了同样的处理(这是因为通常训练集要远大于测试集,训练集的中值更接近样本中值)
训练集的中值比测试集的中值代表性更强,数据基数更大
test_X["total_bedrooms"].fillna(median)
total_bedrooms共有4128个数据,已无缺失值
pandas的填充方法对于较大数据的处理时,还是比较麻烦的。
例如:如果采取了中位数填充,需要把中位数记下来(如上文的median变量),以便填充到测试集,但是加入数据中每一列都有缺失值,那我们可能要记录很多中值(这是使用pandas的缺陷)。
而使用sklearn自带的函数,可以有效解决这个问题,sklearn里提供了处理缺失值的工具Imputer
6.2用sklearn的内置方法处理缺失值
# 适应sklearn的不同版本
try:from sklearn.preprocessing import Imputer as SimpleImputer
except ImportError:from sklearn.impute import SimpleImputer # Scikit-Learn 0.20+imputer = SimpleImputer(strategy="median")
try - except 语句:这是 Python 中的错误处理机制。它首先尝试执行 try 块中的代码。如果在执行过程中遇到 ImportError(即尝试导入的模块或其部分不存在),它将执行 except 块中的代码。
无论哪个导入成功,都会创建 SimpleImputer 的一个实例,使用中位数策略来填补缺失值。这意味着对于每个特征,缺失值将被该特征的中位数替代。
这里注意输入数据格式不能是serise
imputer.fit(train_X[["total_bedrooms"]])
train_X["total_bedrooms"] =imputer.transform(train_X[["total_bedrooms"]]) #将处理后的数据分配回train_X 的对应列。transform不会直接修改原
之前使用"total_bedrooms"构建了新特征'bedrooms_per_room',这里需要重新构建一次,从而去掉里面的缺失值。
train_X['bedrooms_per_room'] = train_X['total_bedrooms']/train_X['total_rooms']
train_X.info()
对测试集做同样处理
test_X[["total_bedrooms"]] = imputer.transform(test_X[["total_bedrooms"]])
前面已经用训练集的‘total_bedrooms’的中值进行拟合,所以这里会用训练集的中值来填充测试集
test_X['bedrooms_per_room'] = test_X['total_bedrooms']/test_X['total_rooms']
test_X.info()
这里要注意,我们数据中实际包含两类数据,一类是数值型的,一类是类别型(字符型)的,这两类数据通常要分开处理,比如类别型数据不能进行标准化和数据统计(均值,方差,最值等)
7.不同类型的数据处理
7.1数值型数据处理
train_num = train_X.drop('ocean_proximity', axis=1) # 删除类别型数据列
train_num #只剩7列数值型数据
?具体作用是什么,这个填充器
Imputer的主要功能包括:
1.拟合(Fit):imputer.fit(train_num)这行代码的作用是在训练集train_num上拟合Imputer对象。在拟合过程中,Imputer会计算用于填充缺失值的统计信息,如均值、中位数或众数等,这些信息取决于Imputer的配置。
2.转换(Transform):拟合完成后,可以使用Imputer对象的transform方法来填充数据集中的缺失值。Imputer会根据拟合过程中学到的统计信息来替换缺失值。
3.统计信息:imputer.statistics_属性存储了拟合过程中计算的统计信息。对于默认的Imputer,这个属性包含了每列的均值。如果Imputer被配置为使用中位数,则statistics_属性将包含每列的中位数值。
4.参数配置:Imputer允许用户指定不同的策略来填充缺失值,常见的参数包括:
missing_values:指定缺失值的表示方式,可以是整数、浮点数或字符串。
5.strategy:指定填充策略,可以是mean(均值)、median(中位数)、most_frequent(众数)或constant(常数)。
6.应用:Imputer可以应用于单个数组或数据帧,也可以作为Pipeline的一部分,与其他预处理步骤一起使用。
imputer.fit(train_num) # 表示在训练集 train_num 上进行填充器(imputer)的拟合操作,拟合的过程是分析数据以学习填充所需的统计信息
imputer.statistics_ # 填充器imputer学习并记录了训练集中每列的中位数值,这些中位数值存储在 imputer.statistics_ 属性中。
train_num是pandas的DataFrame对象,用pandas的median()方法验证一下
train_num.median().values # 与用imputer得到中值一致
得到的结果一样
转换训练集
X_train = imputer.transform(train_num) #利用训练过的转换器对数据进行转换
对测试集做同样处理
test_num = test_X.drop('ocean_proximity', axis=1) # 删除类别型数据列
X_test = imputer.transform(test_num)
numpy数组不太方便观察数据,转换成DataFrame来观察
X_train_tr = pd.DataFrame(X_train, columns=train_num.columns) #如需要,可以把Numpy数组转换回DataFrame
X_train_tr.head()
标准化
特征缩放是重要的数据转换。数据量纲不同,会影响机器学习算法的性能。比如,总房间数分布范围是 6 到 39320,而收入中位数只分布在 0 到 15。
通常情况下,我们不需要对目标值进行缩放。
有两种常见的方法可以让所有的属性有相同的量度:
归一化(Min-Max scaling,离差)和标准化(standardization,标准差)。
1.归一化:from sklearn.preprocessing import MinMaxScaler。(很简单:值被转变、重新缩放,直到范围变成 0 到 1。我们通过减去最小值,然后再除以最大值与最小值的差值,来进行归一化。Sklearn 提供了一个转换器MinMaxScaler来实现这个功能。它有一个超参数feature_range, 可以让你改变范围,如果不希望范围是 0 到 1。
2.标准化:from sklearn.preprocessing import StandardScaler。首先减去平均值(所以标准化值的平均值总是 0)。但是,标准化受到异常值的影响很小。例如,假设一个街区的收入中位数由于某种错误变成了100,归一化会将其它范围是 0 到 15 的值变为 0-0.15,但是标准化不会受什么影响。Sklearn 提供了一个转换器StandardScaler来进行标准化。
归一化对异常值敏感,标准化对异常值不敏感,但是会改变原数据的分布情况。
from sklearn.preprocessing import StandardScaler # 均值为0和标准差为1的分布std_scaler = StandardScaler().fit(X_train)
X_train_std = std_scaler.fit_transform(X_train)
pd.DataFrame(X_train_std, columns=train_num.columns).head()
对测试集做同样处理
X_test_std = std_scaler.fit_transform(X_test)
7.2补充说明 Sklearn的API的设计特性
创建适用于sklearn转换器和估计器的规则
7.2.1一致性
1.转换器(transformer)。转换是通过transform()方法,被转换的数据集作为参数。返回的是经过转换的数据集。转换过程依赖学习到的参数,比如imputer的例子。所有的转换都有一个便捷的方法fit_transform(),等同于调用fit()再transform()(但有时fit_transform()经过优化,运行的更快)。
2.估计器(estimator)。任何可以基于数据集对一些参数进行估计的对象都被称为估计器(比如,imputer就是个估计器)。估计本身是通过fit()方法,只需要一个数据集作为参数(对于监督学习算法,需要两个数据集;第二个数据集包含标签)。任何其它用来指导估计过程的参数都被当做超参数(比如imputer的strategy),并且超参数要被设置成实例变量(通常通过构造器参数设置)。
3.预测器(predictor)。最后,一些估计器可以根据给出的数据集做预测,这些估计器称为预测器。预测器有一个predict()方法,可以用新实例的数据集做出相应的预测。预测器还有一个score()方法,可以根据测试集(如果是监督学习算法的话还需要标签)对预测进行衡量。
7.2.2可检验
所有估计器的超参数都可以通过实例的公有变量直接访问(比如,imputer.strategy),并且所有估计器学习到的参数也可以通过在实例变量名后加下划线来访问(比如,imputer.statistics_)。
类数据集被表示成 NumPy 数组或 SciPy 稀疏矩阵,而不是自制的类。超参数只是普通的 Python 字符串或数字。
7.2.3可组合
例如后面提到的流水线
7.2.4合理的默认值
Sklearn 给大多超参数提供了合理的默认值,大大降低了建模的难度。
7.3类别型数据处理
大多数机器学习算法都喜欢和数字打交道,一些非数值型数据需要转换成数值型。比如我们数据中的"ocean_proximity"特征
7.3.1LabelEncoder
转换器:LabelEncoder主要用于编码目标变量(通常为单列),即将标签转换为从0到n_classes-1的整数值。
train_X["ocean_proximity"].head()
train_cat = train_X[["ocean_proximity"]]
test_cat = test_X[["ocean_proximity"]]
7.3.2OrdinalEncoder
使用OrdinalEncoder用于将具有顺序关系的类别特征转换为整数值。它主要用于编码输入特征,而不是目标变量。
from sklearn.preprocessing import OrdinalEncoderordinal_encoder = OrdinalEncoder()
train_cat_encoded = ordinal_encoder.fit_transform(train_cat)
train_cat_encoded[:10]
ordinal_encoder.categories_
"ocean_proximity"特征的所有类别
7.3.3OneHotEncoder
LabelEncoder/OrdinalEncoder方法主要处理表示顺序类别的数据,对于普通类别(不是区间分段的)不合适,有些机器学习算法会认为两个临近的值比两个疏远的值要更相似。显然这样不对。
编码器OneHotEncoder:进行one-hot编码,这里是对整数类别进行编码
from sklearn.preprocessing import OneHotEncodercat_encoder = OneHotEncoder().fit(train_cat)
train_cat_1hot = cat_encoder.transform(train_cat)
train_cat_1hot
OneHotEncoder的返回值默认使用稀疏数组形式,需要使用toarray()来转换成ndarray
train_cat_1hot.toarray()
去掉稀疏存储,减少内存占用?
cat_encoder = OneHotEncoder(sparse=False).fit(train_cat)
train_cat_1hot = cat_encoder.transform(train_cat)
train_cat_1hot
对测试集做同样处理
test_cat_1hot = cat_encoder.transform(test_cat)
7.4合并数据
训练集
X_train_prepared = np.c_[X_train_std,train_cat_1hot]
X_train_prepared
测试集
X_test_prepared = np.c_[X_test_std,test_cat_1hot]
X_test_prepared
最终用于训练和测试的数据
至此,终于完成了数据处理的流程!
8.选择并训练模型
经过了一系列的探索,准备数据,现在可以训练你的机器学习模型了
回到任务本身,预测美国加州房价,那么这是个回归任务
训练一个决策树回归模型:估计器的使用
from sklearn.tree import DecisionTreeRegressortree_reg = DecisionTreeRegressor() # 构建模型
tree_reg.fit(X_train_prepared, y_train) # 训练模型
使用模型预测结果:预测器的使用
from sklearn.metrics import mean_squared_errory_train_predictions = tree_reg.predict(X_train_prepared) # 预测模型
tree_mse = mean_squared_error(y_train, y_train_predictions) # 计算均方误差
tree_rmse = np.sqrt(tree_mse) # 开平方,计算均方根误差
tree_rmse
均方误差为0,原因是用模型训练的数据来检验,带着答案做题显然没有意义,要用前面准备好的测试集来检验模型
y_test_predictions = tree_reg.predict(X_test_prepared) # 用训练好的模型测速测试集
tree_mse = mean_squared_error(y_test, y_test_predictions) #计算测试集的均方误差
tree_rmse = np.sqrt(tree_mse) # 计算测试集的均方根误差
tree_rmse
还可以用到其它的回归模型进行预测和比对,选择精度最高的模型来作为预测器
非运行代码
from sklearn.linear_model import LinearRegression, SGDRegressor
model = LinearRegression()
model = SGDRegressor()from sklearn.svm import SVR
model = SVR()# sklearn.ensemble集成学习
from sklearn.ensemble import RandomForestRegressor, GradientBoostingRegressor, AdaBoostRegressor, ExtraTreesRegressor
model = RandomForestRegressor()
model = GradientBoostingRegressor()
model = AdaBoostRegressor()
model = ExtraTreesRegressor()
相关文章:
美国加州房价数据分析02
5. 特征工程 5.1重构数据集 承接上文提到的相似度排名,去掉部分无关的特征。 train_set.corr()["median_house_value"].sort_values(ascendingFalse)为了提高模型训练后的鲁棒性,即防止过拟合,不建议删除关联度最低几项特征&#…...
[安徽省赛 2021]misc签到
给了一个图片,改成jpg格式,查看属性 发现备注 this_is_password 这可能是密码什么东西的 把图片拉到kali里面用用工具binwalk工具分离 发现了flag.txt文件 把压缩包拉到windows系统中 解压,输入密码 得到flag NSSCTF{ab32056rfanla12380a…...
LeetCode:1705. 吃苹果的最大数目(优先级队列 + 贪心 Java)
目录 1705. 吃苹果的最大数目 题目描述: 实现代码与解析: 优先级队列 贪心 原理思路: 1705. 吃苹果的最大数目 题目描述: 有一棵特殊的苹果树,一连 n 天,每天都可以长出若干个苹果。在第 i 天&#x…...
MX3200显微尺寸测量仪
产品简介 MX3200显微尺寸测量仪将显微成像与传统影像测量相结合,实现了微小特征的大范围测量。配置电动塔台,可自动切换到不同的倍率,探测各种精密微观二维尺寸特征。尺寸测量功能丰富,可进行各种二维尺寸点、线、圆等的测量和形…...
VR 动感单车身心调适系统的功能与作用
如今,人们面临着来自各方的压力,国家重视国民身心健康,但人们在实际生活中却缺乏有效的身心调节方式。无论是久坐的白领,还是学业繁重的学生,都存在身体亚健康和心理压力大的问题。传统健身方式枯燥、心理咨询成本高且…...
LabVIEW伸缩臂参数监控系统
LabVIEW开发伸缩臂越野叉车参数监控系统主要应用于工程机械中的越野叉车,以提高车辆的作业效率和故障诊断能力。系统通过PEAK CAN硬件接口和LabVIEW软件平台实现对叉车作业参数的实时监控和故障分析,具有良好的实用性和推广价值。 系统组成 系统主要由P…...
Spring提供了很好事务管理机制
事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制 分类 主要分为编程式事务和声明式事务两种。 编程式事务 是指在代码中手动的管理事务的提交、回滚等操作,代码侵入性比较强,如下示例: try {//TODO so…...
Selenium 和 Playwright两大框架的不同之处
自动化测试工具百花齐放,其中 Selenium 和 Playwright 是两大热门框架,谁才是你的最佳选择?面对企业项目的真实需求,它们的差异究竟在哪儿? Selenium 和 Playwright 是两种流行的自动化测试工具,它们都被用…...
【计算机视觉】轮廓检测
一、轮廓检测 在计算机视觉中,轮廓检测是另一个比较重要的任务,不单是用来检测图像或者视频帧中物体的轮廓,而且还有其他操作与轮廓检测相关。 以下代码展示了如何使用 OpenCV 进行 图像阈值处理、寻找图像轮廓 和 绘制轮廓 的完整流程&…...
【Linux】深入Linux:GCC/G++编译器实用指南
Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令指令进阶权限管理yum包管理与vim编辑器 在Linux系统中,理解和掌握GCC/G编译器是开发者不可或缺的技能之一。本文将深入探讨它们的工作原理和实际运用,帮助读者更好地利用这些强…...
【未来编程:AI如何通过合成复用原则优化设计】
🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法 💫个人格言:“没有罗马,那就自己创造罗马~” 文章目录 前言合成复用原则含义 继承复用含义UML图实现代码运行结果及分析优缺点 合成复用(我有这…...
【Rust自学】5.3. struct的方法(Method)
喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 5.3.1. 什么是方法(Method) 方法和函数类似,也是用fn关键字进行声明,方法也有名称,也有参数ÿ…...
单片机 STM32入门
一、什么是单片机 单片机(Microcontroller Unit,MCU)是一种集成电路芯片,它将计算机的CPU、存储器(包括RAM和ROM)、输入/输出接口等集成在一个芯片上。单片机通常用于嵌入式系统,能够执行特定的…...
OneCode:开启高效编程新时代——企业定制出码手册
一、概述 OneCode 的 DSM(领域特定建模)出码模块是一个强大的工具,它支持多种建模方式,并具有强大的模型转换与集成能力,能够提升开发效率和代码质量,同时方便团队协作与知识传承,还具备方便的仿…...
学python还是学java?哪个相对来说比较容易上手?
在比较Python和Java哪个更容易上手时,可以从多个维度进行分析,包括语法简洁性、学习资源、应用领域、学习曲线等。 一、语法简洁性 Python:Python的语法简洁明了,更接近自然语言,易于理解和记忆。它使用缩进来表示代…...
C语言项目 天天酷跑(上篇)
前言 这里讲述这个天天酷跑是怎么实现的,我会在天天酷跑的下篇添加源代码,这里会讲述天天酷跑这个项目是如何实现的每一个思路,都是作者自己学习于别人的代码而创作的项目和思路,这个代码和网上有些许不一样,因为掺杂了…...
Windows 11 安装 Dify 完整指南 非docker环境
# Windows 11 安装 Dify 完整指南## 前置要求- Python 3.11 - Node.js 18 - PostgreSQL 14 - Redis for Windows - Git - Ollama (可选,用于本地模型)## 详细安装步骤### 1. 安装必要软件1. **Python 3.11**- 从 https://www.python.org/downloads/release/python-…...
MySQL变量
文章目录 MySQL变量系统变量查看系统变量设置系统变量 自定义变量用户变量局部变量 MySQL变量 MySQL变量分为系统变量和自定义变量 系统变量 系统变量有全局变量和会话变量 查看系统变量 #查看全局系统变量 show global variables; #根据条件查询全局系统变量 show global …...
Ubuntu离线安装Docker容器
前言 使用安装的工具snap安装在沙箱中,并且该沙箱之外的权限有限。docker无法从其隔离的沙箱环境访问外部文件系统。 目录 前言准备环境卸载已安装的Docker环境快照安装的Dockerapt删除Docker 安装docker-compose下载执行文件将文件移到 /usr/local/bin赋予执行权限…...
ensp 关于acl的运用和讲解
ACL(Access Control List,访问控制列表)是一种常用于网络设备(如路由器、交换机)上的安全机制,用于控制数据包的流动与访问权限。ACL 可以指定哪些数据包允许进入或离开某个网络接口,基于不同的…...
Linux(Centos 7.6)yum源配置
yum是rpm包的管理工具,可以自动安装、升级、删除软件包的功能,可以自动解决软件包之间的依赖关系,使得用户更方便软件包的管理。要使用yum必须要进行配置,个人将其分为三类,本地yum源、局域网yum源、第三方yum源&#…...
[WASAPI]音频API:从Qt MultipleMedia走到WASAPI,相似与不同
[WASAPI] 从Qt MultipleMedia 来看WASAPI 最近在学习有关Windows上的音频驱动相关的知识,在正式开始说WASAPI之前,我想先说一说Qt的Multiple Media,为什么呢?因为Qt的MultipleMedia实际上是WASAPI的一层封装,它在是线…...
什么是MVCC?
MVCC(多版本并发控制,Multi-Version Concurrency Control)是一种用于数据库管理系统中的并发控制的技术。它允许多个事务同时对同一数据进行读取和修改,而不会相互干扰,从而提高了数据库的并发性能。以下是对MVCC的详细…...
C/C++基础错题归纳
文章目录 第1天1.下面程序段的运行结果是:答案知识补充 2.当一个类A 中没有声明任何成员变量与成员函数,这时sizeof(A)的值是多少?答案知识补充 3.下面程序输出是什么?答案其他讲解 第1天 1.下面程序段的运行结果是: char C[5]{‘a’,’b’…...
Nginx 常用安全头
Web 应用中配置 HTTP 安全响应头是提升网站安全性的重要一步。合理配置 Nginx 的安全头,可以抵御常见的安全威胁(如 XSS、点击劫持、MIME 类型嗅探等),增强用户隐私保护和传输安全性。 常见的 HTTP 安全头及其作用 1. Content-Se…...
消息队列(一)消息队列的工作流程
什么是消息队列 首先,代入一个场景,我现在做一个多系统的集成,分别有系统A、B、C、D四个系统,A系统因为使用产生了业务数据,B、C、D需要使用这些数据做相关的业务处理和运算,最基本的做法就是通过接口通信…...
LeetCode 2605 从两个数字数组里生成最小数字
探寻两个数组数位关联下的最小数字问题 题目描述 给定两个只包含 1 到 9 之间数字的数组 nums1 和 nums2,并且每个数组中的元素都是互不相同的。我们需要返回最小的数字,要求这个数字满足两个数组都至少包含这个数字的某个数位。例如,若 nu…...
AI新书推荐:深度学习和大模型原理与实践(清华社)
本书简介 在这个信息爆炸、技术革新日新月异的时代,深度学习作为人工智能领域的重要分支,正引领着新一轮的技术革命。《深度学习和大模型原理与实践》一书,旨在为读者提供深度学习及其大模型技术的全面知识和实践应用的指南。 本书特色在于…...
32单片机串口数据接收、空闲IDLE中断详解
一、前提说明 一开始写单片机程序的时候不太清楚空闲中断这个东西,每次用串口接收数据,都要再开一个定时器,在定时器内进行倒计时,每次接收数据就重置计时时间,计时结束就触发中断,再判断所有接收的数据&am…...
WebRtc webrtc-streamer部署
文章目录 本文档只是为了留档方便以后工作运维,或者给同事分享文档内容比较简陋命令也不是特别全,不适合小白观看,如有不懂可以私信,上班期间都是在得 WebRtc webrtc-streamer 部署 docker run -p 8000:8000 -it mpromonet/webrt…...
shiro注入filter内存马(绕过长度限制)
shiro环境 https://github.com/yyhuni/shiroMemshell(实验环境) 这里用的 Client_memshell.java package com.example.demo;import javassist.ClassPool; import javassist.CtClass; import org.apache.shiro.crypto.AesCipherService; import org.ap…...
Springboot + vue3 实现大文件上传方案:秒传、断点续传、分片上传、前端异步上传
参考:https://juejin.cn/post/6870837414852886542#heading-9 一般计算大文件的md5都是前端来做,因为如果后端来做,那得等到上传成功后才能计算md5值,并且读取的时间也很长。 为了解决文件大传输慢的问题,前端可以通…...
渗透Vulnhub-DC-9靶机
本篇文章旨在为网络安全渗透测试行业靶机教学。通过阅读本文,读者将能够对渗透Vulnhub系列DC-6靶机有定的了解 一、信息收集阶段 DC-9靶场信息: DC-9靶场介绍: https://www.vulnhub.com/entry/dc-9,412/ DC-9靶场下载: https://download.vu…...
springboot477基于vue技术的农业设备租赁系统(论文+源码)_kaic
摘 要 使用旧方法对农业设备租赁系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在农业设备租赁系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的农…...
CentOS常见命令
CentOS(Community ENTerprise Operating System)基于Red Hat Enterprise Linux(RHEL)源代码开发,是常用的Linux发行版之一。在CentOS系统中,有许多命令用于管理和操作系统,以下是一些CentOS系统…...
oracle 设置归档日志存放路径
oracle 设置归档日志存放路径 1、创建新目录 mkdir /archive chown -R oracle:oinstall /archive 注:条件允许的话,/archive 目录应独立挂载。1、便于监控目录使用率;2、避免和其它文件混淆,便于管理。 2、设置归档日志存放路…...
机器学习1-简单神经网络
相比传统的机器学习算法,深度学习做出了哪些改进呢?其实两者在理论结构上是一致的,即:模型假设、评价函数和优化算法,其根本差别在于假设的复杂度 构建简单神经网络(未训练): # 封装…...
C++的侵入式链表
非侵入式链表 非侵入式链表是一种链表数据结构,其中每个元素(节点)并不需要自己包含指向前后节点的指针。链表的结构和节点的存储是分开的,链表容器会单独管理这些指针。 常见的非侵入式链表节点可以由以下所示,即&a…...
MFC案例:图片文件转图标(ico)格式
本案例程序目的是将一般图像文件转换成图标格式(ico)。实现起来不是很复杂,这里为了介绍MFC的具体使用方法,在程序界面上分成几个功能块,包括:打开图像文件、选择ICON大小、转换、预览、保存等。相关具体步骤如下: 一、…...
【从零开始入门unity游戏开发之——unity篇02】unity6基础入门——软件下载安装、Unity Hub配置、安装unity编辑器、许可证管理
文章目录 一、软件下载安装1、Unity官网2、下载Unity Hub 二、修改Unity Hub配置1、设置Unity Hub中文语言2、修改默认存储目录 三、安装unity编辑器1、点击安装编辑器2、版本选择3、关于版本号4、安装模块选择5、等待下载完成自动安装即可6、追加unity和模块 四、许可证管理专…...
东子生物完成A轮战略融资,数字商品交易全新升级为数商时代
2024年11月23日,东子生物数字时代正式上线,标志着公司全面迈入“数商时代”,作为国内领先的生物科技企业,东子生物在数字化浪潮中精准布局,以创新科技推动产业升级,以全新的思维引领健康产业,兼…...
数据结构经典算法总复习(上卷)
第一章:数据结构导论 无重要考点,仅需了解时间复杂度。 第二章:线性表 1.获得线性表第i个元素 void GetElem_sq(SqList L, int i, ElemType &e) {if (i<1 || i>L.length) ErrorMsg("Invalid i value"); //注意错误监…...
电脑使用CDR时弹出错误“计算机丢失mfc140u.dll”是什么原因?“计算机丢失mfc140u.dll”要怎么解决?
电脑使用CDR时弹出“计算机丢失mfc140u.dll”错误:原因与解决方案 在日常电脑使用中,我们时常会遇到各种系统报错和文件丢失问题。特别是当我们使用某些特定软件,如CorelDRAW(简称CDR)时,可能会遇到“计算…...
oracle使用imp命令导入dmp文件
需求: 增量导入 tbl_servicelegalclause 表数据(dmp格式)。 导入思路:使用 dba 创建一个 临时库,先将 tbl_servicelegalclause.dmp(增量的数据) 文件导入到 临时库,然后确认临时库数…...
电脑出现 0x0000007f 蓝屏问题怎么办,参考以下方法尝试解决
电脑蓝屏是让许多用户头疼的问题,其中出现 “0x0000007f” 错误代码更是较为常见且棘手。了解其背后成因并掌握修复方法,能帮我们快速恢复电脑正常运行。 一、可能的硬件原因 内存问题 内存条长时间使用可能出现物理损坏,如金手指氧化、芯片…...
Logback日志框架中的继承机制详解
在Logback框架中,logger的继承机制是基于层级结构(hierarchical context)工作的。每个logger都被分配一个名称,这个名称可以看作是一个路径或目录结构,从而形成了一个逻辑上的树状结构。这种结构使得日志记录具有很强的…...
[Unity]【图形渲染】【游戏开发】Shader数学基础4-更多矢量运算
在计算机图形学和着色器编程中,矢量运算是核心的数学工具之一。矢量用于描述空间中的位置、方向、速度等各种物理量,并在图形变换、光照计算、纹理映射等方面起着至关重要的作用。本篇文章将详细讲解矢量和标量之间的乘法与除法、矢量的加法与减法、矢量的模与单位矢量、点积…...
node.js的异步工作之---回调函数与回调地狱
回调函数:在 Node.js 中,很多 API 都是异步的,通常通过回调函数来处理操作完成后的结果。这种回调模式虽然非常高效,但会导致代码逐渐变得难以维护,尤其是当有多个异步操作嵌套时(即回调地狱)。…...
tcp 的三次握手与四次挥手
问1: 请你说一下tcp的三次握手一次握手两次握手三次握手问: 为什么不四(更多)次握手? 问 2: 请说一下 tcp 的 4 次挥手一次挥手两次挥手问题:能不能等到数据传输完成再返回 ack? 三次挥手四次挥手问: 为什么要等两个最大报文存在时间? bg: tcp 是可靠的连接,如何保证 建立连…...
《三角洲行动》游戏运行时提示“缺失kernel32.dll”:问题解析与解决方案
《三角洲行动》游戏运行时提示“缺失kernel32.dll”:问题解析与解决方案 作为软件开发领域的一名从业者,我深知电脑游戏运行过程中可能遇到的各种挑战,尤其是文件丢失、文件损坏以及系统报错等问题。今天,我将以经典游戏《三角洲…...