不平衡分类的成本敏感学习

news2024/11/15 10:20:59

不平衡分类的成本敏感学习

大多数机器学习算法都假设模型所犯的所有错误分类错误都是相同的。

对于不平衡分类问题,情况通常并非如此,因为遗漏正类或少数类案例比错误地将示例归类为负类或多数类更糟糕。有许多现实世界的例子,例如检测垃圾邮件、诊断医疗状况或识别欺诈行为。在所有这些情况下,假阴性(遗漏案例)比假阳性更糟糕或成本更高。

成本敏感型学习是机器学习的一个子领域,在训练机器学习模型时会考虑预测误差的成本(以及潜在的其他成本)。该研究领域与不平衡学习领域密切相关,不平衡学习涉及对具有倾斜类别分布的数据集进行分类。因此,许多为成本敏感型学习而开发和使用的概念和技术可以用于解决不平衡分类问题。

在本教程中,您将发现针对不平衡分类的成本敏感学习的简单介绍。

完成本教程后,您将了解:

  • 不平衡的分类问题通常对假阳性分类错误的评价与假阴性分类错误的评价不同。
  • 成本敏感学习是机器学习的一个子领域,涉及在训练机器学习算法时明确定义和使用成本。
  • 成本敏感技术可分为三类,包括数据重采样、算法修改和集成方法。

教程概述

本教程分为四个部分:

  1. 并非所有分类错误都是相同的
  2. 成本敏感型学习
  3. 成本敏感的不平衡分类
  4. 成本敏感方法

并非所有分类错误都是相同的

分类是一个预测建模问题,涉及预测观察的类别标签。

可能存在许多类别标签,即所谓的多类分类问题,尽管最简单、也许最常见的一类分类问题有两个类,称为二元分类。

大多数为分类而设计的机器学习算法都假设每个观察到的类别都有相同数量的示例。

在实践中情况并非总是如此,具有偏斜类别分布的数据集被称为不平衡分类问题。

在成本敏感型学习中,每个类(或实例)都会被赋予一个误分类成本,而不是每个实例被正确或错误地分类。因此,问题不是试图优化准确率,而是最小化总误分类成本。

— 第 50 页,《不平衡学习:基础、算法和应用》,2013 年。

除了假设类别分布平衡之外,大多数机器学习算法还假设分类器所做的预测错误是相同的,即所谓的错误分类。

对于二元分类问题,尤其是类别分布不平衡的问题,通常情况并非如此。

大多数分类器假设错误分类的成本(假阴性和假阳性成本)是相同的。在大多数实际应用中,这一假设并不正确。

—针对不平衡数据的成本敏感学习方法,2010 年。

对于不平衡分类问题,来自多数类别的示例称为负类,并分配类标签 0。来自少数类别的示例称为正类,并分配类标签 1。

采用这种负面与正面命名约定的原因在于,来自多数类别的示例通常代表正常或无事件的情况,而来自少数类别的示例代表例外或事件的情况。

  • 多数类:负面事件或无事件分配类标签 0。
  • 少数类:正面或被分配类标签 1 的事件。

现实世界中不平衡的二元分类问题通常对可能出现的每种分类错误都有不同的解释。例如,将负例分类为正例通常比将正例分类为负例要容易得多。

如果我们认为不平衡二元分类问题上的分类器的目标是正确检测正例,而正例代表我们最感兴趣的异常或事件,那么这是有道理的。

我们可以通过一些例子来澄清这一点。

银行贷款问题:考虑这样一个问题:银行想要确定是否向客户提供贷款。拒绝向优质客户提供贷款并不比向可能永远无法偿还贷款的劣质客户提供贷款更糟糕。

癌症诊断问题:考虑这样一个问题:医生想要确定患者是否患有癌症。诊断健康患者患有癌症并进行更多医学检查比让患有癌症的患者出院要好。

…在对某种癌症进行医学诊断时,如果将癌症视为阳性类,将非癌症(健康)视为阴性,那么漏掉一种癌症(患者实际上是阳性但被归类为阴性;因此也称为“假阴性”)比假阳性错误要严重得多(因此代价高昂)。

—成本敏感学习,机器学习百科全书,2010 年。

