自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(118)
  • 收藏
  • 关注

原创 ChatGPT基本原理

文本会被分割成不同的片段,这些片段被称作token,且每个token都会与一个向量所关联,即某些数字列表,换句话说,每个单词对应一个token,每个token又对应一个向量,共计有50257个token(或向量)组建了embedding matrix。通过这些attention模块,能够进一步明确某个单词在上下文中具体的含义,如model在fasion model和machine learning model中的含义就可以依据上下文来明确此处model所指的具体含义。

2024-05-05 23:17:21 506

原创 强化学习(Reinforcement learning)基本概念

reward:指agent才去了某一action之后,能得到的即时反馈,比如围棋中,某一选手落子后,能够吃掉对手棋子,那么吃掉棋子就是对玩家的即时奖励,则agent采取行动会更倾向于吃子所获得的奖励;state-action value:状态行动价值函数,指特定状态下采取某种行动所获得的价值,如游戏中,在一个特定状态下,玩家根据状态价值函数,应该选择价值最大的的一个行动。state value:状态价值函数,表示输入是个状态,输出是个实数,这个实数就是状态的价值。goal:该游戏各个玩家的目标。

2024-05-01 20:42:23 480 1

原创 用gurobi进行仓网建模伪代码

import osimport jsonfrom dataprocessor import *from config import Configfrom gurobipy import *import pandas as pdclass WarehouseSelection(object): def __init__(self, data, config): self.data = data self.config = config se

2022-04-10 17:54:55 997 1

原创 三种典型启发式算法(禁忌搜索,模拟退火,遗传算法)

启发式算法启发式算法:用来求解非常好的可行解,但不一定是最优解;该类算法可处理非常大的问题,可用来解决NP hard问题,是一种成熟的迭代算法,每次迭代结果可能导致比先前最佳解更好的新解,当算法经过适当时间终止时,提供的解就是迭代程序中发现的最优解。优点:当陷入局部最优解时,有一定概率可以跳出局部最优,继续进行搜索全局最优解缺陷:无法证明迭代结束后的最优解就是全局最优解,可能只是局部最优解。三种典型启发式算法1.禁忌搜索算法2.模拟退火算法3.遗传算法禁忌搜索广泛使用的通用启发式算法,采

2022-01-06 19:22:59 11637 1

原创 层次配平总结

一.分层时间序列对于任何时间t,分层结构底层的观测值加起来等于上层序列的观测值且进一步简化,分层结构可以写为:或者二.分组时间序列上式表明分组结构有可替代的聚合路径对分组第一级有或者进一步简化:或者三.自下而上的方法定义:首先在底层生成每个序列的预测,之后将这些预测相加来得到结构中所有序列的预测Ex:先为每个底层序列生成h步向前的预测之后加总,得到该序列其他部分h步向前的一致预测值即或者四.自上而下的方法定义:该方法首先为总结序列yt生成预测,之后在

2021-11-03 18:10:58 765

原创 深度优先搜索算法(DFS)

BFSjava:用hashmap/hashset来去重python:dict/set来去重分治法 divide & conquer将大规模问题拆分为若干个小规模同类型问题去处理再把子问题分为更小的问题,直到最后子问题可以简单求解最后将子问题的解合并就是原问题的解通常用递归方法来解决搜索宽度优先搜索深度优先搜索(DFS) = 回溯遍历法:可用递归或迭代(非递归)分治法:可用递归或迭代(非递归)注:递归和非递归是算法的一种实现方式而不是算法递归三要素:1.

2021-10-24 23:06:06 1831

原创 宽度优先搜索算法(BSF)

宽度优先搜索算法总结在DSF和BSF之间,能用BSF尽量用BSF算法,因为DSF的递归算法使用到了栈,而栈的深度是有限制的,在python中的上限是1000,否则会导致栈溢出DSF主要借用栈来实现递归算法,而BSF则是使用队列来实现BSF尽量构建双端队列(deque)来实现算法目的,因为用queue会涉及多线程加锁导致变慢BSF使用的场景包括:连通块问题,层级遍历问题和拓扑排序问题BSF在初始化构建队列(deque)时,一定要绑定构建访问记录BSF模版结构:-1. 初始化队列(deque)

