二级域名对于英文网站推广有什么影响做网站申请完空间后下一步干啥

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

二级域名对于英文网站推广有什么影响,做网站申请完空间后下一步干啥,租服务器多少钱,wordpress4.9.x火车头发布课程开源地址及相关视频链接#xff1a;#xff08;当然这里也希望大家支持一下正版西瓜书和南瓜书图书#xff0c;支持文睿、秦州等等致力于开源生态建设的大佬✿✿ヽ(▽)ノ✿#xff09; Datawhale-学用 AI,从此开始 【吃瓜教程】《机器学习公式详解》#xff08;南瓜…课程开源地址及相关视频链接当然这里也希望大家支持一下正版西瓜书和南瓜书图书支持文睿、秦州等等致力于开源生态建设的大佬✿✿ヽ(°▽°)ノ✿ Datawhale-学用 AI,从此开始 【吃瓜教程】《机器学习公式详解》南瓜书与西瓜书公式推导_哔哩哔哩_bilibili 正文部分 决策树是一种有监督的机器学习算法可用于解决分类和回归问题是使用分支方法说明决策的所有可能结果的图可理解为实现某一特定结果的决策随机森林是基于树的机器学习算法是随机创造的决策树组成的森林该算法利用了多棵决策树来进行决策是用于分类、回归和其他任务的集成学习方法输出结果是将单个决策树的输出整合起来生成最后的输出结果。主要区别 输出结果不同复杂度不同 决策树的一些优点是 易于理解和解释。树可以可视化。 需要很少的数据准备。其他技术通常需要数据归一化需要创建虚拟变量并删除空白值。一些树和算法组合支持 缺失值。 使用树的成本即预测数据与用于训练树的数据点的数量的对数成正比。 能够处理数值数据和分类数据。但是scikit-learn 实现目前不支持分类变量。其他技术通常专门用于分析仅包含一种变量类型的数据集。有关更多信息请参阅 算法。 能够处理多输出问题。 使用白盒模型。如果在模型中观察到特定情况则该条件的解释可以通过布尔逻辑轻松解释。相比之下在黑盒模型例如在人工神经网络中结果可能更难解释。 可以使用统计检验来验证模型。这使得可以考虑模型的可靠性。 即使其假设在一定程度上被生成数据的真实模型所违反也能表现良好。
决策树的缺点包括 决策树学习器可以创建过度复杂的树这些树不能很好地概括数据。这被称为过拟合。为了避免这个问题需要使用修剪、设置叶节点所需的最小样本数或设置树的最大深度等机制。 决策树可能不稳定因为数据中的微小变化可能会导致生成完全不同的树。这个问题可以通过在集成中使用决策树来缓解。 决策树的预测既不平滑也不连续而是如上图所示的分段常数逼近。因此它们不擅长外推。 学习最优决策树的问题在几个方面包括最优性和简单概念都是已知的 NP 完全问题。因此实际的决策树学习算法基于启发式算法例如贪婪算法在每个节点上做出局部最优决策。此类算法不能保证返回全局最优决策树。这可以通过在集成学习器中训练多棵树来缓解其中特征和样本是随机抽取并替换的。 有一些概念很难学习因为决策树不容易表达它们例如 XOR、奇偶校验或多路复用器问题。 如果某些类占主导地位决策树学习器会创建有偏差的树。因此建议在使用决策树拟合之前平衡数据集。
决策树算法的主要步骤 1选择最优属性根节点 决策树判断一个属性是不是当前数据集的最优属性是依靠信息熵变化的程度来选择的。选择某个属性依照这个属性的值对训练集进行划分划分后的子训练集的信息熵之和相比未分割前的数据集信息熵下降最多的就是当前的最优属性。也就是说根据这个属性我们就可以对数据集进行很大程度上的区分例如猫和狗之间用耳朵区分非常快。 2生成决策树。叶子节点的选择 选取最优属性后根据此属性的取值对原始数据集划分得到子数据集再将每个子数据集当作完整数据集迭代进行最优属性的选取直到数据集中样本都是同一个分类标签时决策树生成过程结束。 有时根据场景业务需求的不同也不要求数据集分割到无法再分类的程度而是指定迭代的次数即决策树到第几层就不再分割了直接把当前叶子数据集中数量最多的分类标签作为叶子节点。这是不同的停止规则。 而决策树的三种常见算法则是根据选择最优属性时计算的信息熵函数不同划分的。ID3 是根据信息熵C4.5是根据信息增益率。CART是采用了基尼Gini系数。 3剪枝防止过拟合 剪枝就是给决策树瘦身这一步想实现的目标就是不需要太多的判断同样可以得到不错的结果。 之所以这么做是为了防止“过拟合”Overfitting现象的发生。 过拟合指的是模型的训练结果“太好了”以至于在实际应用的过程中会存在“死板”的情况导致分类错误。 欠拟合指的是模型的训练结果不理想。 数据集为 input [[0.697, 0.460, 1], [0.774, 0.376, 1], [0.634, 0.264, 1], [0.608, 0.318, 1], [0.556, 0.215, 1], [0.403, 0.237, 1], [0.481, 0.149, 1], [0.437, 0.211, 1], [0.666, 0.091, 0], [0.243, 0.267, 0], [0.245, 0.057, 0], [0.343, 0.099, 0], [0.639, 0.161, 0], [0.657, 0.198, 0], [0.360, 0.370, 0], [0.593, 0.042, 0], [0.719, 0.103, 0]] pandas决策树的构建涉及到数据集的一些操作利用pandas的DataFrame数据结构可以很好方便的完成 copy :在递归时浅拷贝会导致问题,使用copy.deepcopy()进行深拷贝 matplot.pyplot:绘制决策树的划分图像 import pandas as pd import copy import matplotlib.pyplot as plt import numpy as np from math import fabs 定义回归树的节点类Node attrList 节点剩下的属性列表 Dataset 节点划分到的数据集 left/right 左右子树 c 叶节点的预测值 description 该节点的描述可选 attr 该节点划分属性 s 划分属性的值 class Node:def init(self, description, c -1, Datasetpd.DataFrame(), attrList[]):self.attrList attrListself.Dataset Datasetself.left Noneself.right Noneself.c cself.attr self.s -1self.desciption description 损失函数计算 def loss(attr, s, data):D1 data[data[attr] s]D1_mean D1[label].std() * D1.sizeD2 data[data[attr] s]D2_mean D2[label].std() * D2.sizereturn D1_mean D2_mean def findOptDiv(root):losses []for attr in root.attrList:for s in root.Dataset[attr]:losses.append((loss(attr, s, root.Dataset), attr, s))minLoss min(losses)return minLoss 二叉树的构建 在以下情况返回IF len(attrList) 0此时所有属性已经划分完毕 就以该集合所有样本的label的均值作预测值 Dataset.size 1此时该节点的样本仅有一个 就 以该样本的label值做预测值 ELSE 将样本按最优划分划分为两个集合D1D2并分别构建subTree def buildTree(root):# if root.Dataset.size() 1:# description leaf node# c_p root.Dataset[label].mean()# leaf Node(descriptiondescription, c cp) # 如果样本集合中只有一个样本那么该节点为叶节点该叶节点的预测值是该唯一样本的labelif root.Dataset.size 1:root.c root.Dataset[label]return# 如果已经将属性分完了那么该节点为叶节点剩下的样本集中label的期望为该叶节点的预测值elif len(root.attrList) 0:root.description leaf noderoot.c root.Dataset[label].mean()return else:# 找到最优化分(, attr, s) findOptDiv(root)# 将节点的划分属性设为找到的attrroot.attr copy.deepcopy(attr)# 将按属性attr划分该节点值划分值s设为最优的sroot.s copy.deepcopy(s)# 将样本集合按照找到的最优化分划分为D1 D2D1 copy.deepcopy(root.Dataset[root.Dataset[attr] s])D2 copy.deepcopy(root.Dataset[root.Dataset[attr] s])# 将划分该节点属性从属性集合中删除list_notremoved copy.deepcopy(root.attrList)root.attrList.remove(attr)list_removed copy.deepcopy(root.attrList)root.attrList copy.deepcopy(list_notremoved)# 构建左子树和右子树root.left Node(Dataset D1, attrListcopy.deepcopy(list_removed))root.right Node(Dataset D2, attrListcopy.deepcopy(list_removed))buildTree(root.left)buildTree(root.right)return root 可以大致看出决策过程 先看含糖率 小于.13 小于.666 坏瓜大于.666 好瓜大于.13 小于.697 0.6的概率是好瓜大于.697 1的概率是好瓜 参考文献 算法——感知机详解推导证明 数学基础-机器学习 1.10. Decision Trees — scikit-learn 1.5.2 documentation