特征工程的基本概念及数据类型

释放双眼,带上耳机,听听看~!
本章将介绍特征工程的基本概念和不同类型的数据,包括结构化数据和非结构化数据。了解数据的类型和层级可以帮助我们选择合适的特征工程技术。

本章将介绍特征工程的基本概念。我们将探讨我们将在本书中遇到的数据类型以及我们将在其中看到的特征工程技术类型。在直接进入案例研究之前,本章将为特征工程和数据理解提供必要的基础。在我们可以在Python中导入一个包之前,我们需要知道我们正在寻找什么以及数据想要向我们传达什么信息。

通常,开始处理数据可能会很困难。数据可能杂乱无章,组织混乱,数据量庞大,或者格式奇特。在本章中,当我们看到各种术语、定义和示例时,我们将为自己打下基础,以便顺利开始我们的第一个案例研究。

首先,我们将查看两种广义类型的数据集:结构化数据和非结构化数据。然后,我们将深入研究各个特征,并开始将每个特征分配到四个数据级别中的一个,这将告诉我们在进行特征工程时可以或不可以对数据执行哪些操作。最后,一旦我们了解了四个数据级别以及如何将特征分类为其中一个级别,我们将进一步学习五种特征工程类型。所有这些将为我们提供一个有条理的思维过程,用于深入研究我们的案例研究。一般来说,我们将首先诊断我们的数据集是非结构化的还是结构化的。然后,我们将为每个特征分配一个数据级别,并根据每个特征所属的数据级别使用一个或多个我们五种类型的特征工程技术。让我们开始吧。

数据类型

在我们的特征工程之旅中,我们将遇到许多不同类型的数据,我们可以大致分为两个主要类别:结构化数据和非结构化数据。这些术语用于定义整个数据集,而不是单个特征。如果有人要求对一个数据集进行分析,对此的合适问题可能是,数据是结构化的还是非结构化的?

结构化数据

结构化数据,或称为组织化数据,是符合严格数据模型或设计的数据。这通常是人们在想到数据时所想到的类型。它们通常以表格(行/列)格式表示,其中行代表个别观察结果,而列代表特征或属性。

结构化数据的示例包括以下内容:

  • 关系型数据库和数据表(例如 SQL),其中每一列具有特定的数据类型和关于可以存在哪种值的规则
  • Excel 数据文档,其中每一行都是独立的,每一列都有一个通常描述该列中数据类型的标签

非结构化数据

另一方面,非结构化数据没有预定义的设计,也不遵循特定的数据模型。我知道这有点模糊,但术语”非结构化数据”是一个用来定义所有非结构化数据的大概性术语。如果你正在处理的数据集不太适合整齐的行列结构,那么你正在处理非结构化数据。

非结构化数据的示例包括以下内容:

  • 客户服务对话的记录
  • 来自YouTube的视频
  • 来自播客的音频

通常,一个数据集可以同时包含结构化和非结构化部分。例如,如果我们处理的是电话通话的数据集,我们可以将包括通话日期和通话人姓名的数据子集视为结构化数据,而通话的原始音频则是非结构化数据。表格 2.1 中有更多关于结构化和非结构化数据部分的示例。

特征工程的基本概念及数据类型

Gartner的分析师(www.gartner.com/en/document…)估计,企业数据中有80%是非结构化的,而其余20%是结构化的。这可能会让人认为更加迫切地处理非结构化数据,这是一个合理的反应,但值得注意的是,80%的数据是非结构化的,是因为它们占用了更多的空间(用来存储原始中等长度电话通话需要更多的兆字节,而用来存储数千个布尔值则需要更少的空间),而大多数数据捕获系统会捕获我们的所有活动,包括电子邮件、短信、通话和听音频等,所有这些数据都是非结构化的。在本书中,我们将使用结构化和非结构化数据。我们处理非结构化数据的目标是将它们转化为结构化格式,因为这是ML模型能够解析和学习的格式(表格2.2)。

特征工程的基本概念及数据类型

数据的四个等级

在处理结构化数据集时,单个列或特征可以属于四个数据级别之一。知道你的数据属于哪个级别在决定可行的特征工程技术,更不用说是否适合使用哪种技术方面起着关键作用。

定性数据 vs 定量数据