2021-10-07 19:52:56 1628

原创 Ortools总结——求解线路规划问题

Ortools是开源求解器,与gurobi的一个区别在于ortools给出了实际的场景,使用不同的模型和接口可以直接调用来解决特定场景的类型,比如线性优化整数优化约束优化分配问题路径问题装箱问题网络流排班问题车辆路径规划车辆路径规划是为了从一系列地点中找到最优路径;通常,最优意味着最少的距离和成本最经典的车辆路径问题是旅行商问题(TSP),即一个销售员为了拜访客户从起点无重复的拜访一系列的地点最后返回原点的问题在TSP问题中,通常是NP hard问题,因此在计算

2021-10-05 10:09:25 2470

原创 hive优化策略

Hive优化策略架构层面(高效,全局或局部)分表合理利用中间结果表,重视查过就丢的资源浪费,导致hadoop的IO负载瓶颈对于常用的复杂或低效统计统一给出,以避免上层作业过多计算合理设计表分区,静态分区和动态分区HQL语法层面(中低效,job内)执行计划谓词上移,如where提到关联表去完成左表是小表,右表是大表用group by替换count(distinct),因为可以被多分配reduce数用sort by替换order by,理由也是可分配多个reduce数

2021-09-12 19:12:21 142

原创 动态规划4步骤