欺诈检测问题:考虑一家保险公司想要确定索赔是否为欺诈的问题。将合理的索赔识别为欺诈并跟进客户比接受欺诈性保险索赔更好。

通过这些示例,我们可以看出,误分类错误通常都是不可取的,但有一种误分类比另一种更糟糕。具体来说,将正例预测为负例更有害、更昂贵,或者更糟糕,无论我们想以何种方式衡量目标域的背景。

…将实际的正例错误分类为负例的代价往往比将实际的负例错误分类为正例的代价更大。

—成本敏感学习,机器学习百科全书,2010 年。

将每种类型的错误分类错误视为相同类型的机器学习算法无法满足该类型问题的需求。

因此,训练数据中少数群体的代表性不足以及正确识别少数群体样本的重要性日益增加,使得分类不平衡成为应用机器学习中最具挑战性的问题之一。

类别不平衡是机器学习算法面临的挑战之一。

—针对不平衡数据的成本敏感学习方法,2010 年。

成本敏感型学习

机器学习有一个子领域,专注于学习和使用在进行预测等时具有不均匀惩罚或成本的数据模型。

该领域通常被称为成本敏感机器学习,或更简单地称为成本敏感学习。

…机器学习算法需要对它所处理的成本敏感,在更好的情况下,在模型拟合过程中考虑成本。这导致了成本敏感的机器学习,这是机器学习中一个相对较新的研究课题。

— 第 xiii 页,成本敏感型机器学习,2011 年。

传统上,机器学习算法是在数据集上进行训练的,并力求最小化误差。在数据上拟合模型解决了一个优化问题,我们明确地寻求最小化误差。可以使用一系列函数来计算模型在训练数据上的误差,更通用的术语称为损失。我们力求最小化模型在训练数据上的损失,这与谈论误差最小化是一样的。

  • 错误最小化:训练机器学习算法时的传统目标是最小化模型在训练数据集上的错误。

在成本敏感学习中,与错误预测相关的惩罚被称为“成本”。 我们也可以将惩罚的倒数称为“收益”,尽管这种表述很少使用。

  • 成本:与错误预测相关的惩罚。

成本敏感学习的目标是最小化训练数据集上模型的成本,其中假设不同类型的预测误差具有不同的、已知的相关成本。

  • 成本最小化:成本敏感学习的目标是最小化训练数据集上模型的成本。

成本敏感学习是一种将错误分类成本(以及可能的其他类型的成本)考虑在内的学习类型。这种类型的学习的目标是最小化总成本。

—成本敏感学习,机器学习百科全书,2010 年。

不平衡分类和成本敏感学习之间存在紧密联系。具体而言,不平衡学习问题可以通过成本敏感学习来解决。

然而,成本敏感学习是一个独立的研究子领域,成本的定义可能比预测误差或分类误差更广泛。这意味着,尽管成本敏感学习中的一些方法可能有助于解决不平衡分类问题,但并非所有成本敏感学习技术都是不平衡学习技术,相反,并非所有用于解决不平衡学习的方法都适用于成本敏感学习。

为了具体说明这一点,我们可以考虑在数据集上训练模型时可能希望考虑或衡量成本的多种其他方式。例如,Peter Turney在其 2000 年的论文《归纳概念学习中的成本类型》中列出了机器学习中可能考虑的九种成本类型。

概括起来,它们是:

  • 错误分类错误(或更普遍的预测错误)的成本。
  • 测试或评估的成本。
  • 教师或标签的费用。
  • 干预或改变观察系统的成本。
  • 因干预而产生的不想要的成果或结果的成本。
  • 计算成本或计算复杂性。
  • 案件或数据收集的成本。
  • 人机交互或构建问题以及使用软件来适应和使用模型的成本。
  • 不稳定或差异的成本被称为概念漂移。

尽管对许多现实世界的问题来说,成本和成本敏感学习的概念至关重要,但直到最近才被人们广泛忽视。

在概念学习的实际应用中,涉及多种不同类型的成本。大多数机器学习文献都忽略了所有类型的成本……

—归纳概念学习中的成本类型,2000 年。

上面的列表强调了我们所感兴趣的不平衡分类成本只是更广泛的成本敏感学习领域可能考虑的一系列成本中的一种。

在下一节中,我们将仔细研究如何利用错误分类成本敏感学习的思想来帮助解决不平衡分类问题。