在广义上,特征可以是定量的(即具有数字性质)或定性的(即具有分类性质)。通常,哪些数据是定量的,哪些是定性的往往是显而易见的,而且大多数情况下,仅知道数据属于这两个广泛类别中的哪一个就足够了。例如,定量数据可以是任何从年龄、温度和价格到白细胞计数和国内生产总值(GDP)的数据。定性数据基本上是除了数字以外的所有东西,比如电子邮件、推文、血型和服务器日志。

定量数据和定性数据可以进一步分为四个子数据级别,了解数据位于哪个级别将使我们了解可以对其执行哪些操作和不允许执行哪些操作:

  1. 名义级别
  2. 有序级别
  3. 区间级别
  4. 比率级别

数据只能存在于这四个级别中的一个,了解我们正在处理的每个特征属于哪个级别通常会决定可以对它们执行哪种操作和不允许使用哪种操作。让我们从看看第一个级别开始:名义级别的数据。

名义级别数据

我们的第一级数据是名义级别。名义级别的数据从头到尾都是定性的。这包括类别、标签、描述和没有任何数量意义并且没有可辨认顺序的事物的分类。

名义级别数据的示例(图2.1)包括以下内容:

  • 血型(例如A、AB、O等)
  • 在填写邮寄信息时的居住州
  • 拥有的手机品牌(例如iPhone、Samsung等)

特征工程的基本概念及数据类型

我们不能对名义级别的数据执行许多数学运算。我们无法计算血型的“平均值”,也无法找出居住州的中位数。不过,我们可以找出名义数据的众数,即最频繁出现的值。我们还可以使用条形图可视化名义级别的数据,以获取数据值的计数。

处理名义级别的数据

简单来说,我们要么需要将名义级别的数据转化为机器可以解释的东西,要么就需要将其丢弃。最常见的转换名义数据的方式是将其二值化,即为所表示的每个类别创建一个全新的二进制特征(0或1),并删除原始的名义特征。

特征工程的基本概念及数据类型

是的,二进制数据在技术上仍然处于名义级别,因为我们没有一种有意义地量化是或否、真或假的方法,但机器学习算法至少可以解释0和1,而不是金融区或Soma这样的数据。

序数级别(The ordinal level)

在序数级别,数据呈现出有一定顺序的定性数据,但在数值之间没有有意义的差异。顾客支持满意度调查是序数级别数据的最常见示例之一。如果我问你,“到目前为止,你对这本书感到满意吗?”你的答案将属于序数尺度,你的选择有:

  • 非常不满意
  • 不满意
  • 中立
  • 满意
  • 非常满意

它仍然是定性数据,仍然是一个类别,但我们有一定的顺序。我们有一系列的选择,从非常不满意(希望你不是)到非常满意(诚实地说,我希望你在这里,但我现在会满意于中立或满意,直到我们进入案例研究为止)。

这些数据之所以停止,是因为它们不能表达值之间的差异。我们无法轻松地定义在满意和非常满意之间的差距。不满意减去非常不满意这个短语毫无意义。我们不能将不满意减去非常不满意,也不能将满意加到中立上。序数级别的其他示例包括

  • 公司的职级—实习生、初级员工、主管、副总裁、高管团队
  • 考试成绩—A、B、C等等。

处理序数级别的数据

在序数级别,虽然可以对数据进行独热编码(Dummifying),但更合适的方法是将任何序数数据转换为数字刻度,以便机器学习模型能够解释它们。通常情况下,这可以简单地将递增的整数(例如,1、2、3等)分配给类别(如图2.3所示)。

特征工程的基本概念及数据类型

尽管正确处理序数数据的方式是转换为数字刻度,但在这个级别,我们仍然不能执行基本的数学运算,如加法、减法、乘法或除法,因为它们在这个级别没有一致的含义。例如,5 – 4不等于非常高兴减去高兴,而5 – 4 = 1的差异并不意味着5的人比4的人快乐一单位。

区间级别

这里真正有趣的开始了。区间级别的数据与序数级别的数据类似,但有一个关键的区别,即数值之间的差异具有一致的含义。这是我们的第一个定量数据级别:

区间级别数据的典型示例是温度。我们明显有一种顺序感——68度比58度热。我们还有幸知道,如果我们从一个值中减去另一个值,那个差异是有意义的:68度减58度的差异是10度。同样,如果我们从47度中减去37度,我们也得到10度的差异。

