甘肃机器学习培训总结_第1页
甘肃机器学习培训总结_第2页
甘肃机器学习培训总结_第3页
甘肃机器学习培训总结_第4页
甘肃机器学习培训总结_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

甘肃机器学习培训总结第1篇甘肃机器学习培训总结第1篇可以分为以下2种情况:

缺失值较多

缺失值较少

用一个异常值填充(比如0),将缺失值作为一个特征处理

(0)

用均值|条件均值填充

如果数据是不平衡的,那么应该使用条件均值填充

所谓条件均值,指的是与缺失值所属标签相同的所有数据的均值

(())

用相邻数据填充

()

简单来说,就是将缺失值也作为一个预测问题来处理:将数据分为正常数据和缺失数据,对有值的数据采用随机森林等方法拟合,然后对有缺失值的数据进行预测,用预测的值来填充。

甘肃机器学习培训总结第2篇条件概率(似然概率)

先验概率

后验概率

贝叶斯公式

(Y|X)&space;=&space;\frac{P(X|Y)&space;&space;P(Y)}{P(X)}_target=__blank_>(Y|X)&space;=&space;\frac{P(X|Y)&space;&space;P(Y)}{P(X)}_title=_P(Y|X)=\frac{P(X|Y)*P(Y)}{P(X)}_/>

最大似然理论:

认为P(x|y)最大的类别y,就是当前文档所属类别。即MaxP(x|y)=Maxp(x1|y)*p(x2|y)*...p(xn|y),forally

贝叶斯理论:

认为需要增加先验概率p(y),因为有可能某个y是很稀有的类别几千年才看见一次,即使P(x|y)很高,也很可能不是它。

所以y=MaxP(x|y)*P(y),其中p(y)一般是数据集里统计出来的。

甘肃机器学习培训总结第3篇Sigmoid函数也叫Logistic函数,用于隐层神经元输出,取值范围为(0,1),它可以将一个实数映射到(0,1)的区间,可以用来做二分类。在特征相差比较复杂或是相差不是特别大时效果比较好。sigmoid是一个十分常见的激活函数,函数的表达式如下:

\[S(x)=\frac{1}{1+e^{-x}}\]

Sigmoid函数的导数可以用其自身表示:

\[S'(x)=S(x)(1-S(x))\]

Sigmoid函数的特性与优缺点:

Sigmoid函数及其导数的图像:

Tanh激活函数又叫作双曲正切激活函数(hyperbolictangentactivationfunction)。与Sigmoid函数类似,Tanh函数也使用真值,但Tanh函数将其压缩至-1到1的区间内。与Sigmoid不同,Tanh函数的输出以零为中心,因为区间在-1到1之间。

函数表达式:

f(x)=Tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}=\frac{2}{1+e^{-2x}}-1

我们可以发现Tanh函数可以看作放大并平移的Logistic函数,其值域是(−1,1)。Tanh与Sigmoid的关系如下:

tanh(x)=2Sigmoid(2x)-1

Tanh激活函数的图像也是S形,作为一个双曲正切函数,Tanh函数和Sigmoid函数的曲线相对相似。但是它比Sigmoid函数更有一些优势。

Tanh函数的特性与优缺点:

Tanh函数的使用优先性高于Sigmoid函数。负数输入被当作负值,零输入值的映射接近零,正数输入被当作正值:

注意:在一般的二元分类问题中,Tanh函数用于隐藏层,而Sigmoid函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。

tanh函数的图像:

线性整流函数,又称修正线性单元ReLU,是一种人工神经网络中常用的激活函数,通常指代以斜坡函数及其变种为代表的非线性函数。

ReLU函数又称为修正线性单元(RectifiedLinearUnit),是一种分段线性函数,其弥补了Sigmoid函数以及Tanh函数的梯度消失问题,在目前的深度神经网络中被广泛使用。ReLU函数本质上是一个斜坡(ramp)函数,公式及函数图像如下:

\begin{aligned}f(x)&=\left\{\begin{array}{ll}x&,x>=0\\0&,x<0\end{array}\right.\\&=\max(0,x)\end{aligned}

线性整流函数(ReLU函数)的特性与优缺点:

ReLU函数(线性整流函数)的图像:

为了解决ReLU激活函数中的梯度消失问题,当x<0时,我们使用LeakyReLU——该函数试图修复deadReLU问题。下面我们就来详细了解LeakyReLU。

函数表达式如下:

\begin{aligned}\text{LeakyReLU}(x)&=\left\{\begin{array}{ll}x&\text{if}x>0\\αx&\text{if}x\leq0\end{array}\right.\\&=\max(0,x)+α\min(0,x),\end{aligned}

其中α是一个很小的数,如等等。

LeakyReLU函数的特点:

LeakyReLU函数的图像:

ELU的提出也解决了ReLU的问题。与ReLU相比,ELU有负值,这会使激活的平均值接近零。均值激活接近于零可以使学习更快,因为它们使梯度更接近自然梯度。函数表达式为:

\mathrm{g}(x)=\mathrm{ELU}(x)=\left\{\begin{aligned}x,&x>0\\\alpha\left(\mathrm{e}^{x}-1\right),&x\leqslant0\end{aligned}\right.

ELU函数的特点:

ELU函数的图像:

LeakyReLU是在ReLU的基础上针对存在的问题进行的扩展。除此以外也可以从其他角度进行扩展,不让x乘常数项,而是让x乘超参数,这看起来比LeakyReLU效果要好,这一种扩展就是ParametricReLU,即为带参数的ReLU函数。

函数表达式为:

\begin{aligned}\operatorname{PReLU}_{i}(x)&=\left\{\begin{array}{ll}x&\text{if}x>0\\a_{i}x&\text{if}x\leq0\end{array}\right.\\&=\max(0,x)+a_{i}\min(0,x),\end{aligned}

PReLU函数的特点:

PReLU函数的图像:

Softmax函数是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。对于长度为K的任意实向量,Softmax函数可以将其压缩为长度为K,值在(0,1)范围内,并且向量中元素的总和为1的实向量。函数表达式如下:S_{i}=\frac{e^{i}}{\sum_{j}e^{j}}

Softmax函数与正常的max函数不同:max函数仅输出最大值,但Softmax函数确保较小的值具有较小的概率,并且不会直接丢弃。我们可以认为它是arg max函数的概率版本或“soft”版本。Softmax函数的分母结合了原始输出值的所有因子,这意味着Softmax函数获得的各种概率彼此相关。

Softmax激活函数的特点:

Softmax激活函数的图像:(假如有三类)

Swish的设计受到了LSTM和高速网络中gating的sigmoid函数使用的启发。我们使用相同的gating值来简化gating机制,这称为self-gating。数学表达式为:

\sigma(x)=x*sigmoid(\betax)=x\sigma(\betax)=\frac{x}{1+e^{-\betax}}

self-gating的优点在于它只需要简单的标量输入,而普通的gating则需要多个标量输入。这使得诸如Swish之类的self-gated激活函数能够轻松替换以单个标量为输入的激活函数(如:ReLU),而无需更改隐藏容量或参数数量。

Swish函数的特点:

Swish函数的图像:

甘肃机器学习培训总结第4篇

混淆矩阵

准确率(accuracy)

精确率(precision)【查准率】

准确率与精确率的区别:

召回率(recall,sensitivity,truepositiverate)【查全率】

F1值——精确率和召回率的调和均值

\frac{2}{F_{1}}&space;=&space;\frac{1}{P}&space;+&space;\frac{1}{R}_target=_blank_>\frac{2}{F{1}}&space;=&space;\frac{1}{P}&space;+&space;\frac{1}{R}_title=_\frac{2}{F_{1}}=\frac{1}{P}+\frac{1}{R}_/>

_{1}&space;=&space;\frac{2TP}{2TP&space;+&space;FP&space;+&space;FN}_target=_blank_>{1}&space;=&space;\frac{2TP}{2TP&space;+&space;FP&space;+&space;FN}_title=_F_{1}=\frac{2TP}{2TP+FP+FN}_/>

只有当精确率和召回率都很高时,F1值才会高

ROC

ROC曲线:接收者操作特征曲线(receiveroperatingcharacteristiccurve),是反映敏感性和特异性连续变量的综合指标,roc曲线上每个点反映着对同一信号刺激的感受性。

对于分类器,或者说分类算法,评价指标主要有precision,recall,F-score等,以及这里要讨论的ROC和AUC。下图是一个ROC曲线的示例:

横坐标:1-Specificity,伪正类率(Falsepositiverate,FPR),预测为正但实际为负的样本占所有负例样本的比例;

纵坐标:Sensitivity,真正类率(Truepositiverate,TPR),预测为正且实际为正的样本占所有正例样本的比例。

在一个二分类模型中,假设采用逻辑回归分类器,其给出针对每个实例为正类的概率,那么通过设定一个阈值如,概率大于等于的为正类,小于的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。

如下面这幅图,(a)图中实线为ROC曲线,线上每个点对应一个阈值。

(a)理想情况下,TPR应该接近1,FPR应该接近0。ROC曲线上的每一个点对应于一个threshold,对于一个分类器,每个threshold下会有一个TPR和FPR。比如Threshold最大时,TP=FP=0,对应于原点;Threshold最小时,TN=FN=1,对应于右上角的点(1,1)。(b)P和N得分不作为特征间距离d的一个函数,随着阈值theta增加,TP和FP都增加。

AUC

AUC(AreaUnderCurve)被定义为ROC曲线下的面积,显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围一般在和1之间。

使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。

AUC的计算有两种方式,梯形法和ROCAUCH法,都是以逼近法求近似值,具体见wikipedia。

AUC意味着什么

那么AUC值的含义是什么呢?根据(Fawcett,2006),AUC的值的含义是:

TheAUCvalueisequivalenttotheprobabilitythatarandomlychosenpositiveexampleisrankedhigherthanarandomlychosennegativeexample.

这句话有些绕,我尝试解释一下:首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

从AUC判断分类器(预测模型)优劣的标准:

三种AUC值示例:

简单说:AUC值越大的分类器,正确率越高。

为什么使用ROC曲线

既然已经这么多评价标准,为什么还要使用ROC和AUC呢?

因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(classimbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。

MAE(平均绝对误差)

平均绝对误差MAE(MeanAbsoluteError)又被称为L1范数损失。(n=m-1)

(y,\hat{y})&space;=&space;\frac{1}{m}\sum_{i=1}^{n}|y_i&space;-&space;\hat{y_i}|_target=_blank_>(y,\hat{y})&space;=&space;\frac{1}{m}\sum{i=1}^{n}|y_i&space;-&space;\hat{y_i}|_title=_MAE(y,\hat{y})=\frac{1}{m}\sum_{i=1}^{n}|y_i-\hat{y_i}|_/>

MAE有哪些不足?

MSE(均方误差)

均方误差MSE(MeanSquaredError)又被称为**L2范数损失**。

(y,\hat{y})&space;=&space;\frac{1}{m}\sum_{i=1}{m}(y_i&space;-&space;\hat{y_i})2_target=_blank_>(y,\hat{y})&space;=&space;\frac{1}{m}\sum{i=1}{m}(y_i&space;-&space;\hat{y_i})2_title=_MSE(y,\hat{y})=\frac{1}{m}\sum_{i=1}^{m}(y_i-\hat{y_i})^2_/>

还有没有比MSE更合理一些的指标?

RMSE(均方根误差)

(y,\hat{y})&space;=&space;\sqrt{\frac{1}{m}\sum_{i=1}{m}(y_i&space;-&space;\hat{y_i})2}_target=_blank_>(y,\hat{y})&space;=&space;\sqrt{\frac{1}{m}\sum{i=1}{m}(y_i&space;-&space;\hat{y_i})2}_title=_RMSE(y,\hat{y})=\sqrt{\frac{1}{m}\sum_{i=1}^{m}(y_i-\hat{y_i})^2}_/>

RMSE有没有不足的地方?有没有规范化(无量纲化的指标)?

R^2(决定系数)

变量之所以有价值,就是因为变量是变化的。什么意思呢?比如说一组因变量为[0,0,0,0,0],显然该因变量的结果是一个常数0,我们也没有必要建模对该因变量进行预测。假如一组的因变量为[1,3,7,10,12],该因变量是变化的,也就是有变异,因此需要通过建立回归模型进行预测。这里的变异可以理解为一组数据的方差不为0。

决定系数又称为R^2score,反映因变量的全部变异能通过回归关系被自变量解释的比例。

如果结果是0,就说明模型预测不能预测因变量。

如果结果是1。就说明是函数关系。

如果结果是0-1之间的数,就是我们模型的好坏程度。

化简上面的公式,分子就变成了我们的均方误差MSE,下面分母就变成了方差:

以上评估指标有没有缺陷,如果有,该怎样改进?

以上的评估指标是基于误差的均值对进行评估的,均值对异常点(outliers)较敏感,如果样本中有一些异常值出现,会对以上指标的值有较大影响,即均值是非鲁棒的。

我们通常用以下两种方法解决评估指标的鲁棒性问题:

MAPE是一个相对误差的中位数,当然也可以使用别的分位数。

甘肃机器学习培训总结第5篇偏差与方差分别是用于衡量一个模型泛化误差的两个方面;

在监督学习中,模型的泛化误差可分解为偏差、方差与噪声之和。

偏差用于描述模型的拟合能力方差用于描述模型的稳定性

记在训练集D上学得的模型为

模型的期望预测为

\hat&space;f(x)&space;=&space;\Bbb&space;E_{D}[f(x;&space;D)]_target=_blank_>\hat&space;f(x)&space;=&space;\Bbb&space;E{D}[f(x;&space;D)]_title=_\hatf(x)=\BbbE_{D}[f(x;D)]_/>

偏差(Bias)

2(x)&space;=&space;(\hat&space;f(x)&space;-&space;y)2_target=__blank_>2(x)&space;=&space;(\hat&space;f(x)&space;-&space;y)2_title=_bias^2(x)=(\hatf(x)-y)^2_/>

偏差度量了学习算法的期望预测与真实结果的偏离程度,即刻画了学习算法本身的拟合能力;

方差(Variance)

(x)&space;=&space;\Bbb&space;E_{D}[(f(x;&space;D)&space;-&space;\hat&space;f(x))^2]_target=_blank_>(x)&space;=&space;\Bbb&space;E{D}[(f(x;&space;D)&space;-&space;\hat&space;f(x))^2]_title=_var(x)=\BbbE_{D}[(f(x;D)-\hatf(x))^2]_/>

方差度量了同样大小的训练集的变动所导致的学习性能的变化,即刻画了数据扰动所造成的影响(模型的稳定性);

噪声则表达了在当前任务上任何学习算法所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

“偏差-方差分解”表明模型的泛化能力是由算法的能力、数据的充分性、任务本身的难度共同决定的。

避免欠拟合(刻画不够)

避免过拟合(刻画太细,泛化太差)

给定学习任务,

偏差和方差的关系和模型容量(模型复杂度)、欠拟合和过拟合的概念紧密相联

《深度学习》权衡偏差和方差以最小化均方误差

甘肃机器学习培训总结第6篇什么是熵?

《深度学习》信息论

信息论的基本想法是一个不太可能的事件居然发生了,要比一个非常可能的事件发生,能提供更多的信息。

该想法可描述为以下性质:

自信息(self-information)是一种量化以上性质的函数,定义一个事件x的自信息为:

当该对数的底数为e时,单位为奈特(nats,本书标准);当以2为底数时,单位为比特(bit)或香农(shannons)

自信息只处理单个的输出。此时,用信息熵(Information-entropy)来对整个概率分布中的不确定性总量进行量化:

(\mathrm{X})=\mathbb{E}{\mathrm{X}\simP}[I(x)]=-\sum{x\in\mathrm{X}}P(x)\logP(x)_/>

信息熵也称香农熵(Shannonentropy)

信息论中,记0log0=0

P对Q的KL散度(Kullback-Leiblerdivergence):

_P(Q)=\mathbb{E}{\mathrm{X}\simP}\left[\log\frac{P(x)}{Q(x)}\right]=\sum{x\in\mathrm{X}}P(x)\left[\logP(x)-\logQ(x)\right]_/>

KL散度在信息论中度量的是那个直观量:

在离散型变量的情况下,KL散度衡量的是,当我们使用一种被设计成能够使得概率分布Q产生的消息的长度最小的编码,发送包含由概率分布P产生的符号的消息时,所需要的额外信息量。

KL散度的性质:

交叉熵(cross-entropy):

_P(Q)=-\mathbb{E}{\mathrm{X}\simP}\logQ(x)=-\sum{x\in\mathrm{X}}P(x)\logQ(x)_/>

甘肃机器学习培训总结第7篇数学抽象

明确问题是进行机器学习的第一步。机器学习的训练过程通常都是一件非常耗时的事情,胡乱尝试时间成本是非常高的。

这里的抽象成数学问题,指的是根据数据明确任务目标,是分类、还是回归,或者是聚类。

数据获取

数据决定了机器学习结果的上限,而算法只是尽可能逼近这个上限。

数据要有代表性,否则必然会过拟合。

对于分类问题,数据偏斜不能过于严重(平衡),不同类别的数据数量不要有数个数量级的差距。

对数据的量级要有一个评估,多少个样本,多少个特征,据此估算出内存需求。如果放不下就得考虑改进算法或者使用一些降维技巧,或者采用分布式计算。

预处理与特征选择

良好的数据要能够提取出良好的特征才能真正发挥效力。

预处理/数据清洗是很关键的步骤,往往能够使得算法的效果和性能得到显著提高。归一化、离散化、因子化、缺失值处理、去除共线性等,数据挖掘过程中很多时间就花在它们上面。这些工作简单可复制,收益稳定可预期,是机器学习的基础必备步骤。

筛选出显著特征、摒弃非显著特征,需要机器学习工程师反复理解业务。这对很多结果有决定性的影响。特征选择好了,非常简单的算法也能得出良好、稳定的结果。这需要运用特征有效性分析的相关技术,如相关系数、卡方检验、平均互信息、条件熵、后验概率、逻辑回归权重等方法。

模型训练与调优

直到这一步才用到我们上面说的算法进行训练。

现在很多算法都能够封装成黑盒使用。但是真正考验水平的是调整这些算法的(超)参数,使得结果变得更加优良。这需要我们对算法的原理有深入的理解。理解越深入,就越能发现问题的症结,提出良好的调优方案。

模型诊断

如何确定模型调优的方向与思路呢?这就需要对模型进行诊断的技术。

过拟合、欠拟合判断是模型诊断中至关重要的一步。常见的方法如交叉验证,绘制学习曲线等。过拟合的基本调优思路是增加数据量,降低模型复杂度。欠拟合的基本调优思路是提高特征数量和质量,增加模型复杂度。

误差分析也是机器学习至关重要的步骤。通过观察误差样本,全面分析误差产生误差的原因:是参数的问题还是算法选择的问题,是特征的问题还是数据本身的问题......

诊断后的模型需要进行调优,调优后的新模型需要重新进行诊断,这是一个反复迭代不断逼近的过程,需要不断地尝试,进而达到最优状态。

模型融合/集成

一般来说,模型融合后都能使得效果有一定提升。而且效果很好。

工程上,主要提升算法准确度的方法是分别在模型的前端(特征清洗和预处理,不同的采样模式)与后端(模型融合)上下功夫。因为他们比较标准可复制,效果比较稳定。而直接调参的工作不会很多,毕竟大量数据训练起来太慢了,而且效果难以保证。

上线运行

这一部分内容主要跟工程实现的相关性更大。工程上是结果导向,模型在线上运行的效果直接决定模型的成败。不单纯包括其准确程度、误差等情况,还包括其运行的速度(时间复杂度)、资源消耗程度(空间复杂度)、稳定性是否可接受。

这些工作流程主要是工程实践上总结出的一些经验。并不是每个项目都包含完整的一个流程。这里的部分只是一个指导性的说明,只有多实践,多积累项目经验,才会有自己更深刻的认识。

甘肃机器学习培训总结第8篇因为神经网络中每一层的输入输出都是一个线性求和的过程,下一层的输出只是承接了上一层输入函数的线性变换,所以如果没有激活函数,那么无论你构造的神经网络多么复杂,有多少层,最后的输出都是输入的线性组合,纯粹的线性组合并不能够解决更为复杂的问题。而引入激活函数之后,我们会发现常见的激活函数都是非线性的,因此也会给神经元引入非线性元素,使得神经网络可以逼近其他的任何非线性函数,这样可以使得神经网络应用到更多非线性模型中。

甘肃机器学习培训总结第9篇监督学习的任务是学习一个模型,对给定的输入预测相应的输出

这个模型的一般形式为一个决策函数或一个条件概率分布(后验概率):

监督学习模型可分为生成模型与判别模型

判别模型直接学习决策函数或者条件概率分布

生成模型学习的是联合概率分布P(X,Y),然后根据条件概率公式计算P(Y|X)

两者之间的联系

由生成模型可以得到判别模型,但由判别模型得不到生成模型。

当存在“隐变量”时,只能使用生成模型

隐变量:当我们找不到引起某一现象的原因时,就把这个在起作用,但无法确定的因素,叫“隐变量”

优缺点

常见模型

甘肃机器学习培训总结第10篇支持度(Support)

X→Y的支持度表示项集{X,Y}在总项集中出现的概率

其中,I表示总事务集,num()表示事务集中特定项集出现的次数,P(X)=num(X)/num(I)

置信度(Confidence)

X→Y的置信度表示在先决条件X发生的情况下,由规则X→Y推出Y的概率。

提升度(Lift)

X→Y的提升度表示含有X的条件下,同时含有Y的概率,与Y总体发生的概率之比。

\begin{align}&space;Lift(X&space;\rightarrow&space;Y)&space;&=&space;\frac{P(Y|X)}{P(Y)}&space;=&space;\frac{Confidence(X&space;\rightarrow&space;Y)}{num(Y)&space;/&space;num(I)}&space;\&space;&=&space;\frac{P(X&space;\cup&space;Y)}{P(X)P(Y)}&space;=&space;\frac{num(X&space;\cup&space;Y)num(I)}{num(X)num(Y)}&space;\end{align}_target=__blank_>\begin{align}&space;Lift(X&space;\rightarrow&space;Y)&space;&=&space;\frac{P(Y|X)}{P(Y)}&space;=&space;\frac{Confidence(X&space;\rightarrow&space;Y)}{num(Y)&space;/&space;num(I)}&space;\&space;&=&space;\frac{P(X&space;\cup&space;Y)}{P(X)P(Y)}&space;=&space;\frac{num(X&space;\cup&space;Y)num(I)}{num(X)num(Y)}&space;\end{align}_title=_\begin{align}Lift(X\rightarrowY)&=\frac{P(Y|X)}{P(Y)}=\frac{Confidence(X\rightarrowY)}{num(Y)/num(I)}\&=\frac{P(X\cupY)}{P(X)P(Y)}=\frac{num(X\cupY)num(I)}{num(X)num(Y)}\end{align

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论