成本敏感的不平衡分类

针对不平衡分类的成本敏感学习首先侧重于为可能出现的错误分类错误类型分配不同的成本,然后使用专门的方法将这些成本考虑在内。

使用成本矩阵的概念可以最好地理解不同的错误分类成本。

让我们首先回顾一下混淆矩阵。

混淆矩阵是分类任务中模型所做预测的汇总。它是一个表格,汇总了针对每个类别所做预测的数量,并按每个示例所属的实际类别进行区分。

最好使用具有负类和正类的二元分类问题来理解,通常分别分配 0 和 1 个类标签。表格的列表示示例所属的实际类,行表示预测类(尽管行和列的含义可以且经常互换而不会丢失含义)。表格中的单元格是满足行和列条件的示例数量的计数,每个单元格都有一个特定的通用名称。

下面列出了二元分类任务的混淆矩阵的一个示例,其中显示了表格中四个单元格中每个值的通用名称。

                   | Actual Negative | Actual Positive
Predicted Negative | True Negative   | False Negative
Predicted Positive | False Positive  | True Positive

我们可以看到,我们最感兴趣的是错误,即所谓的假阳性和假阴性,而在许多不平衡的分类任务中,我们最感兴趣的可能是假阴性。

现在,我们可以考虑具有相同行和列的同一张表,并为每个单元格分配一个成本。这称为成本矩阵。

  • 成本矩阵:为混淆矩阵中每个单元分配成本的矩阵。

下面的示例是一个成本矩阵,其中我们使用符号*C()*来表示成本,第一个值表示预测类,第二个值表示实际类。混淆矩阵中每个单元格的名称也以首字母缩略词的形式列出,例如 False Positive 是 FP。

                   | Actual Negative | Actual Positive
Predicted Negative | C(0,0), TN      | C(0,1), FN
Predicted Positive | C(1,0), FP      | C(1,1), TP

我们可以看到,假阳性(False Positive)的成本为 C(1,0),假阴性(False Negative)的成本为 C(0,1)。

成本矩阵的公式和符号源自Charles Elkan于 2001 年发表的具有开创性的论文“成本敏感学习的基础”。

从该矩阵可以直观地看出,错误分类的成本总是高于正确分类,否则,可以通过预测一个类来最小化成本。

从概念上讲,错误标记一个示例的成本应该总是大于正确标记该示例的成本。

— 《成本敏感学习基础》,2001 年。

例如,我们可能为每个类别的正确预测分配零成本,为假阳性分配 5 成本,为假阴性分配 88 成本。

                   | Actual Negative | Actual Positive
Predicted Negative | 0               | 88
Predicted Positive | 5               | 0

我们可以使用该框架将分类器的总成本定义为假阴性和假阳性的成本加权总和。

  • 总成本 = C(0,1) * 假阴性 + C(1,0) * 假阳性

至少从概念上讲,这是我们在成本敏感学习中寻求最小化的价值。

CSL 的目的是建立一个错误分类成本(总成本)最小的模型

—针对不平衡数据的成本敏感学习方法,2010 年。

必须仔细定义成本矩阵的值。与传统机器学习模型的误差函数选择一样,成本或成本函数的选择将决定适合训练数据的模型的质量和效用。

成本敏感学习的有效性在很大程度上取决于所提供的成本矩阵。所提供的参数对于训练和预测步骤都至关重要。

— 第 66 页,从不平衡数据集中学习,2018 年。

在某些问题领域,定义成本矩阵可能很明显。在保险索赔示例中,误报的成本可能是公司跟踪客户的成本,而误报的成本可能是保险索赔的成本。

在其他领域,定义成本矩阵可能具有挑战性。例如,在癌症诊断测试示例中,假阳性的成本可能是进行后续测试的货币成本,而让病人回家后病情加重的等价美元成本是多少?在这种情况下,成本矩阵可能能够由领域专家或经济学家定义,也可能不能。

此外,成本可能是一个复杂的多维函数,包括货币成本、声誉成本等。

不平衡分类任务的一个好起点是根据逆类别分布分配成本。

在许多情况下,我们无法接触到领域专家,并且在分类器训练期间没有关于成本矩阵的先验信息。当我们想要应用成本敏感学习作为解决不平衡问题的方法时,这是一种常见的情况……