如果我们选择赋予调查结果之间的差异含义,我们也可以将来自序数级别的调查考虑为区间级别。大多数数据科学家会同意,如果我们只向人们展示不高兴、中立、高兴等词汇,那么这将处于序数级别。如果我们还在词汇旁边显示一个数字,并要求他们在投票时记住该数字,那么我们可以将这些数据提升到区间级别,以便进行算术平均数的计算。

我可以听到一些人在对我翻白眼,但这实际上是突破性的,对于理解你正在处理的数据非常关键。当我们有能力将数字相加和相减,并且可以依赖这些加法或减法具有一致的含义时,我们可以开始计算诸如算术平均数、中位数和标准差之类的东西。这些公式依赖于将值相加并且这些答案具有含义。

我们还能要求什么,除了区间级别?!好吧,区间级别的数据没有真正零的概念。真正的零代表你试图测量的事物的缺失。回到我们的温度示例,0度的概念并不表示“温度的缺失”;它只是另一种温度度量。

区间级别数据不足之处在于我们无法定义它们之间的比率。我们知道100度不是50度的两倍热,正如20度不是40度的两倍冷一样。我们永远不会说这些话,因为它们实际上没有什么含义。

处理区间级别的数据

在区间级别,我们可以在没有数据的情况下进行许多操作。例如,如果有缺失值,我们可以使用算术平均值或中位数来填补任何缺失的数据。我们可以开始将特征相加和相减,如果需要的话。

算术平均值在我们聚合的所有数据具有相同的单位(例如,ft,ml,USD等)时非常有用。然而,算术平均值的缺点是受到离群值的严重影响。例如,假设我们正在计算1-100之间的调查分数的平均值,我们的分数是30、54、34、54、36、44、23、93、100、99。我们的算术平均值将为56.7,但我们的中位数将为49。请注意,我们的均值被90多和100多的三个离群值人为地拉高,而我们的中位数保持在中间。

请注意,我们正在考虑调查数据,并将其视为区间级别,因此我们在暗示差异有意义。我们可以说,一个得分为95的人比一个得分为85的人高大约10个单位,这点我们可以接受。

比率级别

我们最高级别的数据是比率级别。这是大多数人在想到定性数据时所想到的数据规模。与区间级别的数据相同,具有真正的零存在。

比率级别的数据非常丰富,包括

  • 货币 – 我们可以定义真正的零是没有货币存在。如果我们有0美元或0里拉,那么我们就没有钱了。
  • 年龄、身高和体重 – 这些也可以算作比率级别的数据。

在区间级别,我们只能对值进行有意义的加法和减法运算。在比率级别,有了真正零的概念,我们可以对值进行除法和乘法运算,其结果是有意义的。一百美元是五十美元的两倍,而两百五十美元是五百美元的一半。这些句子有意义,因为我们可以想象没有钱的概念(即拥有0美元;见图2.4)。

特征工程的基本概念及数据类型

如果您试图确定您的定量数据是在区间级别还是比率级别,请尝试将两个值相除,并问自己:“答案是否具有任何普遍接受的含义?”如果答案是肯定的,那么您可能正在处理比率级别的数据。如果答案是:“嗯,我不这么认为”,那么您可能正在处理区间级别的数据。

处理比率级别的数据

在比率级别,我们可以执行的操作并不比在区间级别更多。主要的区别在于,现在我们被允许将值相乘和相除。这使我们能够理解几何平均和调和平均(图2.5)。有时,我们希望使用这三种类型的平均值,它们被统称为毕达哥拉斯平均值。

我们之前在谈论区间级别的数据时提到了算术平均值。在比率级别,我们仍然可以出于相同的目的使用算术平均值,但在某些情况下,我们应该更倾向于使用几何平均值或调和平均值。当我们的数据要么具有不同的单位(例如,摄氏度和华氏度的混合)或者处于不同的刻度时,几何平均值最有用。

例如,假设我们想要比较两个客户支持部门,并且我们使用两个指标来衡量每个部门:客户满意度(CSAT)得分,该得分在1到5的范围内,以及净推荐者分数(NPS),该得分在0到10的范围内。假设我们的部门具有以下得分(表2.3)。