动态规划可解决问题类型:1.计数有多少种方式走到右下角有多少种方法选出k个数使得和是sum2.求最大最小值从左上角走到右下角路径的最大数字和最长上升子序列长度3.存在性取石子游戏,先手是否必胜能不能选出k个数使得和是sum动态规划4个组成部分:1.确定状态解动态规划时候通常需要开一个数组,数组的每个元素f[i]或者f[i][j]代表什么类似于解数学题中,x,y, z代表什么确定状态需要两个意识– 最后一步(最优策略中使用的最后一枚硬币ak)– 化成子问题(最少的硬币拼出

2021-06-24 10:42:59 3489

原创 vscode上配置虚拟环境及创建虚拟环境变量

vscode上创建虚拟环境的方法已经有很多,但是很多时候我们在搭建完虚拟环境后,调用环境变量时,python的搜索路径依然会从默认的环境变量开始查找,导致包的路径无法调用我们所创建的虚拟环境中,因此,这里介绍如何在vscode中配置虚拟环境以及创建虚拟的环境变量,彻底搭建一套python的虚拟环境。1. 在cmd中使用pip安装virtualenvD:\user\desktop\WorkSpace\库存优化\inventory_open_source_code-master>pip install

2021-06-10 22:44:27 4501 5

原创 如何使用scipy.stats快速对统计量拟合多种统计分布并进行可视化

由于我们在对统计量统计频率后,往往需要对统计量拟合其合适的分布,但scipy.stats提供了超过80种的统计分布,我们不可能手工对其进行尝试,因此以下代码将选择多种常用的统计分布快速对统计量进行拟合,并通过卡方检验返回其最适合的3种分布以及其对应的参数,最后将统计量的分布与其拟合的分布进行可视化。1. 载入数据,并将数据进行array化import pandas as pdimport numpy as npimport scipyfrom sklearn.preprocessing impor

2021-05-23 22:52:06 5829 10

原创 统计推断及不同类型变量检验概念和代码

正态分布,区间估计及置信区间计算import pandas as pdhouse_price_gr = pd.read_csv('house_price_gr.csv', encoding='gbk')house_price_gr.head()# 查看增长率分布是否符合正态分布# %matplotlib inlineimport seaborn as snsfrom scipy import statssns.distplot(house_price_gr.rate, kde = Tru

2021-04-18 19:29:00 838

原创 vscode在运行matplotlib包报错的解决方法

通常在安装anaconda后,想要借用其他ide,如vscode去运行时,会发现在import matplotlib时会报错,这种报错通常可能有两种原因:环境变量中没有默认的搜索路径,这块就是将anaconda中的包的路径添加到环境变量下的path中,这块示例有很多,不再赘述当发现提示的报错命令显示为 DLL load failed while importing _imaging:此时的报错不再是没有检索到路径造成的,而是matplotlib包中的部分模块出现了问题。这时候可以在shell环境

2021-04-13 16:39:58 5061 1

原创 线性回归,岭回归,lasso回归模型代码

import sklearnimport numpy as npfrom sklearn import datasets, linear_modelimport matplotlib.pyplot as pltfrom sklearn.model_selection import train_test_splitprint(sklearn.__version__)0.20.3定义训练和测试函数,训练函数输出拟合误差,测试函数返回预测结果与预测得分# 模型回归结果def trainLin

2021-03-30 23:00:40 869

原创 用户画像相关方法

用户画像方法:关联规则,聚类用户定性画像:用户维度+产品维度用户维度:用户特征,用户行为,用户兴趣偏好产品维度:用户下单的产品类别,下单次数,下单的平台用户画像相似度 定量相似度计算W(k)表示第k个标签的权重用户画像中不同标签需要进行归一化处理;具体某个标签相似度计算方法有:欧式距离,余弦相似度,jaccard系数等;对于标量标签,通常采用欧式距离,曼哈顿距离和余弦相似度等。 定性相似度计算一个方向是将定性标签映射为定量标签另一个方向是直接采用基于概念的相似度计算方法在k

2021-03-07 15:31:38 3232

原创 线性规划部分概念及重要性质(运筹学导论笔记)

模型解的术语可行解:满足所有约束条件的解非可行解:至少一个约束条件不被满足的解可行域:所有可行解的集合最优解:目标函数取得最有价值的可行解顶点可行解(CPF):位于可行域顶点的解顶点可行解与最优解的关系:考虑任意具有可行解与有界可行域的线性规划问题,一定具有顶点可行解和至少一个最优解,而且,最优的顶点可行解一定是最优解;因此,若一个问题恰有一个最优解,它一定是顶点可行解,若一个问题有多个最优解,其中至少两个一定是顶点可行解比例性假设:每个活动对于目标函数值Z的贡献与活动级别xj成比例的可加性

2021-01-13 22:34:22 6832

原创 树模型相关介绍(决策树,随机森林,Adaboost, BDT, GBDT, XGboost, lightGBM)

决策树的理解:1.2 分类树信息熵:用来衡量不确定性的指标,不确定性是一个事件出现不同结果的可能性,计算公式如下条件熵:在给定随记变量Y的条件下,随机变量X的不确定性信息增益:熵-条件熵,代表了在一个条件下,信息不确定性减少的程度1.2.2 基尼指数基尼指数:在样本集合中一个随机选中的样本被分错的概率注意:Gini指数越小表示集合中被选中的样本被分错的概率越小,也就是说集合的纯度越高,反之,集合越不纯;当集合中所有样本为一个类时,基尼指数为0计算方法:CART树是一个二叉树,对于

2020-12-23 18:47:25 2345

原创 几种机器学习常用调参方式对比(网格搜索,随机搜索,贝叶斯优化)

网格搜索(GridSearchCV): grid search就是穷举,穷举所有得超参组合Ex:当对决策树调参,若只对一个超参优化,如树的最大深度,尝试[3,5,7],则可表示为若还想对分裂标准进行调参,则尝试gini和entropy,那么相当于对2*3=6组参数进行尝试,即因此这里叫做gridsearch(网格搜索);grid search就是对网格中每个交点进行遍历,从而找到最好的一个组合。网格的维度就是超参的个数,若有k个超参,每个超参有m个候选,那么需要遍历k^m个组合,因此它的好处是效

2020-12-22 16:15:20 6936

原创 python类,初始化,装饰器和系统变量的总结

__ file__:显示当前文件所在的位置如果当前文件在sys.path里,那么它返回的是相对路径如果当前文件不在sys.path里,它返回的是绝对路径https://blog.csdn.net/bestallen/article/details/52079847Init函数 带两个下划线__开头的函数是声明该属性为私有,不能在类的外部被调用Ex:好处:确保了外部代码不能轻易修改对象内部的状态,通过访问限制保护,代码更加健壮如果外部代码要获取内部变量的方法:定义get函数..

2020-11-20 14:17:39 529

原创 os与sys的区别

官方解释:os: This module provides a portable way of using operating system dependent functionality.翻译:提供一种方便的使用操作系统函数的方法。sys:This module provides access to some variables used or maintained by the interpreter and to functions that interact strongly with the

2020-11-19 17:15:04 376

原创 HBASE特点及概述

HbaseHdfs缺点 不能并发写入 不能随机读写 不能随机删除 高延迟 不适合存储大量小的文件RDBMS缺点 分区加上主从复制,方案比较复杂 分区不支持动态扩展 依赖于IBM,EMC等公司设备,造价高 容错性低,查询重启基于上述原因,出现了HBaseHadoop存在两种数据存储的方式 Hdfs的文件存储方式 Hbase分布式数据库存储的方式HBASE支持实时读写大数据,它是一个高可靠性,高性能,可伸缩的分布式存储系统 HBase是一个构建在HDF.

2020-10-30 15:38:02 1678

原创 yarn概述

Hadoop yarnYarn体系结构Yarn:一个通用的资源管理平台,采用主从架构Yarn的作用 作业的调度 管理内存和cpu在跑mapreduce前,都需要把yarn集群给跑起来 Resource manager:全局管理器 Node manager: 驻留在各个从节点的资源管理器Yarn的基本思想是将资源管理和job调度/监控的功能分开 ResourceManager和nodeManager形成数据计算框架 每个程序有一个applicationMaster,它与r

2020-10-30 15:34:08 236

原创 MapReduce工作流程概述

Mapreduce工作流程概述 HDFS以固定大小的block为基本单位存储数据,而对于mapreduce而言,其处理单位为split;split是一个逻辑概念,它只包含一些元数据信息,如数据起始位置,数据长度,数据所在节点等,它的划分方法完全由用户自己决定Map任务数量 Hadoop为每个split创建一个map任务,split多少决定了map任务的数目 大多数情况下,理想的分片大小是一个hdfs块注意:每个block不是严格分为128MB,而是有上下10%左右的偏差Reduce任务

2020-10-30 15:32:18 1414

原创 HDFS架构,特点和基本操作

HDFS设计前提与目标 硬件容错 流式数据访问 超大规模数据集 简单一致性模型一次写入多次读取 移动计算比移动数据便宜HDFS架构 主从架构(master/slave) 两个重要进程:namenode和datanodeHDFS数据存储 冗余备份(备份因子可配置,默认为3) 每个文件按字节切为128m的block(hadoop1为64m) 冗余数据保存加快数据传输速度容易检查数据错误保证数据可靠性Namenode (就像宿舍管理员) 在h

2020-10-28 14:49:10 334

原创 大数据概述及linux部分常用命令

大数据计算模式 批处理计算:针对大规模数据的批量处理,如Mapreduce,spark 流计算:针对流数据的实时计算,如storm,flume,streams 图计算:针对大数据图结构数据的处理,如pregal,GarphX 查询分析计算:大规模数据的存储管理和查询分析,如hive,impala,cassandra等大数据技术 从hadoop+storm架构转向spark架构Spark优势:一套API,一站式的,spark没有存储的,只进行计算Spark不足:实时数据处理;伪实时

2020-10-28 14:44:02 151

原创 lightGBM与XGBOOST相关概述

LightGBM与XGBOOST算法概述LightGBM: 用于排序,分类,回归等机器学习任务,支持高效率并行训练XGBOOST:来源于GBDTLightGBM与XGBOOST相关理论基础:Boosting集成学习的一个分支,通过将弱分类器训练成强分类器,达到准确分类的效果Gradient boostingBoosting分为Adaboost和Gradient Boosting,lightGBM属于gradient boosting? 什么是gradient boosting,与adabo

2020-10-26 17:57:34 490

原创 ‘数据分析实战’——营销组合分析(甲厨电公司案例)

第8章 营销组合分析案例解析——甲厨电公司营销决策8.1 研究目的:营销决策营销组合:产品,价格,渠道,促销8.2 研究内容:营销组合分析8.2.1 产品决策分析规模预测分析 市场经济下,需要预测市场规模 资源约束下,企业需要预测产出规模本案例中,甲厨电公司对规模预测需求有三个: 厨房大家电市场规模预测 吸油烟机市场规模预测 吸油烟机生产规模预测产品属性分析8.2.2 定价决策分析8.2.3 流量渠道价值评价渠道回答的是在哪里买的问题8.2.4 促销资源

2020-08-19 18:42:21 772

原创 ‘数据分析实战’——品牌建设分析(某手机品牌建设分析)

第7章 品牌建设分析案例解析——某手机品牌建设分析7.1 研究目的:提升品牌价值7.2 研究内容:品牌认知与行为品牌认知:品牌在消费者心目中形象与地位品牌行为:消费者对品牌的了解,评价,选择和使用等一系列行为。7.2.1 品牌形象分析品牌形象:企业留给消费者的形象7.2.2 品牌知名度分析品牌知名度与使用率正相关,且知名度呈现J型分布,存在拐点;当品牌知名度到达某一点,使用率才会迅速上升。品牌知名度:品牌被消费者知晓的程度,即知道该品牌人数占总人数的百分比衡量指标: 第一提及知名度

2020-08-18 10:53:39 1074

原创 ‘数据分析实战’——STP分析案例(甲保险公司客户分类分析)

第6章 STP分析案例解析——甲保险公司客户分类分析6.1 研究目的:精准营销对车险客户分类调研分析,开展精准营销,以期建立起自身的相对优势6.2 研究内容:客户分类维度客户分类的5种维度 自然属性因素 社会特征因素 行为特征因素 态度偏好因素 生活状态与个性因素前三类属于事前分类维度;后两类属于事后分类维度6.2.1 事前分类维度事前分类维度:当接触客户时,很容易判断出客户性别,谈吐和行为,故这些维度是表露在外的,因此叫做事前分类维度,如自然属性,社会特征和行为特征等

2020-08-18 10:50:20 4554 1

原创 ‘数据分析实战’——用户偏好案例(某彩电企业用户偏好分析)

第5章 用户偏好分析案例解析——某彩电企业用户偏好分析5.1 研究目的:差异化营销5.1.1 差异化营销的必要性由于用户偏好存在差异性,差异化营销可最大限度满足用户需求,从而使企业经营业绩提升。5.1.2 差异化营销的可行性基于时间思维和结构思维,用户偏好分为五阶段和七要素,而用户差异也就体现在这里。 产生需求 信息收集 方案必选 购买决策 购后行为5.2 研究内容:五阶段和七要素5.3 用户偏好数据获取5.3.1 调研计划5.3.2 数据录入5.4 调研数据处理

2020-08-18 10:40:44 3957 1

原创 ‘数据分析实战’——战略分析案例(某购物商城分析案例)

第4章 战略分析案例解析——购物中心商城战略分析4.1 研究目的:战略选择战略分析的目的:帮助企业进行战略选择4.2 研究内容:环境分析战略选择的分析内容:环境分析,包括宏观环境,市场环境和竞争环境分析4.2.1 宏观环境分析宏观环境:影响市场的各种宏观因素,可归纳为PEST,即政治环境,经济环境,技术环境和社会文化环境4.2.2 市场环境分析衡量市场环境的指标:市场规模,利润水平,增长速度,成长潜力,所处的生命周期等4.2.3 竞争环境分析企业竞争环境可归纳为影响企业生存状态的波特五力

2020-08-18 10:33:55 1273

原创 ‘数据分析实战’——分析思路和分析视角

第2章 开启分析思路用户行为包括产生需求,信息收集,方案比选,购买决策和购后行为用户行为7要素:时间,地点,人物,事件,原因,方式方法,程度;第3章 打开分析视角3.2 对比视角3.2.1 对比的类型按照参照物:纵向对比与横向对比纵向对比:对比过去和现在,总结发展变化,形成时间序列横向对比:对比各自表现,判断优势和劣势,形成截面数据按照对比指标性质:频数统计与均值分析分类型数据:运用频数统计进行对比数值型数据:运用均值分析进行对比3.2.2 对比可信度时间上的

2020-08-18 10:26:46 1086

原创 Gitlab使用流程及常用命令

1、Gitlab 配置1.1 进入gitlab官网1.2 新用户按照流程注册用户3.初始化本地环境3.1 安装git客户端3.2 执行git config --global user.name “your full name”git config --global user.email “your starbucks email”初始化git配置信息3.3: 执行ssh-keygen -t rsa -C “your email”生成ssh 公钥和私钥,所在目录为 当前用户目录/.s

2020-07-18 16:24:20 1374

原创 数据库分库(分布),分区,分表的区别

数据库分库:当数据量很大时,往往会进行分库操作,一般常见于非关系型数据库,关系型数据库如Greenplum也是由多个数据库节点和一个主节点共同构建出来的;在Greenplum中,数据通过分布键将数据分发到各个数据节点上,这样可以提高并发操作。分区:数据分区可以理解为按照业务对一张表的数据在一个库中进行物理存储操作,类似于我们按照业务性质创建不同的文件夹,每个文件夹存储了一张表结构下被切分后的数据。ex:一张表按照日期字段进行分区,那可以理解分区是为这张表在每个日期字段内创建了文件夹。分表:分表可以理解

2020-07-09 15:31:38 2727

原创 Greemplum高级篇_Greenplum企业应用实战

第9章 数据库管理9.1 greenplum数据库逻辑结构第10章 数据库监控及调优10.2 安装performance monitorGreenplum自带了performance monitor,可用它收集当前数据库中sql信息和系统性能的指标,以图形方式展现出来,还会收集master和所有segment的信息。10.4 vacuum系统表Greenplum中所有delete并没有删除数据,而是将这一行数据标记为删除;对于OLAP,大部分表是一次导入后不再修改,故不会有这个问题,但对于数据

2020-06-18 13:21:05 623

原创 Greenplum进阶篇_Greenplum企业应用实战

第五章 执行计划详解5.3.4 关联 hash join hash left join NestLoop Merge join & merge left join: 因为要对左右表按关联键先进行排序,所以效率比hash join差 Merge full join:唯一可以执行full outer join的方式 Hash exists join5.3.5 sql消耗costrows:估计sql返回结果集行数width: 返回结果集每一行长度5.3.6 其他

2020-06-18 13:15:15 808

原创 Greenplum入门篇_Greenplum企业应用实战

Bitmap位图索引:适合只有几个固定值的列;如性别,婚姻状况,它会通过对该列的几个固定值构建出向量,之后在where条件中通过固定值对应的向量返回值第二章 greenplum快速入门Master主机与segment主机对比 Master主机1) 建立与客户端会话连接和管理2) Sql解析并形成分布式执行计划3) 将生成好的执行计划分发到每个segment上执行4) 收集segment执行结果5) Master不存储业务数据,只存储数据字典6) Master主机可一主一备,分布在两台