— 第 67 页,从不平衡数据集中学习,2018 年。

例如,我们可能有一个数据集,其中少数类的示例与多数类的示例的比例为 1 比 100 (1:100)。此比率可以反转并用作错误分类错误的成本,其中假阴性的成本为 100,假阳性的成本为 1。

                   | Actual Negative | Actual Positive
Predicted Negative | 0               | 100
Predicted Positive | 1               | 0

这是一种用于设定总体成本的有效启发式方法,尽管它假设在训练数据中观察到的类分布代表了更广泛的问题,并且适合于所选的成本敏感方法。

因此,最好使用此启发式方法作为起点,然后测试一系列类似的相关成本或比率以确认其合理性。

成本敏感方法

成本敏感的机器学习方法是明确使用成本矩阵的方法来学习。

鉴于我们关注的是分类不平衡问题,我们特别感兴趣的是那些专注于以某种方式使用不同的错误分类成本的成本敏感技术。

成本敏感学习方法通过使用描述对任何特定数据示例进行错误分类的成本的不同成本矩阵来解决学习不平衡的问题。

— 第 3-4 页,《不平衡学习:基础、算法和应用》,2013 年。

与不平衡学习最相关的成本敏感方法可能有三类,它们是:

  1. 成本敏感型重采样
  2. 成本敏感算法
  3. 成本敏感集成

让我们逐一进行仔细的了解。

成本敏感型重采样

在不平衡分类中,数据重采样是指转换训练数据集以更好地平衡类别分布的技术。

这可能涉及选择性地从多数类中删除示例,称为欠采样。更常见的是,它指的是在少数类中复制或合成新示例,称为过采样,或欠采样和过采样的组合。

数据重采样是一种可直接用于成本敏感学习的技术。重采样的重点不是平衡倾斜的类别分布,而是改变训练数据集的组成以满足成本矩阵的期望。

这可能涉及直接对数据分布进行重采样或使用一种方法对数据集中的示例进行加权。此类方法可称为训练数据集的成本比例加权或成本比例重采样。

我们提出并评估了一系列基于训练示例成本比例加权的方法 […],可以通过将权重提供给分类算法(通常在增强中完成)或(以黑盒方式)通过仔细的子采样来实现。

—通过成本比例示例加权进行成本敏感学习,2003 年。

对于使用类分布定义成本矩阵的不平衡分类,数据重采样技术没有区别。

成本敏感算法

机器学习算法很少专门为成本敏感的学习而开发。

相反,可以修改大量现有的机器学习算法来利用成本矩阵。

这可能涉及对每个算法进行独特的修改,并且开发和测试可能非常耗时。许多此类针对流行算法的增强已被提出,例如决策树和支持向量机。

在所有分类器中,成本敏感决策树的诱导可以说获得了最多的关注。

— 第 69 页,从不平衡数据集中学习,2018 年。

scikit-learn Python 机器学习库通过以下分类器上的class_weight参数提供了这些成本敏感扩展的示例:

  • 安全虚拟控制器
  • 决策树分类器

修改现有算法的另一种更通用的方法是,在训练算法时将成本用作错误分类的惩罚。鉴于大多数机器学习算法都是为最小化错误而训练的,因此在训练过程中将错误分类的成本添加到错误中或用于衡量错误。

该方法可用于迭代训练算法,例如逻辑回归和人工神经网络。

scikit-learn 库通过以下分类器上的class_weight参数提供了这些成本敏感扩展的示例:

  • 逻辑回归
  • 岭分类器

Keras Python 深度学习库还在训练模型时通过fit() 函数上的class_weight参数提供对神经网络这种成本敏感增强的访问。

同样,当使用逆类分布作为成本矩阵时,成本敏感的算法增强与不平衡的分类算法增强之间的界限变得模糊。

在成本敏感的机器学习领域,这些算法带有“成本敏感”前缀,例如成本敏感逻辑回归,而在不平衡学习中,此类算法带有“类加权”前缀,例如类加权逻辑回归或简称为加权逻辑回归。

成本敏感集成

第二组不同的方法是旨在过滤或组合传统机器学习模型的预测以考虑错误分类成本的技术。