特征工程的基本概念及数据类型

在这里,我们可能会被诱惑使用算术平均值,并辩称

A = (3.5 + 8) / 2 = 5.75
B = (4.75 + 6.5) / 2 = 5.625

我们会宣布A是胜利者,但我们要平均的数字既没有相同的单位,也没有相同的刻度。在这里更合适的是使用几何平均值,并表示

A = sqrt(3.5 * 8) = 5.29
B = sqrt(5 * 6.5) = 5.56

调和平均数是数据的倒数的算术平均数的倒数。这听起来有点复杂,但基本上,调和平均数最擅长找到在比例水平上是两个值的分数的数字的中心。你可以看到与比例水平的明显联系:这是唯一一个我们甚至可以有比例的水平,因为我们允许在零的概念下进行除法。

例如,考虑如果我们有一系列从点A到点B的速度值(以mph为单位):20 mph,60 mph,70 mph。如果我们想知道平均速度,我们可以再次尝试使用算术平均值,我们会得到(60 + 70 + 20) / 3 = 50 mph,但如果我们停下来思考一分钟,这开始变得没有意义。以70 mph行驶的人花费的时间比以20 mph行驶的人少,但是他们都是在同样的距离上行驶。我们的平均速度应该考虑这一点。20、60和70的调和平均值是37.1 mph,这更有意义,因为换个方式说,调和平均值告诉我们:“这三个人行驶的总时间中,平均速度略高于37 mph。”有关计算数据均值的所有不同方法都在图2.5和表2.4中讨论。

特征工程的基本概念及数据类型

特征工程的基本概念及数据类型

有四个数据级别(图2.6;表2.5),要知道我们正在使用哪个级别的数据可能有点棘手。一般来说,如果我们错误地将一个特征诊断为比率级别,而实际上它应该是间隔级别,通常这是可以接受的。但是,我们不应该混淆本应该是定量的数据与本应该是定性的数据,反之亦然。

特征工程的基本概念及数据类型

特征工程的基本概念及数据类型

特征工程的类型

有五种特征工程类型,我们将在整本书中一直提到。这五种类型是案例研究的主要结构单元,几乎每个特征工程步骤都属于这五个类别之一。

特征改进

特征改进技术涉及通过各种转换来增强现有的结构化特征。通常,这涉及对数值特征应用转换。常见的改进步骤包括填充缺失的数据值、标准化和归一化。我们将在第一个案例研究中深入探讨这些和其他特征改进技术。

特征工程的基本概念及数据类型

回到我们的数据级别,我们可以执行的特征改进类型取决于待处理特征所在的数据级别。例如,假设我们要处理的特征在数据集中有缺失值。如果我们处理的是名义级别或序数级别的数据,那么我们可以通过使用该特征的最常见值(众数)或使用最近邻算法来“预测”缺失值,基于其他特征。如果该特征位于区间级别或比率级别,那么我们可以使用其中一种毕达哥拉斯平均值,或者可能使用中位数来填充缺失值。一般来说,如果我们的数据有很多异常值,我们更愿意使用中位数(或在适当情况下使用几何/调和平均值),如果我们的数据没有那么多异常值,我们会使用算术平均值。

我们希望进行特征改进的情况包括:

  1. 我们希望使用的特征对机器学习模型来说无法使用(例如,包含缺失值)。
  2. 特征存在极端异常值,可能会影响机器学习模型的性能。

特征构建

特征构建是指通过直接转换现有特征或将原始数据与新数据源的数据进行合并来手动创建新特征(图2.8)。例如,如果我们正在处理一个住房数据集,并且试图预测特定家庭在某项法案上的投票方式,我们可能要考虑该家庭的总收入。我们还可能希望查找另一个数据源,其中包含家庭人数,并将其包含为我们的特征之一。在这种情况下,我们通过从新的数据源获取信息来构建一个新的特征。

特征工程的基本概念及数据类型

构建的示例(图2.9)还包括将分类特征转换为数值特征,反之亦然—通过分桶将数值特征转换为分类特征。

特征工程的基本概念及数据类型