2020-06-18 13:02:17 615

原创 EIQ分析法_配送中心

EIQ分析法:针对不确定和波动条件的配送中心系统的一种规划方法,意义在于依据配送中心目标,掌握物流特性衍生出来物流状态,探讨其运作方式,并规划适合企业或物流系统的的一套方法。E,I,Q分别代表订单件数,货品品项和数量。EIQ分析的分析项目主要有EN(每张订单的订货品项数量分析)(注:N为日文Nnai意“种类”的首字母)(,EQ(每张订单的订货数量分析),IQ(每个单品的订货数量分析),IK(每个单品的订货次数分析)(注:K为日文Kasanatsut意“重复”的首字母)EIQ分析是根据以上四个分析项目的结

2020-05-24 14:12:55 25409

原创 经济订货批量(EOQ)模型及有计划的延期交货_库存管理基础

第3章 单件物品具有不变的需求率这里假设需求是平滑的,而不是多单位随机的;在长期中没有波动,不管是可预测的还是不可预测的供应是以离散形式批量进行,每批货物不管多少,都会有固定成本;同时,只有在经过一个固定的提前期,供应过程才能对补货订单做出响应3.2 经济订货批量(EOQ)模型关键假设是需求必须立即被满足,缺货是不允许的。3.2.1 场景设置需求以恒定速率连续发生为补充库存,仓库下订单,而从下单后到经过一个固定的提前期,供应系统会交付这一数量的产品下图描述了供应和需求对库存的净影响。大部

2020-05-17 16:07:30 9278 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除