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

做电商网站的设计思路有什么基础建设的意义

做电商网站的设计思路有什么,基础建设的意义,校内 实训网站 建设方案,安徽建筑工程信息网查询作者#xff1a;Jason Brownlee编译#xff1a;Florence Wong – AICUG本文系AICUG翻译原创#xff0c;如需转载请联系(微信号#xff1a;834436689)以获得授权在对不可见示例进行预测时#xff0c;模型评估涉及使用可用的数据集来拟合模型#xff0c;并评估其表现性能。…作者Jason Brownlee编译Florence Wong – AICUG本文系AICUG翻译原创如需转载请联系(微信号834436689)以获得授权在对不可见示例进行预测时模型评估涉及使用可用的数据集来拟合模型并评估其表现性能。这是一个具有挑战性的问题因为用于拟合模型的训练数据集和用于评估模型的测试集都必须足够大并对潜在问题具有代表性从而可使对模型性能的最终估计不会过于乐观或悲观。用于模型评估的两种最常用的方法是训练/测试拆分和k折k-fold交叉验证。尽管这两种方法都可能导致误导性结果并且在对严重不平衡的分类问题上进行使用时有可能会失败但是这两种方法通常都非常有效。在本教程中您将发现如何评估不平衡数据集上的分类器模型。完成本教程后您将知道使用训练/测试拆分和交叉验证在数据集上评估分类器时的挑战。当评估不平衡数据集上的分类器时一个k-折交叉验证和训练测试拆分的朴素应用将如何失败。修改后的k折交叉验证和训练测试拆分 如何用于保留数据集中的类分布。教程概述本教程分为三个部分他们是评估分类器的挑战k折叠交叉验证的失败为不平衡分类修正交叉验证 评估分类器的挑战评估一个分类模型具有挑战性因为在使用模型之前我们不知道模型有多好。相反我们必须使用已有目标或结果的可用数据来估计模型的表现性能。模型评估不仅仅涉及评估一个模型还包括测试不同的数据准备方案不同的学习算法以及针对性能良好的学习算法的不同超参数。模型数据准备学习算法超参数理想情况下可以选择和使用得分最高根据你选择的测度的模型构建过程数据准备学习算法和超参数。最简单的模型评估过程是将数据集分为两部分其中一部分用于训练模型第二部分用于测试模型。这样数据集的各个部分分别以其功能训练集和测试集命名。如果您收集的数据集非常大且能代表问题则此方法有效。所需的示例数量因问题而异但可能是数千数十万或数百万个示例才够用。训练和测试的分割比例为50/50是理想的尽管偏斜的分割比例比较普遍例如训练和测试组合的分割比例为67/33或80/20。我们很少有足够的数据从而可以通过使用模型的训练/测试拆分评估来获得对性能的无偏差估计。取而代之的是我们的数据集通常比首选数据集小得多并且必须在该数据集上使用重采样策略。分类器最常用的模型评估方案是10折(10-folds)交叉验证。k折交叉验证过程涉及分割训练数据集成ķ部分。前k-1个用于训练模型第k个保留的部分用作测试集。重复此过程每个部分都有机会用作保留的测试集。总共对k个模型进行拟合和评估取其平均值计算得到模型的性能。与单次训练/测试划分相比该方法可显示出在较小训练数据集上模型的不足乐观的性能估计。k 10的值显示在多种不同大小的数据集和模型类型上有效。k折叠交叉验证失败可悲的是k折交叉验证不适用于评估不平衡的分类器。“在分类不平衡的情况下即使偏斜的极端程度以前考虑要小十​​倍交叉验证尤其是机器学习中最常用的错误估计方法也很容易崩溃。”—第188页不平衡的学习基础算法和应用2013年。原因是数据被分成具有均匀概率分布的k部分。这对于具有平衡类分布的数据可能会很好但是当分布严重偏斜时一部分或多部分折叠可能会出现极少数类的样本很少甚至没有。这意味着某些或许多模型评估会产生误导因为模型的需求仅是正确预测多数类。我们可以用一个例子来具体说明。首先我们可以定义一个1100的少数对比多数类分布的数据集。这可以通过使用make_classification函数来创建综合数据集指定示例数1,000个类数2个以及每个类的权重99和1来实现。# generate 2 class dataset 下面的示例生成综合二进制分类数据集并总结类分布。# create a binary classification dataset from numpy import unique from sklearn.datasets import make_classification # generate 2 class dataset X, y make_classification(n_samples1000, n_classes2, weights[0.99, 0.01], flip_y0, random_state1) # summarize dataset classes unique(y) total len(y) for c in classes:n_examples len(y[yc])percent n_examples / total * 100print( Class%d : %d/%d (%.1f%%) % (c, n_examples, total, percent))运行示例将创建数据集并汇总每个类中的示例数量。通过设置random_state参数可以确保每次运行代码时我们得到的随机生成的示例相同。 Class0 : 990/1000 (99.0%)Class1 : 10/1000 (1.0%)少数类中总共有10个例子并不多。如果我们使用10-folds那么在理想情况下每部分将得到一个示例这不足以训练模型。出于演示目的我们将使用5-folds。在理想情况下每个部分中将有10/5或两个示例这意味着训练数据集中的示例量为4 * 28给定测试数据集中的示例量为1 * 22。首先我们将使用KFold类将数据集随机分为5部分并检查每个训练和测试集的组成。下面列出了完整的示例。# example of k-fold cross-validation with an imbalanced dataset from sklearn.datasets import make_classification from sklearn.model_selection import KFold # generate 2 class dataset X, y make_classification(n_samples1000, n_classes2, weights[0.99, 0.01], flip_y0, random_state1) kfold KFold(n_splits5, shuffleTrue, random_state1) # enumerate the splits and summarize the distributions for train_ix, test_ix in kfold.split(X):# select rowstrain_X, test_X X[train_ix], X[test_ix]train_y, test_y y[train_ix], y[test_ix]# summarize train and test compositiontrain_0, train_1 len(train_y[train_y0]), len(train_y[train_y1])test_0, test_1 len(test_y[test_y0]), len(test_y[test_y1])print(Train: 0%d, 1%d, Test: 0%d, 1%d % (train_0, train_1, test_0, test_1))运行示例将创建相同的数据集并枚举数据的每个拆分从而显示训练集和测试集的类分布。我们可以看到在这种情况下某些拆分有期望的8/2的训练集和测试集的比例而另一些拆分很差例如6/4乐观和10/0悲观。在这些数据拆分上评估模型不会给出可靠的对性能的评估。Train: 0791, 19, Test: 0199, 11 Train: 0793, 17, Test: 0197, 13 Train: 0794, 16, Test: 0196, 14 Train: 0790, 110, Test: 0200, 10 Train: 0792, 18, Test: 0198, 12如果我们使用数据集的简单训练/测试拆分则可以证明类似问题的存在尽管该问题不太严重。我们可以使用train_test_split函数创建数据集的50/50拆分并且平均而言如果我们多次执行该拆分操作我们则希望每个数据集中会出现来自少数类的五个示例。下面列出了完整的示例。# example of train/test split with an imbalanced dataset from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split # generate 2 class dataset X, y make_classification(n_samples1000, n_classes2, weights[0.99, 0.01], flip_y0, random_state1) # split into train/test sets with same class ratio trainX, testX, trainy, testy train_test_split(X, y, test_size0.5, random_state2) # summarize train_0, train_1 len(trainy[trainy0]), len(trainy[trainy1]) test_0, test_1 len(testy[testy0]), len(testy[testy1]) print(Train: 0%d, 1%d, Test: 0%d, 1%d % (train_0, train_1, test_0, test_1))运行示例将创建与之前相同的数据集并将其拆分为随机训练和测试。在这种情况下我们可以看到训练集中都少数类的仅有3个例子而测试集中有7个。在这种拆分情况下评估模型将无法提供足够的示例以供机器学习示例太多而无法被评估并且可能会导致性能下降。您可以想象如果使用更严格意义的随机拆分情况会变得更糟。Train: 0497, 13, Test: 0493, 17针对不平衡分类的交叉验证的修正解决方案是在使用k折交叉验证或一个测试拆分时不要随机拆分数据。具体来说尽管我们可以在每个子集中保持相同的类分布但是我们可以随机拆分数据集。这称为分层或分层抽样目标变量y类用于控制抽样过程。例如我们可以使用k折交叉验证的一个版本该版本保留每个部分中不平衡的类分布。这称为分层k折交叉验证它将在数据集的每个拆分中强制进行类分布以匹配完整训练数据集中的分布。“…特别是在类别不平衡的情况下通常使用分层10折交叉验证以确保原始数据分布中正例与负例的比例在所有拆分部分中均得到体现。”—第205页不平衡的学习基础算法和应用2013年。我们可以用一个例子来具体说明。顾名思义我们可以使用支持分层k折交叉验证的StratifiedKFold类对拆分进行分层。以下的分层的交叉验证版本基于相同数据集和相同示例。# example of stratified k-fold cross-validation with an imbalanced dataset from sklearn.datasets import make_classification from sklearn.model_selection import StratifiedKFold # generate 2 class dataset X, y make_classification(n_samples1000, n_classes2, weights[0.99, 0.01], flip_y0, random_state1) kfold StratifiedKFold(n_splits5, shuffleTrue, random_state1) # enumerate the splits and summarize the distributions for train_ix, test_ix in kfold.split(X, y):# select rowstrain_X, test_X X[train_ix], X[test_ix]train_y, test_y y[train_ix], y[test_ix]# summarize train and test compositiontrain_0, train_1 len(train_y[train_y0]), len(train_y[train_y1])test_0, test_1 len(test_y[test_y0]), len(test_y[test_y1])print(Train: 0%d, 1%d, Test: 0%d, 1%d % (train_0, train_1, test_0, test_1))运行示例将像以前一样生成数据集并汇总每个拆分的训练和测试集的类分布。在这种情况下我们可以看到每个拆分均与理想情况下的预期匹配。少数类中的每个示例都有一个机会在测试集中使用并且在每个数据集在拆分后的训练和测试集具有相同的类分布。Train: 0792, 18, Test: 0198, 12 Train: 0792, 18, Test: 0198, 12 Train: 0792, 18, Test: 0198, 12 Train: 0792, 18, Test: 0198, 12 Train: 0792, 18, Test: 0198, 12本示例强调需要首先为k折交叉验证选择k值以确保训练和测试集中有足够数量的示例来拟合并评估一个模型模型中两个来自少数类的示例对于测试集来说可能太少了。它还强调了对不平衡数据集使用分层k折交叉验证的必要性对一个给定模型的每次评估时在训练和测试集中保留了模型的类分布。我们还可以使用一个训练/测试拆分的分层版本。这可以通过在应用train_test_split函数时设置“Stratify“参数并将其设置为“ y”-包含数据集中的目标变量的变量。由此该方程将确定所需的类分布并确保训练和测试集都具有此分布。我们可以通过下面列出的示例来证明这一点。# example of stratified train/test split with an imbalanced dataset from sklearn.datasets import make_classification from sklearn.model_selection import train_test_split # generate 2 class dataset X, y make_classification(n_samples1000, n_classes2, weights[0.99, 0.01], flip_y0, random_state1) # split into train/test sets with same class ratio trainX, testX, trainy, testy train_test_split(X, y, test_size0.5, random_state2, stratifyy) # summarize train_0, train_1 len(trainy[trainy0]), len(trainy[trainy1]) test_0, test_1 len(testy[testy0]), len(testy[testy1]) print(Train: 0%d, 1%d, Test: 0%d, 1%d % (train_0, train_1, test_0, test_1))运行示例将对数据集创建一个随机拆分的方法旨在将数据拆分为训练集和测试集时保留类分布在这种情况下每个数据集中保留五个示例。Train: 0495, 15, Test: 0495, 15进一步阅读如果您想更深入这里提供了有关该主题的更多资源。教程A Gentle Introduction to k-fold Cross-ValidationA Gentle Introduction to k-fold Cross-Validation - Machine Learning Mastery​machinelearningmastery.com书籍Imbalanced Learning: Foundations, Algorithms, and Applications, 2013https://amzn.to/32K9K6d​amzn.toAPIsklearn.model_selection.KFold - scikit-learn 0.22.2 documentation​scikit-learn.orgsklearn.model_selection.StratifiedKFold - scikit-learn 0.22.2 documentation​scikit-learn.orgsklearn.model_selection.train_test_split - scikit-learn 0.22.2 documentation​scikit-learn.org
http://www.zqtcl.cn/news/159433/