我们希望在以下情况下执行特征构建:

  1. 我们的原始数据集中没有足够的信号来执行我们的ML任务。
  2. 一个特征的转换版本比其原始版本具有更多的信号(我们将在我们的医疗保健案例研究中看到一个例子)。
  3. 我们需要将定性变量映射为定量特征。 特征构建通常是费力且耗时的,因为它是需要最深入的领域知识的特征工程类型。要手工制作特征几乎是不可能的,除非对底层问题领域有深刻的理解。

特征选择

并非所有特征在机器学习任务中都同样有用。特征选择涉及从现有的特征集中挑选最佳特征,以减少模型需要学习的总特征数量,同时减少我们遇到特征相互依赖的情况的机会(图2.10)。如果后者发生,我们可能面临模型中存在可能导致整体性能较差的混淆特征的情况。

特征工程的基本概念及数据类型

我们希望在以下情况下执行特征选择:

  1. 面临维度灾难,列数过多,无法适当地表示数据集中的观测数量。
  2. 特征之间存在依赖关系。如果特征相互依赖,那么我们违反了机器学习中一个常见的假设,即特征是独立的。
  3. 机器学习模型的速度很重要。减少模型需要查看的特征数量通常会降低复杂性并提高整个流程的速度。 我们将在几乎每一个案例研究中执行特征选择,使用多个选择标准,包括假设检验和基于树模型的信息增益。

特征提取

特征提取会根据对数据的基本形状进行假设,自动创建新特征。其中的示例包括应用线性代数技术来执行主成分分析(PCA)和奇异值分解(SVD)。我们将在我们的NLP案例研究中介绍这些概念。关键在于,任何属于特征提取范畴的算法都对数据进行了某种假设,如果这些假设不成立,可能会使生成的数据集比其原始形式更不实用。

常见的特征提取技术之一涉及学习词汇表,并将原始文本转化为一个词频向量,其中每个特征表示一个标记(通常是一个单词或短语),而值表示该标记在文本中出现的频率。这种文本的多热编码通常被称为词袋模型,具有许多优点,包括易于实现和产生可解释的特征(图2.11)。在我们的NLP案例研究中,我们将比较这种经典的NLP技术与更现代的基于深度学习的特征学习模型,它们在某种程度上是亲戚关系。

特征工程的基本概念及数据类型

我们希望进行特征提取的情况包括以下之一:

  1. 我们可以对数据进行一些假设,并依赖快速的数学变换来发现新的特征(我们将在未来的案例研究中深入探讨这些假设)。
  2. 我们正在处理非结构化数据,例如文本、图像和视频。
  3. 与特征选择类似,当我们处理的特征过多以至于无法有效利用时,特征提取可以帮助我们减少总体维度。

特征学习

特征学习,有时称为表示学习,类似于特征提取,因为我们试图从原始的非结构化数据(如文本、图像和视频)中自动生成一组特征。然而,特征学习不同之处在于,它是通过应用非参数化(即不对原始数据的形状做出任何假设)的深度学习模型来实现的,目的是自动发现原始数据的潜在表示。特征学习是高级的特征工程类型,我们将在自然语言处理和图像处理案例研究中看到这方面的示例(图2.12)。

特征工程的基本概念及数据类型

特征学习通常被视为手动特征工程的替代方法,因为它承诺为我们发现特征,而不是我们自己去做。当然,这种方法也有其缺点:

我们需要设置一个初步的学习任务来学习我们的表示,这可能需要更多的数据。 自动学习的表示可能不如人工生成的特征好。 通过机器自动生成的特征通常是无法解释的,因为它们是由机器创建的,不考虑可解释性。 总之,我们在以下情况下希望进行特征学习:

我们无法对数据做出某些假设,就像在特征提取中一样,而且我们正在处理非结构化数据,例如文本、图像和视频。 另外,就像在特征选择中一样,特征学习可以帮助我们减少总体维度,或者在必要时扩展维度。 表2.6提供了将在本书后面介绍的特征工程技术的描述和示例预览。

特征工程的基本概念及数据类型

如何评估特征工程的成果

值得重申的是:没有优质的数据,就不可能有出色的模型。垃圾进,垃圾出。当我们有糟糕的数据时,模型容易受到有害的偏差影响,性能也很难提高。在本书中,我们将以多种方式定义”出色”。

评估指标1:机器学习指标

