当前位置: 首页 > news >正文

宁波品牌网站建设新手建网站需要怎么做呢

宁波品牌网站建设,新手建网站需要怎么做呢,wordpress主题mirana,张掖网站建设公司第 2 章 模型评估与选择 2.1 经验误差与过拟合 精度#xff1a;精度1-错误率。如果在 mmm 个样本中有 aaa 个样本分类错误#xff0c;则错误率 Ea/mEa/mEa/m#xff0c;精度 1−a/m1-a/m1−a/m。误差#xff1a;一般我们把学习器的实际预测输出与样本的真实输出之间的差…第 2 章 模型评估与选择 2.1 经验误差与过拟合 精度精度1-错误率。如果在 mmm 个样本中有 aaa 个样本分类错误则错误率 Ea/mEa/mEa/m精度 1−a/m1-a/m1−a/m。误差一般我们把学习器的实际预测输出与样本的真实输出之间的差异称为“误差”error。学习器在训练集上的误差称为“训练误差”training error在新样本上的误差称为“泛化误差”generalization error。“过拟合学习器把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质从而导致泛化性能下降这种现象称为”过拟合“overfitting。过拟合是机器学习算法面临的一个关键问题。欠拟合和过拟合想法指的是学习器对训练样本的一般性质都未学号。欠拟合比较容器解决在决策树中增加分治、在神经网络学习中学习训练轮数Epoch等方法都是有效的。 好的学习器应该尽可能学出适用于所有潜在样本的”普遍规律“。由于事先无法知道新样本是什么样子所以无法直接获得泛化误差同时训练误差又由于过拟合现象的存在而不适合作为标准那么现实中如何进行模型评估与选择就是一个重要的问题了。 2.2 评估方法 通常使用一个测试集来评估学习器对新样本的判别能力把测试集上的”测试误差“testing error作为泛化误差的近似。值得注意的是测试集应该尽可能与训练集互斥即测试样本尽量不在训练集中出现学习器之前没有见到过。 对于一个包含 mmm 个样本的数据集 D(x1,y1),(x2,y2),...,(xm,ym)D {(x_1, y_1)}, (x_2, y_2),...,(x_m, y_m)D(x1​,y1​),(x2​,y2​),...,(xm​,ym​)将其划分为训练集 SSS 和测试集 TTT有两种常见的方法留出法和交叉验证法。 2.2.1 留出法 ”留出法“hold-out 直接将数据集 DDD 划分为两个户次互斥的集合一个集合作为训练集 SSS另一个作为测试集 TTT即 DS∪TD S \cup TDS∪TS∩T∅S \cap T \emptysetS∩T∅。值得注意的是训练/测试集的划分应该尽可能保持数据分布的一致性避免数据划分过程引入额外的偏差而对最终结果产生影响。从采样(sampling)的角度来看数据集的划分过程则保留类别比例的采样方式称为”分层采样“stratified sampling。例如数据集 DDD 有 1000 个样本800 个正样本200 个负样本将 70% 的样本作为训练集30% 的样本作为测试集。考虑分层采样则训练 SSS 集的构成为正样本 1000×70%×(800/1000)560 1000\times 70\% \times (800/1000) 5601000×70%×(800/1000)560负样本 1000×70%×(200/1000)1401000\times 70\% \times (200/1000) 1401000×70%×(200/1000)140同理可得测试集 T 包含 240 个正样本60 个负样本。 另一个问题是即使在给定训练集/测试集样本比例后依然存在多种划分方式对样本 DDD 进行分割例如前 280 个正样本和后 280 个正样本构建的训练集是不一样的。因此单次使用留出法得到的的估计结果往往不可靠在使用留出法时一般采用若干次随机划分、重复进行实验评估后取平均值作为留出法的评估结果。 2.2.2 交查验证法 ”交叉验证法“cross validation先将数据集 DDD 划分为 kkk 个大小相似的互斥子集即 DD1∪D2∪...∪DkDi∩Dj∅D D_1\cup D_2\cup...\cup D_kD_i \cap D_j \emptysetDD1​∪D2​∪...∪Dk​Di​∩Dj​∅。同时每个子集都应该尽可能保持数据分布的一致性即类别比例相等从 DDD 中通过分层采样得到。然后每次用 k−1k-1k−1 个子集的并集作为训练集剩下的一个子集作为测试集这样可获得 kkk 组训练集/测试集从而可进行 kkk 组训练和测试把 kkk 次测试结果取平均后返回。交叉验证法评估结果的稳定性和保真性在很大程度上取决于 kkk 的取值为了强调这一点通常把交叉验证法称为“kkk 折交叉验证”k-fold cross validation。kkk 的常用取值分别是 10、5、20 等。图 2.2 给出了 10 折交叉验证的示意图。 “10 次 10 折交叉验证法”与 “100 次留出法“都是进行了 100 次训练/测试。 交叉验证法的一个特例是留一法Leave-One-Out简称 LDO留一法不受随机样本划分方式的影响因为 mmm 个样本只有唯一的划分方式划分为 mmm 个子集-每个子集包含一个样本。虽然留一法的评估结果往往被认为比较准确但是训练开销简直太大了真实项目中很少见到有人这样用而且留一法的估计结果未必永远比其他评估方法准确毕竟“天下没有免费的午餐”。 2.2.3 自助法 “自助法”bootstrapping 给定包含 mmm 个样本的数据集 DDD对它进行采样产生数据集 D′{D}D′每次随机从 DDD 中挑选一个样本将其拷贝放入 D′{D}D′然后再将其放回 DDD 中下次采样依然可能被采样到这个过程重复 mmm 次就得到了包含 mmm 个样本的数据集 D′{D}D′。显然DDD 中有一部分样本会在 D′{D}D′ 中多次出现另外一部分样本不出现。做一个简单估计样本在 mmm 次采样中始终不被采到的概率是 (1−1m)m(1-\frac{1}{m})^m(1−m1​)m取极限得到如下所式: (1−1m)m→1e≈0.368(1-\frac{1}{m})^m \rightarrow \frac{1}{e}\approx 0.368 (1−m1​)m→e1​≈0.368 即通过自助采样初始数据集 DDD 中约有 36.8% 的样本未出现在采样数据集 D′{D}D′ 中。 自助法只适用于数据集较小、难以有效划分训练/测试集的情况。值得注意的是自助法产生的数据集改变了初始数据集的分布这回引入估计偏差。 2.2.4 调参与最终模型 需要认为设定的参数称为超参数模型训练无法优化它的。现实当中常对每个参数选定一个范围和变化补偿例如在 [0,0.2] 范围内以 0.05 为补偿要评估的的候选参数有 5 个最终选定的参数从这 5 个候选值中产生结果也许不是最佳值但这是计算开销和性能估计之间进行折中的结果。 在模型评估与选择过程中由于需要流出一部分数据进行评估测试事实上我们只使用了一部分数据训练模型。因此在模型选择完成后学习算法和参数配置已定此使应该用数据集 DDD 重新训练模型。这个模型在训练过程中使用了所有 mmm 个训练样本这个模型也是最终提交给用户的模型。 另外值得注意的是我们通常把学得模型在实际使用过程中遇到的数据集称为测试数据为了加以区分前面讲到的模型评估与选择中用于评估测试的数据常称为“验证集validation set”。 在研究对比不同算法的泛化性能时我们用测试集上的判别效果来估计模型在实际使用时的泛化能力而把训练数据另外划分为训练集和验证集基于验证集上的性能来进行模型选择和调参。 2.3 性能度量 对学习器的泛化性能进行评估不仅需要有效可行的实验估计方法还需要衡量模型泛化能力的评价标准这就是性能度量performance measure。 在预测任务中给定样本集 D(x1,y1),(x2,y2),...,(xm,ym)D{(x_1,y_1),(x_2,y_2),...,(x_m,y_m)}D(x1​,y1​),(x2​,y2​),...,(xm​,ym​)其中 yiy_iyi​ 是示例 xix_ixi​ 的真实标签。要评估学习器 fff 的性能需要把学习器预测结果 f(x)f(x)f(x) 与真实标签 yyy 进行比较。 回归任务最常用的性能度量是“均方误差”mean squared error。 E(f;D)1m∑i1m(f(xi)−yi)2E(f;D) \frac{1}{m}\sum_{i1}^{m}(f(x_i)-y_i)^2E(f;D)m1​i1∑m​(f(xi​)−yi​)2 2.3.1 错误率与精度 错误率分类错误的样本数占样本总数的比例精度分类正确样本的样本数占样本总数的比例。 错误率和精度是分类任务中最常用的两种性能度量适用于二分类也适用于多分类任务。分类错误率和精度的定义如下 E(f;D)1m∑i1m(f(xi)≠yi)2E(f;D) \frac{1}{m}\sum_{i1}^{m}(f(x_i) \neq y_i)^2E(f;D)m1​i1∑m​(f(xi​)yi​)2 acc(f;D)1m∑i1m(f(xi)yi)21−E(f;D)acc(f;D) \frac{1}{m}\sum_{i1}^{m}(f(x_i) y_i)^2 1 - E(f;D)acc(f;D)m1​i1∑m​(f(xi​)yi​)21−E(f;D) 2.3.2 查准率、查全率与F1 错误率和精度虽然常用但是并不能满足所有任务需求。比如以西瓜问题为例假设瓜农拉来一车西瓜我们用训练好的模型对西瓜进行判别现如精度只能衡量有多少比例的西瓜被我们判断类别正确两类好瓜、坏瓜。但是若我们更加关心的是“挑出的西瓜中有多少比例是好瓜”或者”所有好瓜中有多少比例被挑出来“那么精度和错误率这个指标显然是不够用的。 对于二分类问题可将样例根据真实类别与学习器预测类别的组合划分为真正例true positive、假正例false positive、真反例true negative、假反例false negative四种情况令 TP、FP、TN、FNTP、FP、TN、FNTP、FP、TN、FN 分别表示其对应的样例数显然有 $TPFPTNFN $ 样例总数。分类结果的”混淆矩阵“confusion matrix如下表所示。 查准率精确率 PPP 与查全率召回率 RRR 分别定义为 PTPTPFPRTPTPFNP \frac{TP}{TPFP} \\ R \frac{TP}{TPFN} PTPFPTP​RTPFNTP​ 查准率和查全率是一对矛盾的的度量。一般来说查全率高时查准率往往偏低而查全率高时查准率往往偏低。通常只有在一些简单任务中才可能使查全率和查准率都很好高。 精准率和召回率的关系可以用一个 P-R 图来展示以查准率 P 为纵轴、查全率 R 为横轴作图就得到了查准率查全率曲线简称 P-R 曲线PR 曲线下的面积定义为 AP。 为了绘图方便和美观示意图显示出单调平滑曲线但现实任务中的 P-R 曲线是非单调、不平滑的且在很多局部有上下波动。 如何理解 P-R 曲线呢 可以从排序型模型或者分类模型理解。以逻辑回归举例逻辑回归的输出是一个 0 到 1 之间的概率数字因此如果我们想要根据这个概率判断用户好坏的话我们就必须定义一个阈值 。通常来讲逻辑回归的概率越大说明越接近 1也就可以说他是坏用户的可能性更大。比如我们定义了阈值为 0.5即概率小于 0.5 的我们都认为是好用户而大于 0.5 都认为是坏用户。因此对于阈值为 0.5 的情况下我们可以得到相应的一对查准率和查全率。 但问题是这个阈值是我们随便定义的我们并不知道这个阈值是否符合我们的要求。 因此为了找到一个最合适的阈值满足我们的要求我们就必须遍历 0 到 1 之间所有的阈值而每个阈值下都对应着一对查准率和查全率从而我们就得到了 PR 曲线。 最后如何找到最好的阈值点呢 首先需要说明的是我们对于这两个指标的要求我们希望查准率和查全率同时都非常高。 但实际上这两个指标是一对矛盾体无法做到双高。图中明显看到如果其中一个非常高另一个肯定会非常低。选取合适的阈值点要根据实际需求比如我们想要高的查全率那么我们就会牺牲一些查准率在保证查全率最高的情况下查准率也不那么低。 在进行性能比较时如果一个学习器的曲线被另一个学习器的曲线完全包住则可断言后者性能优于前者如图 2.3学习器 A 性能优于学习器 C。比较 P-R 曲线下面积的大小也可判别学习器的优劣它在一定程度上表征了学习器在查准率和查全率上取得”双高“的比例但这个值不容易估算因此人们又设计了一些综合考虑查准率、查全率的性能度量如”平衡点Break-Event Point简称 BEP“。 BEP 是”查准率查全率“时的取值基于学习器的比较可以认为学习器 A 优于 B。但 BEP 过于简单了更为常用的是 F1F1F1 度量。 F12×P×RPR2×TP样例总数TP−TNF1 \frac{2\times P\times R}{PR} \frac{2\times TP}{样例总数TP-TN} F1PR2×P×R​样例总数TP−TN2×TP​ F1F1F1 度量的一般形式FβF_{\beta}Fβ​能让我们表达出对查准率/查全率的偏见FβF_{\beta}Fβ​ 计算公式如下 Fβ1β2×P×R(β2×P)RF_{\beta} \frac{1\beta^{2}\times P\times R}{(\beta^{2}\times P)R} Fβ​(β2×P)R1β2×P×R​ 其中 β 1 对查全率有更大影响β1\beta 1β1 对查准率有更大影响。 很多时候我们会有多个混淆矩阵例如进行多次训练/测试每次都能得到一个混淆矩阵或者是在多个数据集上进行训练/测试希望估计算法的”全局“性能又或者是执行多分类任务每两两类别的组合都对应一个混淆矩阵…总而来说我们希望能在 nnn 个二分类混淆矩阵上综合考虑查准率和查全率。 一种直接的做法是先在各混淆矩阵上分别计算出查准率和查全率记为(P1,R1),(P2,R2),...,(Pn,Rn)(P_1,R_1),(P_2,R_2),...,(P_n,R_n)(P1​,R1​),(P2​,R2​),...,(Pn​,Rn​)然后取平均这样得到的是”宏查准率Macro-P“、”宏查准率Macro-R“及对应的”宏F1F1F1Macro-F1“ MacroP1n∑i1nPiMacroR1n∑i1nRiMacroF12×MacroP×MacroRMacroPMacroR\begin{aligned} Macro\ P \frac{1}{n}\sum_{i1}^{n}P_i \\ Macro\ R \frac{1}{n}\sum_{i1}^{n}R_i \\ Macro\ F1 \frac{2 \times Macro\ P\times Macro\ R}{Macro\ P Macro\ R} \end{aligned}Macro PMacro RMacro F1​n1​i1∑n​Pi​n1​i1∑n​Ri​Macro PMacro R2×Macro P×Macro R​​ 另一种做法是将各混淆矩阵对应元素进行平均得到 TP、FP、TN、FNTP、FP、TN、FNTP、FP、TN、FN 的平均值再基于这些平均值计算出”微查准率“Micro-P、”微查全率“Micro-R和”微F1F1F1“Mairo-F1 MicroPTP‾TP‾FP‾MicroRTP‾TP‾FN‾MicroF12×MicroP×MicroRMacroPMicroR\begin{aligned} Micro\ P \frac{\overline{TP}}{\overline{TP}\overline{FP}} \\ Micro\ R \frac{\overline{TP}}{\overline{TP}\overline{FN}} \\ Micro\ F1 \frac{2 \times Micro\ P\times Micro\ R}{MacroPMicro\ R} \end{aligned}Micro PMicro RMicro F1​TPFPTP​TPFNTP​MacroPMicro R2×Micro P×Micro R​​ 2.3.3 ROC 与 AUC ROC 曲线示意图如下。 2.5 偏差与方差 通过前面的学习我们已经知道如何设计实验训练集、验证集的划分来对学习器的泛化误差进行评估并且也了解了诸如精度、查准率、查全率及 F1 等性能度量指标。但这不够我们还希望了解”为什么“具有这样的性能。”偏差-方差分解“bias-variance decomposition是解释学习算法泛化性能的一种重要工具。 假设对于测试样本 xxx,令 yDy_DyD​ 为 xxx 在数据集中的标记即标签可能会存在噪声yyy 才是 xxx 的真实标记f(x;D)f(x;D)f(x;D) 为训练集 DDD 上学得模型 fff 在 xxx 上的预测输出。以回归任务为例算法的泛化误差计算如下 E(f;D)ED[(f(x;D)−yD)2]E(f;D) \mathbb{E}_{D} [(f(x;D) - y_{D})^2] E(f;D)ED​[(f(x;D)−yD​)2] 直接计算上式是不行的我们得进行分解分解之前需要先知道方差、偏差、噪声的定义。学习算法的期望预测为 fˉ(x)ED[(f(x;D)]\bar{f}(x) \mathbb{E}_{D} [(f(x;D)] fˉ​(x)ED​[(f(x;D)] 方差定义: 模型预测的期望值与预测值之差的平方的期望值使用样本数相同的不同训练集产生的方差为 D(x)var(x)ED[(f(x;D)−ED[(f(x;D)])2]ED[(f(x;D)−fˉ(x))2]D(x) var(x) \mathbb{E}_{D}[(f(x;D) - \mathbb{E}_{D}[(f(x;D)])^2] \mathbb{E}_{D}[(f(x;D) - \bar{f}(x))^2] D(x)var(x)ED​[(f(x;D)−ED​[(f(x;D)])2]ED​[(f(x;D)−fˉ​(x))2] 方差在统计描述和概率分布中各有不同的定义并有不同的公式。 噪声为 ε2ED[(yD−y)2]\varepsilon^2 \mathbb{E}_{D}[(y_{D} - y)^2] ε2ED​[(yD​−y)2] 模型预测的期望值与真实值的差称为偏差bias即 bias2(x)(fˉ(x)−y)2bias^2(x) (\bar{f}(x)-y)^2 bias2(x)(fˉ​(x)−y)2 假定噪声为 0 即 ED[(yD−y)]0\mathbb{E}_{D}[(y_{D}-y)]0ED​[(yD​−y)]0有了以上定义通过多项式展开合并并利用恒等变形、期望的运算性质可将期望泛化误差公式进行分解得到 公式推理证明可参考这里。 E(f;D)ED[(f(x;D)−fˉ(x))2](fˉ(x)−y)2ED[(yD−y)2]E(f;D) \mathbb{E}_{D}[(f(x;D)-\bar{f}(x))^2] (\bar{f}(x)-y)^2 \mathbb{E}_{D}[(y_{D}-y)^2] E(f;D)ED​[(f(x;D)−fˉ​(x))2](fˉ​(x)−y)2ED​[(yD​−y)2] 于是 E(f;D)var(x)bias2(x)ε2E(f;D) var(x) bias^2(x) \varepsilon^2 E(f;D)var(x)bias2(x)ε2 通过上式可知泛化误差可分解为方差、偏差与噪声之和。回顾偏差、方差、噪声的定义 偏差度量了学习算法的期望预测与真实结果的偏离程度刻画了学习算法本身的拟合能力。方差度量了同样大小的训练集的变动导致的学习性能的变化刻画了数据扰动所造成的影响或者说刻画了模型的稳定性和泛化能力。噪声表达了当前任务上任何学习算法所能达到的期望泛化误差的下界即刻画了学习问题本身的难度。 通过对泛化误差进行分解说明模型泛化性能是由学习算法的能力、数据的充分性以及任务本身的难度所共同决定的。模型欠拟合表现为偏差较大, 此时偏差主导了泛化错误率模型过拟合表现为偏差小但是方差很大方差主导了泛化错误率。 一般来说偏差与方差是有冲突的这称为偏差-方差窘境bias-variane dilemma。 第 3 章 线性模型 3.5 多分类学习 3.6 类别不平衡问题 y′1−y′y1−y×m−m\frac{y}{1-y} \frac{y}{1-y}\times \frac{m^-}{m^}1−y′y′​1−yy​×mm−​ 公式中yyy 是预测值分类器决策规则为若 y1−y\frac{y}{1-y}1−yy​ 则预测为正例。令 mm^m 表示正例数目 m−m^-m− 表示反例数目则观测几率是 m−m\frac{m^-}{m^}mm−​。 类别不平衡学习的一个基本策略是 “再缩放”rescaling。再缩放技术主要有三种方法实现 对训练集的反类样例进行“欠采样”undersampling即去除一些反例使得正负样例数目接近然后再进行学习。对训练集的正类样例进行“过采样”oversampling即增加一些正例使得正、负样例数目接近然后再进行学习或者叫模型训练。直接对原始训练集进行学习但是在对训练好的分类器进行预测时将式3.48嵌入到分类器推理过程中称为“阈值移动”threshold-moving。 值得注意的是过采样的方法不能简单地对初始正例样本进行重复采样否则会招致严重的过拟合过采样方法的代表性算法 SMOTE 是通过对训练集的正例进行插值来产生额外的正例图像数据就进行数据增强。 第 5 章 神经网络 5.1 神经元模型 神经网络有很多种定义一种较为广泛的定义是其是由具有适应性的简单单元组成的广泛并行互连的网络它的组织能够模拟生物神经系统对真实世界物体所作出的交互反应。 神经网络中最基本的成分是神经元neuron模型即上述定义中的简单单元。经典的M-P神经元模型”如下所示其中的 fff 表示激活函数www 表示神经元权重。 5.2 感知机与多层网络 感知机perception由两层神经元组成如下图所示输入层接收外界输入信号后传递给输出层输出层是 M-P 神经元也称“阈值逻辑单元”threshold logic unit。感知机能容易地实现逻辑与、或、非运算只需要设置合理的 www、θ\thetaθ 参数。感知机模型的公式可表示为 yjf(∑iwixi−θj)y_j f(\sum_{i}w_ix_i - \theta_j)yj​f(i∑​wi​xi​−θj​) 给定训练数据集感知机的 www 和 θ\thetaθ 参数可通过学习得到。其学习规则很简单对于训练样本(x,y)(x,y)(x,y)如果感知机输出为 y^\hat{y}y^​则感知机的参数将做如下调整 wi←wiΔwiΔwiη(y−y^)xw_{i} \leftarrow w_{i} \Delta w_i \\ \Delta w_i \eta(y - \hat{y})x wi​←wi​Δwi​Δwi​η(y−y^​)x 其中 η\etaη 称为学习率从上式可以看出当感知机预测输出 y^\hat{y}y^​ 和样本标签 yyy 相等时参数不改变否则将根据偏差的严重程度进行相应调整。 需要注意的是感知机只能解决与、或、非这样的线性可分即存在一个线性超平面将它们分开问题但是甚至不能解决异或这样简单的非线性可分问题。 要解决非线性可分问题可以使用多功能神经元。如下图所示的就是一种常见的“多层前馈神经网络”multi-layer feedforward neural每层神经元与下一层神经元全互连同层神经元之间不连接也不存在跨层连接。 “前馈” 并不意味着网络中信号不能反向传播而单纯是指网络拓扑结构上不存在环或回路。 5.3 误差反向传播算法 很明显多层神经网络的学习能力比单层网络单层感知机强得多。感知机参数的学习规则很简单因此其对于多层神经网络是不够用的由此诞生了强大的误差反向传播error BackPropagation简称 BP算法并使用至今现阶段的所有深度神经网络的参数都是由 BP 算法训练得到的。 反向传播指的是计算神经⽹络参数梯度的⽅法。总的来说反向传播依据微积分中的链式法则沿着从输出层到输⼊层的顺序依次计算并存储⽬标函数有关神经⽹络各层的中间变量以及参数的梯度。 前向传播输入层–输出层反向传播输出层–输入层。 下面通过前馈神经网络的 BP 算法来深入理解 BP 过程。 给定训练集 D(x1,y1),(x2,y2),...,(xm,ym),x∈Rd,yi∈RlD {(x_1, y_1), (x_2, y_2),...,(x_m, y_m)}, x \in \mathbb{R}^d, y_i \in \mathbb{R}^lD(x1​,y1​),(x2​,y2​),...,(xm​,ym​),x∈Rd,yi​∈Rl即每个输入样本都由 ddd 个属性表征模型输出的是 lll 维实值向量。为了便于 BP 算法的推导下图给出了一个拥有 ddd 个输入神经元、lll 个输出神经元、qqq 个隐层神经元的多层前馈神经网络其中输出层第 jjj 个神经元的阈值用 θj\theta_jθj​ 表示隐层第 hhh 个神经元的阈值用 γh\gamma_hγh​ 表示。输入层第 iii 个神经元与隐层第 hhh 个神经元之间的连接权重参数为 vihv_{ih}vih​隐层第 hhh 个神经元与输出层第 jjj 个神经元之间的连接权为 whjw_{hj}whj​。记隐层第 hhh 个神经元接收到的输入为 αh∑i1dvihxi\alpha_h \sum_{i1}^{d}v_{ih}x_iαh​∑i1d​vih​xi​输出层第 jjj 个神经元接收到的输入为 βj∑h1qwhjbh\beta_j \sum_{h1}^{q}w_{hj}b_hβj​∑h1q​whj​bh​其中 bhb_hbh​ 为隐层第 hhh 个神经元的输出。这里假设隐层和输出层神经元的激活函数都为 Sigmoid 函数。 对训练样本 (xk,yk)(x_k,y_k)(xk​,yk​)假设神经网络的输出为 y^k(y^1k,y^2k,...,y^lk)\hat{y}_k (\hat{y}_1^k,\hat{y}_2^k,...,\hat{y}_l^k)y^​k​(y^​1k​,y^​2k​,...,y^​lk​)即 y^jkf(βj−θj)(5.3)\hat{y}_j^k f(\beta_j - \theta_j)\tag{5.3} y^​jk​f(βj​−θj​)(5.3) 则网络在 (xk,yk)(x_k,y_k)(xk​,yk​) 上的均方误差损失为 Ek12∑j1l(y^jk−yk)2(5.4)E_k \frac{1}{2}\sum_{j1}^{l}(\hat{y}_j^k - y_k)^2\tag{5.4} Ek​21​j1∑l​(y^​jk​−yk​)2(5.4) 输入层到隐层需要 d×qd \times qd×q 个权重参数、隐层到输出层需要需要 q×lq \times lq×l 个权重参数以及 qqq 个隐层的神经元阈值、lll 个输出层的神经元阈值。BP 是一个迭代学习算法在迭代的每一轮中采用广义的感知机学习规则对参数进行更新估计因此任意参数 vvv 的更新估计表达式都可为 v←vΔv(5.5)v\leftarrow v \Delta v\tag{5.5} v←vΔv(5.5) 下面我会首先推导出隐层到输出层的权重 whjw_{hj}whj​ 更新公式而后类别推导 θj\theta_{j}θj​、vihv_{ih}vih​、γh\gamma_{h}γh​。 BP 算法是基于梯度下降gradient desent策略以目标的负梯度方向对参数进行调整对式(5.4)(5.4)(5.4)的误差 EkE_kEk​给定学习率 η\etaη可得权重参数更新公式如下 w←w−η∂Ek∂ww \leftarrow w -\eta \frac{\partial E_k}{\partial w} w←w−η∂w∂Ek​​ 同时 Δwhj−∂Ek∂whj(5.6)\Delta w_{hj} -\frac{\partial E_k}{\partial w_{hj}}\tag{5.6} Δwhj​−∂whj​∂Ek​​(5.6) 注意到 whjw_{hj}whj​ 先影响到第 jjj 个输出层神经元的输入值 βj\beta_jβj​再影响到其输出值 y^jk\hat{y}_j^ky^​jk​最后才影响到损失 EkE_kEk​根据梯度的链式传播法则有 ∂Ek∂whj∂Ek∂y^jk∂y^jk∂βj∂βj∂whj(5.7)\frac{\partial E_k}{\partial w_{hj}} \frac{\partial E_k}{\partial \hat{y}_j^k}\frac{\partial \hat{y}_j^k}{\partial \beta_j}\frac{\partial \beta_j}{\partial w_{hj}} \tag{5.7} ∂whj​∂Ek​​∂y^​jk​∂Ek​​∂βj​∂y^​jk​​∂whj​∂βj​​(5.7) 根据前面 βj\beta_jβj​ 的定义显然有 ∂βj∂whjbh(5.8)\frac{\partial \beta_j}{\partial w_{hj}} b_h \tag{5.8} ∂whj​∂βj​​bh​(5.8) 再因为 Sigmoid 函数的一个很好的性质 f′(x)f(x)(1−f(x))(5.9){f}(x) f(x)(1-f(x)) \tag{5.9} f′(x)f(x)(1−f(x))(5.9) 再联合式(5.3)(5.3)(5.3)和(5.4)(5.4)(5.4)有 −∂Ek∂y^jk∂y^jk∂βj−∂[12∑j1l(y^jk−yjk)2]∂y^jk∂[f(βj−θj)]∂βj−12×2(y^jk−yjk)f′(βj−θj)−(y^jk−yjk)f(βj−θj)[1−f(βj−θj)]−(y^jk−yjk)y^jk(1−y^jk)y^jk(1−y^jk)(yjk−y^jk)\begin{align} -\frac{\partial E_k}{\partial \hat{y}_j^k} \frac{\partial \hat{y}_j^k}{\partial \beta_j} -\frac{\partial \left [\frac{1}{2} \sum_{j1}^{l}(\hat{y}_{j}^{k} - y_{j}^{k})^{2}\right ]}{\partial \hat{y}_{j}^{k}} \frac{\partial \left [f(\beta_{j} - \theta_{j})\right ]}{\partial \beta_{j}} \nonumber \\ -\frac{1}{2}\times 2(\hat{y}_j^k - y_j^k) {f}(\beta_j - \theta_j) \nonumber \\ -(\hat{y}_j^k - y_j^k) f(\beta_j - \theta_j)\left [1-f(\beta_j - \theta_j)\right ] \nonumber\\ -(\hat{y}_j^k - y_j^k) \hat{y}_j^k (1-\hat{y}_j^k) \nonumber\\ \hat{y}_j^k (1-\hat{y}_j^k) (y_j^k - \hat{y}_j^k ) \tag{5.10} \end{align}−∂y^​jk​∂Ek​​∂βj​∂y^​jk​​​−∂y^​jk​∂[21​∑j1l​(y^​jk​−yjk​)2]​∂βj​∂[f(βj​−θj​)]​−21​×2(y^​jk​−yjk​)f′(βj​−θj​)−(y^​jk​−yjk​)f(βj​−θj​)[1−f(βj​−θj​)]−(y^​jk​−yjk​)y^​jk​(1−y^​jk​)y^​jk​(1−y^​jk​)(yjk​−y^​jk​)​(5.10)​ 注意这里的 fff 是 Sigmoid 函数。令 gjy^jk(1−y^jk)(yjk−y^jk)g_{j} \hat{y}_j^{k}(1-\hat{y}_j^{k})(y_{j}^{k} - \hat{y}_{j}^{k})gj​y^​jk​(1−y^​jk​)(yjk​−y^​jk​) 。将 gjg_{j}gj​ 和式 (5.8)(5.8)(5.8) 带入式 (5.6)(5.6)(5.6)就得到了 BP 算法中关于 whjw_{hj}whj​ 的更新公式 Δwhjηgjbh(5.11)\Delta w_{hj} \eta g_{j}b_{h} \tag{5.11} Δwhj​ηgj​bh​(5.11) 类似式 (5.10)(5.10)(5.10) 的推导过程可得其他参数的更新公式 Δθj−ηgj(5.12)\Delta \theta_j -\eta g_j \tag{5.12} Δθj​−ηgj​(5.12) Δvih−ηehxi(5.13)\Delta v_{ih} -\eta e_{h}x_{i} \tag{5.13} Δvih​−ηeh​xi​(5.13) Δθj−ηeh(5.14)\Delta \theta_j -\eta e_h \tag{5.14} Δθj​−ηeh​(5.14) vihv_{ih}vih​ 梯度的详细推导公式如下所示。因为 ∂Ek∂vih∑j1l∂Ek∂y^jk⋅∂y^jk∂βj⋅∂βj∂bh⋅∂bh∂αh⋅∂αh∂vih∑j1l∂Ek∂y^jk⋅∂y^jk∂βj⋅∂βj∂bh⋅∂bh∂αh⋅xi∑j1l∂Ek∂y^jk⋅∂y^jk∂βj⋅∂βj∂bh⋅f′(αh−γh)⋅xi∑j1l∂Ek∂y^jk⋅∂y^jk∂βj⋅whj⋅f′(αh−γh)⋅xi∑j1l(−gj)⋅whj⋅f′(αh−γh)⋅xi−f′(αh−γh)⋅∑j1lgj⋅whj⋅xi−bh(1−bh)⋅∑j1lgj⋅whj⋅xi−eh⋅xi\begin{aligned} \cfrac{\partial E_k}{\partial v_{ih}} \sum_{j1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot \cfrac{\partial \beta_j}{\partial b_h} \cdot \cfrac{\partial b_h}{\partial \alpha_h} \cdot \cfrac{\partial \alpha_h}{\partial v{ih}} \\ \sum_{j1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot \cfrac{\partial \beta_j}{\partial b_h} \cdot \cfrac{\partial b_h}{\partial \alpha_h} \cdot x_i \\ \sum_{j1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot \cfrac{\partial \beta_j}{\partial b_h} \cdot f^{\prime}(\alpha_h-\gamma_h) \cdot x_i \\ \sum_{j1}^{l} \cfrac{\partial E_k}{\partial \hat{y}_j^k} \cdot \cfrac{\partial \hat{y}_j^k}{\partial \beta_j} \cdot w_{hj} \cdot f^{\prime}(\alpha_h-\gamma_h) \cdot x_i \\ \sum_{j1}^{l} (-g_j) \cdot w_{hj} \cdot f^{\prime}(\alpha_h-\gamma_h) \cdot x_i \\ -f^{\prime}(\alpha_h-\gamma_h) \cdot \sum_{j1}^{l} g_j \cdot w_{hj} \cdot x_i \\ -b_h(1-b_h) \cdot \sum_{j1}^{l} g_j \cdot w_{hj} \cdot x_i \\ -e_h \cdot x_i \end{aligned}∂vih​∂Ek​​​j1∑l​∂y^​jk​∂Ek​​⋅∂βj​∂y^​jk​​⋅∂bh​∂βj​​⋅∂αh​∂bh​​⋅∂vih∂αh​​j1∑l​∂y^​jk​∂Ek​​⋅∂βj​∂y^​jk​​⋅∂bh​∂βj​​⋅∂αh​∂bh​​⋅xi​j1∑l​∂y^​jk​∂Ek​​⋅∂βj​∂y^​jk​​⋅∂bh​∂βj​​⋅f′(αh​−γh​)⋅xi​j1∑l​∂y^​jk​∂Ek​​⋅∂βj​∂y^​jk​​⋅whj​⋅f′(αh​−γh​)⋅xi​j1∑l​(−gj​)⋅whj​⋅f′(αh​−γh​)⋅xi​−f′(αh​−γh​)⋅j1∑l​gj​⋅whj​⋅xi​−bh​(1−bh​)⋅j1∑l​gj​⋅whj​⋅xi​−eh​⋅xi​​ 所以 Δvih−η∂Ek∂vihηehxi\Delta v_{ih} -\eta \cfrac{\partial E_k}{\partial v_{ih}} \eta e_h x_i Δvih​−η∂vih​∂Ek​​ηeh​xi​ 最后一层激活使用 softmax 激活和交叉熵损失函数的反向传播推导可参考这里。 学习率 η∈(0,1)\eta \in (0,1)η∈(0,1) 控制着算法每一轮迭代中更新的步长若太大则容易振荡太小则收敛速度幽会过慢。有时为了做精细调节可令式(5.11)(5.11)(5.11)与(5.12)(5.12)(5.12)使用 η1\eta_1η1​ 式(5.13)(5.13)(5.13)与(5.14)(5.14)(5.14)使用 η2\eta_2η2​两者未必相等。 下图给出了 BP 算法的工作流程 对每个训练样本BP 算法操作流程如下 前向传播:将输入样本输入给输入神经元然后逐层将信号前向传播直到输出层产生结果。反向传播计算输出层的误差沿着输出层到输入层的顺序依次计算并存储损失函数有关各层的中间变量及参数梯度并对参数进行调整。12 过程循环进行直到达到某些停止条件为止如训练误差已达到一个很小的值。 停止条件与缓解 BP 过拟合的策略有关。 值得注意的是BP 算法的目标是要最小化训练集 DDD 上的累计误差 E1m∑k1mEk(5.16)E \frac{1}{m}\sum_{k1}{m}E_k\tag{5.16} Em1​k1∑​mEk​(5.16) 但是我们前面描述的“标准 BP 算法”的计算过程其实每次仅针对一个训练样本更新连接权重和阈值的因此图5.8中算法发更新规则同样也是基于单个 EkE_kEk​ 推导而得的。如果类似地推导出基于累计误差最小化的更新规则就得到了累计误差反向传播accumulated error backpropagation算法。 一般来说标准 BP 算法每次更新仅针对单个样本参数更新很频繁而且不同样本对进行更新的效果可能出现“抵消”现象。因此为了达到同样的累计误差极小点标准 BP 算法往往需要进行更多次数的迭代。而累计 BP 算法直接将累计误差最小化它是在读取整个训练集 DDD 一遍one epoch后才对神经网络各层权重参数进行更新其参数更新频率低得多。但是在很多任务中累计误差下降到一定程度后进一步下降会非常缓慢这是标准 BP 往往会更快获得较好的解尤其是在训练集 DDD 非常大时很明显。 标准 BP 算法和累计 BP 算法的区别类似于随机梯度下降stochastic gradient descent简称 SGD与标准梯度下降之间的区别。 [Hornik et al.,1989] 证明只需一个包含足够多神经元的隐层即深度神经网络层数足够多多层前馈神经网络就能以任意精度逼近任意复杂度的连续函数。但是深度神经网络层数的选择依然是一个未决问题在实际应用中通常依靠“试错法”trial-by-error调整。 因为神经网络的表示能力太过强大因此 BP 神经网络在训练过程中经常遭遇过拟合即训练误差持续降低但验证集误差却可能上升。目前常用来缓解 BP 网络过拟合问题的策略有以下两种 第一种策略是“早停”early stopping:将数据分为训练集和验证集训练集用来更新权重参数验证集用来估计误差若训练集误差降低但验证集误差升高则停止训练同时返回具有最小验证集误差的权重参数模型。 第二种策略是“正则化”regulazation其基本思想是在误差目标函数中增加一个用于描述网络复杂度的部分例如连接权重与阈值的平方和。仍令 EkE_kEk​ 表示第 kkk 个训练样本上的误差wiw_iwi​表示连接权重和阈值则误差目标函数(5.16)(5.16)(5.16)更改为 Eλ1m∑kmEk(1−λ)∑iwi2(5.17)E \lambda \frac{1}{m}\sum_k^m E_k (1- \lambda)\sum_{i} w_i^2 \tag{5.17} Eλm1​k∑m​Ek​(1−λ)i∑​wi2​(5.17) 其中 λ∈(0,1)\lambda \in (0,1)λ∈(0,1)用于对经验误差与网络复杂度这两项进行折中常通过交叉验证法估计。 常用的刻画模型复杂度 R(w)R(w)R(w) 的函数有两种一种是 L1L1L1 正则化即绝对值的之和另一种是 L2L2L2 正则化即绝对值平方之和计算公式如下 R(w)∣∣w∣∣1∑i∣wi∣R(w)∣∣w∣∣2∑i∣wi2∣R(w) ||w||_1 \sum_i|w_i| \\ R(w) ||w||_2 \sum_i|w_i^2| R(w)∣∣w∣∣1​i∑​∣wi​∣R(w)∣∣w∣∣2​i∑​∣wi2​∣ 无论是哪一种正则化其基本思想都是希望通过限制权重的大小使得模型不能任意拟合训练数据中随机噪声。L1L1L1 与 L2L2L2 有很大区别L1L1L1 正则化会让参数变得更加稀疏而 L2L2L2 不会。所谓参数变得更加稀疏是指会有更多的参数变为 0这样可以达到类似特征选取的功能。 L2范数正则化regularization等价于权重衰减的概念。 5.4 全局最小与局部最小 若用 EEE 表示神经网络在训练集上的误差则它显然是关于连接权重 www 和阈值 θ\thetaθ 的函数。此使神经网络的训练过程可看作是一个参数寻优的过程即在参数空间中寻找一组最优参数使得 EEE 最小。 显然参数空间内梯度为零的点只要其误差函数值小于零点的误差函数值就是局部极小点可能存在多个局部极小值但有且仅有一个全局最小值。 基于梯度的搜索是使用最为广泛的参数寻优方法。在这类方法中一般先从参数随机初始解出发迭代寻找最优参数解。每次迭代我们先计算误差函数在当前点的梯度然后根据梯度确定搜索方向。例如由于负梯度方向是函数值下降最快的方向因此梯度下降法就是沿着负梯度方向搜索最优解。若误差函数在当前点的梯度为零则已达到局部极小参数更新量也将为零也意味着参数的迭代更新将在此停止。 在现实任务中我们常用以下启发式策略非理论策略来试图“跳出”局部极小从而进一步接近全局最小 以多组不同参数值初始化多个神经网络按标准方法训练后取其中最小的解作为最终参数。使用”模拟退火“simulated annealing技术。模拟退火在每一步都以一定的概率接受比当前解更差的结果从而有助于”跳出“局部极小。在每次迭代过程中接收”次优解“的概率要随着时间的推移而逐渐降低从而保证算法的稳定性。使用随机梯度下降算法。 5.5 其他常见神经网络 2010 年之前常见的神经网络有 RBF 网络、ART 网络、SOM 网络、级联相关网络、Elman网络、Boltzmann 机。 5.6 深度学习 典型的深度学习模型就是很深层层数很多的神经网络。值得注意的是从增加模型复杂度的角度来看增加隐藏层的数目显然比增加隐藏层神经元的数目更有效即网络的“深”比“宽”重要。因为隐藏层层数的增加不仅增加了拥有激活函数神经元的数目还增加了激活函数嵌套的层数即非线性能力进一步增强。 第 9 章 聚类 9.1 聚类任务 在“无监督学习”中训练样本是无标签信息的目标是通过对无标记训练样本的学习来揭示数据的内在性质和规律为进一步的数据分析提供基础。这类学习任务中应用最广的就是“聚类”clustering算法其他的无监督学习任务还有密度估计density estimation、异常检测anomaly detection等。 聚类的任务是将数据集中的样本划分为若干个通常是不相交的子集每个子集称为一个“簇”cluster簇所对应的概念和语义由使用者来把握。 聚类可用作其他学习任务的一个前驱过程。基于不同的学习策略有着多种类型的聚类算法聚类算法涉及的两个基本问题是性能度量和距离计算。 9.2 性能度量 聚类性能度量也叫聚类“有效性指标”validity index和监督学习的性能度量作用类似都是用来评估算法的好坏同时也是聚类过程中的优化目标。 聚类性能度量大致有两类。一类是将聚类结果与某个“参考模型reference model”进行比较称为“外部指标external index”另一类是直接考察聚类结果而不利用任何参考模型称为“内部指标”inderna index。 外部指标包括 Jaccard 指数简称 JC、FM 指数简称 FMI和 Rand 指数简称 RI范围在 [0,1] 之间且越大越好内部指标包括 DB 指数简称 DBI和 Dunn 指数简称 DIDBI 值越小越好DI 越大越好。 具体计算公式太多了这里不给出可以参考原书 199 页。 9.3 距离计算 函数 dist(⋅,⋅)dist(\cdot,\cdot)dist(⋅,⋅) 用于计算两个样本之间的距离如果它是一个“距离度量”distance measure则需满足一些基本性质 非负性dist(xi,xj)≥0dist(x_i,x_j) \geq 0dist(xi​,xj​)≥0同一性dist(xi,xj)0dist(x_i,x_j)0dist(xi​,xj​)0 当前仅当 xixjx_i x_jxi​xj​对称性dist(xi,xj)dist(xj,xi)dist(x_i,x_j) dist(x_j,x_i)dist(xi​,xj​)dist(xj​,xi​)直递性dist(xi,xj≥dist(xi,xk)dist(xk,xj))dist(x_i,x_j \geq dist(x_i,x_k) dist(x_k,x_j))dist(xi​,xj​≥dist(xi​,xk​)dist(xk​,xj​))。 给定样本 xi(xi1;xi2;...;xin)x_i (x_{i1};x_{i2};...;x_{in})xi​(xi1​;xi2​;...;xin​) 与 xj(xj1;xj2;...;xjn)x_j (x_{j1};x_{j2};...;x_{jn})xj​(xj1​;xj2​;...;xjn​)最常用的是“闵可夫斯距离”Minkowski distance。 distmk(xi,xj)(∑u1n∣xiu−xju∣p)1pdist_{mk}(x_i,x_j) (\sum_{u1}^{n}\left | x_{iu} - x_{ju} \right |^p)^\frac{1}{p} distmk​(xi​,xj​)(u1∑n​∣xiu​−xju​∣p)p1​ 上式其实就是 xi−xjx_i - x_jxi​−xj​ 的 LpL_pLp​ 范数 ∥xi−xj∥p\left \| x_i - x_j \right \|_p∥xi​−xj​∥p​。p2p 2p2上式为欧氏距离。 属性通常划分为“连续属性”continuous attribute和“离散属性”categotical attribute前者在定义域上有无穷多个可能的取值后者在定义域上是有限个取值。但是在涉及距离计算时属性上定义了“序”更为重要。能直接在属性上计算距离“1” 和 “2” 比较近、和“4”比较远这样的属性称为“有序属性”ordinal attribute 而定义域为{汽车、人、椅子}这样的离散属性则不能直接在属性上计算距离称为“无序属性”non-ordinal atribute。显然闵可夫斯距离可用于有序属性。 对无序属性采用 VDMValue Difference Metric同时将闵可夫斯距离和 VDM 集合可处理混合属性。 9.4 原型聚类 原型聚类算法假设聚类结构能通过一组原型刻画这里的原型是指样本空间中具有代表性的点。一般算法先对原型进行初始化然后对原型进行迭代更新求解。采用不同的原型表示、不同的求解方式将产生不同的算法。 9.4.1 k 均值算法 K-Means 算法的思想很简单对于给定的样本集按照样本之间的距离大小将样本集划分为 KKK 个簇让簇内的点尽量紧密的连在一起而让簇间的距离尽量的大。 给定样本集 D{x1,x2,...,xm}D \{x_1, x_2,...,x_m\}D{x1​,x2​,...,xm​}假设簇划分为 C{C1,C2,...,Cm}C \{C_1,C_2,...,C_m\}C{C1​,C2​,...,Cm​}算法目标是最小化平方误差。 E∑i1k∑x∈Ci∥x−ui∥22E \sum_{i1}^{k}\sum_{x \in C_{i}}\left \| x - u_i \right \|_2^2 Ei1∑k​x∈Ci​∑​∥x−ui​∥22​ 其中 ui1Ci∑x∈Cixu_i\frac{1}{C_i}\sum_{x \in C_{i}}xui​Ci​1​∑x∈Ci​​x 是簇 CiC_iCi​ 的均值向量也称质心。上式一定程度上刻画了簇内样本围绕簇均值向量的紧密程度EEE 值越小簇内样本相似程度越高。 找到 EEE 的最优解需要靠擦样本集 DDD 所有可能的簇划分这是一个 NPNPNP 难问题。kkk 均值算法采用了贪心策略通过迭代优化近似求解算法流程如图 9.2 所示。其中第 1 行对均值向量进行初始化4-8 行与 9-16 行依次对当前簇划分即均值向量迭代更新若更新后聚类结果保持不变则在第 18 行将当前簇划分结果返回。 参考此文章的代码我修改为如下精简版的 K-Means 算法代码。 def kmeans(dataset, k):K-means 聚类算法Args:dataset ([ndarray]): 数据集二维数组k ([int]): 聚簇数量m np.shape(dataset)[0] # 样本个数# 1, 随机初始化聚类中心点center_indexs random.sample(range(m), k)center dataset[center_indexs,:]cluster_assessment np.zeros((m, 2))cluster_assessment[:, 0] -1 # 将所有的类别置为 -1cluster_changed True while cluster_changed:cluster_changed False# 4-8计算样本x_i与各聚类中心的距离根据距离最近的聚类中心确定x_j的簇标记并将对应样本x_i划入相应的簇for i in range(m):# 初始化样本和聚类中心的距离及样本对应簇min_dist infc 0# 确定每一个样本离哪个中心点最近和属于哪一簇for j in range(k):dist distEclud(dataset[i,:], center[j,:])if dist min_dist:min_dist distc i# 更新样本所属簇if cluster_assessment[i, 0] ! c: # 仍存在数据在前后两次计算中有类别的变动未达到迭代停止要求cluster_assessment[i, :] c, min_dist # 更新样本所属簇cluster_changed True# 9-16 更新簇中心点位置for j in range(k):changed_center dataset[cluster_assessment[:,0] j].mean(axis0)center[j,:] changed_centerreturn cluster_assessment, centerif __name__ __main__:x1 np.random.randint(0, 50, (50, 2))x2 np.random.randint(40, 100, (50, 2))x3 np.random.randint(90, 120, (50, 2))x4 np.random.randint(110, 160, (50, 2))test np.vstack((x1, x2, x3, x4))# 对特征进行聚类result, center kmeans(test, 4, is_kmeansFalse, is_randomFalse)print(center) # 打印簇类中心点参考资料 《机器学习》-周志华
文章转载自:
http://www.morning.sxhdzyw.com.gov.cn.sxhdzyw.com
http://www.morning.nqxdg.cn.gov.cn.nqxdg.cn
http://www.morning.mlwpr.cn.gov.cn.mlwpr.cn
http://www.morning.qftzk.cn.gov.cn.qftzk.cn
http://www.morning.npfkw.cn.gov.cn.npfkw.cn
http://www.morning.ftcrt.cn.gov.cn.ftcrt.cn
http://www.morning.tkchg.cn.gov.cn.tkchg.cn
http://www.morning.yzzfl.cn.gov.cn.yzzfl.cn
http://www.morning.brlgf.cn.gov.cn.brlgf.cn
http://www.morning.xdjwh.cn.gov.cn.xdjwh.cn
http://www.morning.srzhm.cn.gov.cn.srzhm.cn
http://www.morning.zlwg.cn.gov.cn.zlwg.cn
http://www.morning.nyqnk.cn.gov.cn.nyqnk.cn
http://www.morning.ympcj.cn.gov.cn.ympcj.cn
http://www.morning.sjwws.cn.gov.cn.sjwws.cn
http://www.morning.ylqb8.cn.gov.cn.ylqb8.cn
http://www.morning.cyfsl.cn.gov.cn.cyfsl.cn
http://www.morning.jbtzx.cn.gov.cn.jbtzx.cn
http://www.morning.hrypl.cn.gov.cn.hrypl.cn
http://www.morning.mmsf.cn.gov.cn.mmsf.cn
http://www.morning.qrlsy.cn.gov.cn.qrlsy.cn
http://www.morning.yrpg.cn.gov.cn.yrpg.cn
http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn
http://www.morning.yysqz.cn.gov.cn.yysqz.cn
http://www.morning.btblm.cn.gov.cn.btblm.cn
http://www.morning.kfwqd.cn.gov.cn.kfwqd.cn
http://www.morning.lqgtx.cn.gov.cn.lqgtx.cn
http://www.morning.fwrr.cn.gov.cn.fwrr.cn
http://www.morning.rhdqz.cn.gov.cn.rhdqz.cn
http://www.morning.msgnx.cn.gov.cn.msgnx.cn
http://www.morning.skdrp.cn.gov.cn.skdrp.cn
http://www.morning.rjcqb.cn.gov.cn.rjcqb.cn
http://www.morning.fwblh.cn.gov.cn.fwblh.cn
http://www.morning.jwfqq.cn.gov.cn.jwfqq.cn
http://www.morning.qlckc.cn.gov.cn.qlckc.cn
http://www.morning.zlnmm.cn.gov.cn.zlnmm.cn
http://www.morning.whnps.cn.gov.cn.whnps.cn
http://www.morning.qpqcq.cn.gov.cn.qpqcq.cn
http://www.morning.bszmy.cn.gov.cn.bszmy.cn
http://www.morning.pwdgy.cn.gov.cn.pwdgy.cn
http://www.morning.rykx.cn.gov.cn.rykx.cn
http://www.morning.dwrjj.cn.gov.cn.dwrjj.cn
http://www.morning.mtrrf.cn.gov.cn.mtrrf.cn
http://www.morning.bnlch.cn.gov.cn.bnlch.cn
http://www.morning.lpnb.cn.gov.cn.lpnb.cn
http://www.morning.tgyzk.cn.gov.cn.tgyzk.cn
http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn
http://www.morning.kjdxh.cn.gov.cn.kjdxh.cn
http://www.morning.jxfsm.cn.gov.cn.jxfsm.cn
http://www.morning.bpwdc.cn.gov.cn.bpwdc.cn
http://www.morning.gfpyy.cn.gov.cn.gfpyy.cn
http://www.morning.tdgwg.cn.gov.cn.tdgwg.cn
http://www.morning.zbqry.cn.gov.cn.zbqry.cn
http://www.morning.tfwr.cn.gov.cn.tfwr.cn
http://www.morning.gmztd.cn.gov.cn.gmztd.cn
http://www.morning.slwfy.cn.gov.cn.slwfy.cn
http://www.morning.zrlms.cn.gov.cn.zrlms.cn
http://www.morning.gzgwn.cn.gov.cn.gzgwn.cn
http://www.morning.pznhn.cn.gov.cn.pznhn.cn
http://www.morning.rhkq.cn.gov.cn.rhkq.cn
http://www.morning.ygqjn.cn.gov.cn.ygqjn.cn
http://www.morning.fdxhk.cn.gov.cn.fdxhk.cn
http://www.morning.gtxrw.cn.gov.cn.gtxrw.cn
http://www.morning.ggfdq.cn.gov.cn.ggfdq.cn
http://www.morning.qpfmh.cn.gov.cn.qpfmh.cn
http://www.morning.mftdq.cn.gov.cn.mftdq.cn
http://www.morning.bxyzr.cn.gov.cn.bxyzr.cn
http://www.morning.drhnj.cn.gov.cn.drhnj.cn
http://www.morning.yckwt.cn.gov.cn.yckwt.cn
http://www.morning.zyffq.cn.gov.cn.zyffq.cn
http://www.morning.lmxrt.cn.gov.cn.lmxrt.cn
http://www.morning.dbtdy.cn.gov.cn.dbtdy.cn
http://www.morning.kryn.cn.gov.cn.kryn.cn
http://www.morning.swkpq.cn.gov.cn.swkpq.cn
http://www.morning.jbfzx.cn.gov.cn.jbfzx.cn
http://www.morning.fwkjp.cn.gov.cn.fwkjp.cn
http://www.morning.fchkc.cn.gov.cn.fchkc.cn
http://www.morning.plqkz.cn.gov.cn.plqkz.cn
http://www.morning.cpmwg.cn.gov.cn.cpmwg.cn
http://www.morning.fsrtm.cn.gov.cn.fsrtm.cn
http://www.tj-hxxt.cn/news/274942.html