相关文章:

  • 广东省建设项目安全标准自评网站哪个网站可以免费做简历
  • 带产品展示的个人网站模板购物网站开发背景
  • 哪个域名注册网站好seo广告投放是什么意思
  • 网站建设ydwzjs电子邮箱怎么申请
  • 福建省建住房建设部网站wordpress 算数验证码
  • 东莞企业如何建网站网站正在建设中...为什么护卫神
  • 引流用的电影网站怎么做wordpress浏览速度
  • 微信小程序怎拼做搬家网站东莞建网站公司
  • 网站推广昔年下拉博客推广链接制作软件
  • php 小企业网站 cmswordpress导航分类
  • 婚恋网站女孩子都是做美容免费空间最大的网盘
  • 建立网站要钱吗找人做网站需求怎么写
  • 网站建设精品课程电商运营主要负责什么
  • 中职网站建设与维护考试题wordpress商店会员管理
  • 物流网站开发策划做提升自己的网站
  • 网站开发交接做网站首页尺寸大小
  • 临沂建网站公司一个工厂做网站有用吗
  • 网站建设代码编译的问题及解决方案天元建设集团有限公司第六分公司
  • 做亚马逊网站费用深圳好蜘蛛网站建设公司
  • 做网站需要办什么手续html简单网页代码实例
  • 中文网页设计模板免费下载超级优化小说
  • 做网站的流程前端做什么网站建设与管理专业学什么
  • 用wordpress做购物网站西安建设工程网站
  • 响应式网站免费模板下载电商怎么做如何从零开始视频
  • 江西网站开发学校联系我们网站制作
  • 做网站首页图片素材营销网站制作要素
  • 云阳网站建设百度对 wordpress 排名
  • 做电商网站需要多少时间网站建设答辩ppt
  • 营销型网站的案例江苏seo网站排名优化
  • 企业网站 备案 网站名称凡科做视频网站