这些方法被称为“包装器方法”,因为它们包装了标准的机器学习分类器。它们也被称为“元学习器”或“集成”,因为它们学习如何使用或组合来自其他模型的预测。

成本敏感元学习将现有的成本不敏感分类器转换为成本敏感分类器,而无需对其进行修改。因此,它可以被视为成本不敏感学习算法的预处理训练数据或后处理输出的中间件组件。

—成本敏感学习,机器学习百科全书,2010 年。

也许最简单的方法是使用机器学习模型来预测类别成员的概率,然后使用线搜索对将示例分配给每个明确的类别标签的阈值进行搜索,以最大限度地降低错误分类的成本。

这通常被称为“阈值”或阈值优化,通常用于二元分类任务,尽管可以轻松修改它以最小化成本而不是特定类型的分类错误度量。

MetaCost 是一种数据预处理技术,它重新标记训练数据集中的示例以最小化成本。

…我们提出了一种原则性方法,通过围绕成本最小化程序使任意分类器具有成本敏感性。

— MetaCost:一种使分类器成本敏感的通用方法,1999 年。

在 MetaCost 中,首先在训练数据集上拟合一个分类器袋装集合,以识别需要重新标记的示例,然后创建带有重新标记示例的数据集的转换版本,然后丢弃该集合并使用转换后的数据集来训练分类器模型。

另一个重要领域是对考虑成本矩阵的决策树集成进行修改,例如 bagging 和 boosting 算法,最显著的是 AdaBoost 的成本敏感版本,例如 AdaCost。

AdaCost 是 AdaBoost 的一个变体,是一种对错误分类成本敏感的提升方法。它使用错误分类的成本来更新连续提升轮次的训练分布。

— AdaCost:错误分类成本敏感提升,1999 年。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2092326.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

高效好用的10个自动化办公库分享

高效可用的10个自动化办公库 10个常用的Python自动化办公库本次内容涵盖了Excel、Word、PPT、ODF、PDF、邮件、微信、文件处理等所有能在办公场景实现自动化的库,希望能够对大家有所帮助。 PythonExcel自动化库 1.xlwings 库官网:https://www.xlwings…

用 Python 解锁电影台词中的秘密:给孩子一个学英语的新奇方式

引言 想象一下:孩子们不仅在看他们喜欢的电影,还能从中学到新的英语单词!有没有什么比这更有趣、更高效的学习方式?在这篇博客中,我将带你一步步搭建一个 Python 工具,从电影台词中提取单词并生成详细的词…

06:网表更新到PCB

1.先了解HDMI设计规范 有4对差分线,1对IIC串行总线信号从芯片---->防静电器件—>HDMI输出 发现错误,没有SDA网络,检查原理图 重新导网表 3.完成信号芯片—>防静电模块—>HDMI布局

PMP–知识卡片--迭代型生命周期

迭代指的是多次循环。例如,软件开发按照版本发布,每一个版本内部都是一个小的瀑布开发,都会经历“需求分析—设计—开发—测试—发布”周期,下一个迭代在此基础上重复这些步骤,对软件进行优化升级,发布新的…

用友U8接口-自定义项和扩展自定义项(6)