相关文章:

  • 做金融网站违法吗网站建设制作软件
  • 企业站seo网站收录查询网
  • 做网站的时候怎么设置背景中国建筑查询网
  • 企业门户网站建设管理制度镇江网站seo
  • 苏州高端做网站怎么做属于自己的网址
  • 手机 网站服务器使用nas服务器建设网站
  • 上海高端网站广州最新重大新闻
  • 网站服务器怎么更换学校网站怎么做推广
  • 网站导购话术湖州网站建设有哪些
  • 会python做网站福清建设局网站
  • 公司网站备案需要哪些网站后台有显示前台没有
  • 网站开发公司交易流程重庆秀山网站建设公司
  • 携程网站建设状况杭州电子商务网站开发
  • 制作商城网站模板php网站建设填空题
  • 社交网站的设计wordpress 4.8.2中文
  • wordpress个人网站赚钱创建大型网站
  • 平台开发多少钱优化网站平台
  • 技术支持 广州网站建设网站开发代码h5
  • 网站 建设平台分析报告网站建设教程试题
  • 后台网站设计淘宝运营学习
  • 企业网站平台如何做网络推广网站建设销售简历
  • 做企业内刊有哪些网站推荐看不到的网站
  • 宝盒 网站wordpress怎么发布文章
  • 蛋糕 网站 模板企业邮箱腾讯登录入口
  • 淮北网站开发公司南京环力建设有限公司网站
  • 关于网站建设项目创业计划书写作参考范文网站
  • 文化传媒有限公司网站建设网站目录权限设置 user
  • 网站换程序邯郸公司网站建设
  • 网站建设网络推广的好处wordpress主题开发博客
  • 东莞中高端网站建设网站制作教程:初学者