与基准线相比,机器学习指标可能是最直接的方法;这涉及到在对数据应用特征工程方法之前和之后查看模型性能。步骤如下:

  1. 在应用任何特征工程之前,获取我们计划使用的机器学习模型的基准性能。
  2. 对数据进行特征工程处理。
  3. 从机器学习模型获取新的性能指标值,并将其与第一步获得的值进行比较。如果性能有所提高并且超过了数据科学家定义的某个阈值,那么我们的特征工程工作就取得了成功。请注意,我们应该考虑模型性能的变化以及特征工程的难易程度。例如,是否值得支付第三方数据平台来增加数据以提高验证集准确性0.5%是完全由模型利益相关者决定的。

注意:监督度量,如精确度和召回率(我们将在第一个案例研究中介绍),只是我们可以用来衡量模型表现如何的众多度量中的一部分。我们还可以依赖于无监督度量,例如Davies-Bouldin指数,用于聚类,但这不会是本书中任何案例研究的重点。

评估指标2:可解释性

数据科学家和其他模型利益相关者应该深刻关注管道可解释性,因为它可以影响业务和工程决策。可解释性可以定义为我们能够问我们的模型“为什么”做出了它的决策,以及将该决策与最相关的单个特征或特征组联系起来的程度,这些特征在模型的决策中起到了最重要的作用。

想象一下,我们是数据科学家,正在构建一个ML模型,该模型预测用户成为垃圾邮件机器人的概率。我们可以使用一个特征,比如点击速度,来构建一个模型。当我们的模型投入生产时,我们面临着一些误报的风险,即当我们的模型认为他们是机器人时,将人们从我们的网站上踢下来。为了对人们透明,我们希望我们的模型具有一定的可解释性,这样我们就可以诊断模型认为在进行此预测时最重要的特征,并在必要时重新设计模型。特征工程程序的选择可以极大地增加或严重妨碍我们解释模型性能的能力。特征改进、构建和选择通常有助于我们洞察模型性能,而特征学习和特征提取技术通常会降低机器学习管道的透明度。

评估指标3:公平性和偏差

模型必须根据公平性标准进行评估,以确保它们不会基于数据中固有的偏见生成预测。这在对个体影响较大的领域尤为重要,例如金融贷款系统、识别算法、欺诈检测和学术表现预测。在2020年的数据科学调查中,超过一半的受访者表示已经实施或计划实施解决方案,以使模型更具解释性(可解释性),而只有38%的受访者表示对公平性和偏差缓解采取了相同的做法。人工智能和机器学习模型容易利用数据中存在的偏见,并将其放大到可能对那些数据中存在偏见的人们造成危害的程度。适当的特征工程可以揭示某些偏见并帮助在模型训练时减少它们。

评估指标4:机器学习复杂性和速度

往往被忽视的是,机器学习管道的复杂性、规模和速度有时可能会决定部署的成败。如前所述,有时数据科学家会转向大型学习算法,比如神经网络或集成模型,而不是正确进行特征工程,希望模型自己能够解决问题。这些模型的缺点是在内存中占用大量空间,训练速度较慢,有时预测速度也较慢。大多数数据科学家都至少有一个这样的经历:经过数周的数据整理、模型训练和密集评估后,才发现模型无法生成足够快的预测,或者占用的内存太多,无法用于生产。在这里,降维技术(一种特征工程学派,属于特征提取和特征学习)可以发挥重要作用。通过减小数据的规模,我们可以期望减小模型的大小并提高模型的速度。

我们将如何处理特征工程过程

在本书中,我们将遵循本章学到的一套准则(图2.13)。总的来说:

  1. 我们将处理非结构化数据,并通过特征提取或特征学习将其转换为结构化数据。
  2. 我们将为特征分配一个数据级别,并从该级别使用所有四种特征工程类型来进一步增强我们的结构化数据。
  3. 我们将使用这些数据来评估我们的机器学习模型。
  4. 我们将根据需要进行迭代,直到达到我们满意的性能阈值。

特征工程的基本概念及数据类型

对于个别案例研究,我们可能会偏离这一常规准则,但这是我们处理特征工程过程的方式。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

GPT-4发布:OpenAI推出新一代多模态大模型

2023-11-29 11:03:14

AI教程

使用DDIM算法进行图像去噪的实现

2023-11-29 11:22:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索