概括 本文的操作需要正确部署U8API保存单据时传入自定义项和扩展自定义项 单据自定义项 ERP界面 接口参数 自定义项为标准erp字段,以cDefine开始的字段对应接口传入参数位置 [{"Inum": "OtherIn","Data": {"iHead": {&…

和星辰为伴,与代码共舞

大家好,我是小悟 在探索数字编织的浩瀚宇宙中,独立开发者犹如孤独的星际航行者,驾驶着创意与技术的飞船,穿梭于代码的无垠星海。 他们的日常工作,是一幅由无数个日夜辛勤耕耘编织而成的壮丽画卷,每一笔都…

进程通信——共享内存

文章目录 1.基本认识1.1 概念介绍1.2主要原理 2.使用方法2.1创建共享内存shmget2.1.1 shmget2.1.2 ftok 2.2映射地址空间shmat2.3 访问共享内存2.4 同步和互斥 3.接口封装3.1 创建shm_create3.2 映射shm_connect3.3 多进程共享内存 共享内存是一种机制,也是进程间进…

SpringBoot中@SchedulerLock注解实现定时任务中分布式锁的使用

背景 在SpringBoot项目中经常会去写一些定时任务,但是当我们的服务的实例部署多个的情况下,那么每个实例中的定时任务都会执行一遍,这显然不是我们想要的,我们只想让它执行一次。在没有引入像xxl-job之类的分布式任务调度框架的前…

BIRTV2024圆满落幕,中科极光9万流明点亮观影新体验

8月21日,第三十一届北京国际广播电影电视展览会BIRTV 2024隆重开幕。展示广电先进技术设备和发展成果,引领中国广播影视技术发展潮流,全媒体、超高清、强智能,带着本届BIRTV理念,中科极光携RGB三色激光光源升级解决方案LSS-AM系列…

【大模型】LangChain基础学习

前言:LangChain是一个用于构建端到端语言模型应用的框架 目录 1. 基础知识2. 基本使用2.1 安装2.2 启动示例2.3 使用prompt2.4 输出解析器 3. 相关应用3.1 RAG 参考文献 1. 基础知识 六大组件 模型(Models):包含各大语言模型的LangChain接口…

2024年“羊城杯”粤港澳大湾区网络安全大赛 PWN部分

2024年“羊城杯”粤港澳大湾区网络安全大赛 PWN部分 Author:Ns100kUp From:极安云科-服务中心 Data:2024/08/27 Copyright:本内容版权归属极安云科,未经授权不得以任何形式复制、转载、摘编和使用。培训、环境、资料、考证 公众号…

LabVIEW开发高温摩擦试验机

采用LabVIEW软件开发高温摩擦试验机,特别是在航空轴承摩擦学性能测试中的应用。通过详细介绍系统的设计、组成、工作原理及其实现,展示了该系统在动态监测轴承状态参数中的关键作用,以及其在提高测试效率和准确性方面的优势。 项目背景 轴承…

AMBA-CHI协议详解(八)

AMBA-CHI协议详解(一) AMBA-CHI协议详解(二) AMBA-CHI协议详解(三) AMBA-CHI协议详解(四) AMBA-CHI协议详解(五) AMBA-CHI协议详解(六&#xff09…

FTP(File Transfer Protocol,文件传输协议)

FTP(File Transfer Protocol,文件传输协议)是一种用于在网络上交换文件的协议,它定义了文件传输时使用的命令和响应。FTP是最古老的互联网协议之一,至今仍被广泛使用。以下是FTP的一些关键特点和信息: 工作…

学生用什么类型投影仪比较好?2024开学季最值得买的装备当贝X5S投影仪

9月开学季来临,全国的学生们都将陆续开学,暑假结束接下来也只有周末的时间可以让孩子劳逸结合,怎么样才能在忙碌的学业中既能轻松学到知识又能浏览到大量的信息?给孩子看纪录片就是一个好方法,现在比较流行周末家长给孩…

spring security 相关过滤器

Spring Security 提供了 30 多个过滤器。默认情况下Spring Boot 在对 SpringSecurity 进入自动化配置时,会创建一个名为 SpringSecurityFilerChain 的过滤器,并注入到Spring容器中,这个过滤器将负责所有的安全管理,包括用户认证、…

22行为型设计模式——解释器模式

一、解释器模式 解释器模式(Interpreter Pattern)是一种行为型设计模式,主要用于解析和解释特定的语言或表达式。它的核心思想是为语言中的每种语法规则定义一个解释器,通过这些解释器将语言的表示形式转换为可执行的操作。解释器…

240831-RAG新利器之Kotaemon的安装与配置

A. 用户界面 该项目既可以作为功能性 RAG UI,既可以用于对文档进行 QA 的最终用户,也可以用作想要构建自己的 RAG 管道的开发人员。对于最终用户: - 一个干净且简约的用户界面,用于基于RAG的QA。 - 支持 LLM API 提供程序&#xf…

最小栈

最小栈 这题难就难在要能在常数时间内检索到最小元素。 单纯用一个变量记录最小值是无法实现常数时间内获取最小元素的,这个时候我们根据栈的特性,另开一个辅助栈,存储我们的栈里每个时刻的最小值。代码: class MinStack {stac…

idea的全局配置

这样一来,每次创建新项目完就不用每次改配置了