Numpy中的数据挖掘与聚类算法

发布时间: 2023-12-11 14:48:38 阅读量: 44 订阅数: 25
# 第一章:Numpy简介与基础知识 ## 1.1 Numpy介绍与安装 Numpy是Python中一个重要的科学计算库,它提供了高效的多维数组对象(ndarray),以及对这些数组进行操作的函数集合。Numpy不仅提供了快速的数值计算能力,还能与其他科学计算库(如SciPy、Matplotlib等)相互配合使用,为数据处理、分析和可视化提供了强大的基础支持。 要安装Numpy,可以通过pip包管理器进行安装。在命令行输入以下命令即可安装最新版的Numpy: ```shell pip install numpy ``` 安装完成后,可以在Python脚本中导入Numpy库进行使用: ```python import numpy as np ``` ## 1.2 Numpy基本数据结构与操作 ### 1.2.1 数组创建与初始化 在Numpy中,最基本的数据结构是多维数组对象ndarray。可以通过Numpy提供的函数来创建和初始化数组: - 使用`numpy.array()`函数将普通的Python列表或元组转换为ndarray对象,如: ```python array = np.array([1, 2, 3, 4, 5]) ``` - 使用`numpy.zeros()`函数创建全零数组: ```python zeros_array = np.zeros((3, 3)) ``` - 使用`numpy.ones()`函数创建全一数组: ```python ones_array = np.ones((2, 2)) ``` ### 1.2.2 数组操作与运算 在Numpy中,可以对数组进行各种操作与运算,例如: - 访问数组元素: ```python array = np.array([1, 2, 3, 4, 5]) first_element = array[0] # 访问第一个元素 sub_array = array[1:3] # 截取子数组 ``` - 数组重塑与转置: ```python array = np.array([[1, 2, 3], [4, 5, 6]]) reshape_array = array.reshape((3, 2)) # 重塑数组形状 transpose_array = array.T # 转置数组 ``` - 数组运算: ```python array1 = np.array([1, 2, 3]) array2 = np.array([4, 5, 6]) sum_array = array1 + array2 # 数组相加 dot_product = np.dot(array1, array2) # 数组点乘 ``` ## 1.3 Numpy中的数据挖掘应用场景 Numpy在数据挖掘领域有着广泛的应用,主要包括以下几个方面: - 数据预处理:使用Numpy可以对原始数据进行清洗、缺失值填充、特征选择等预处理工作,为后续的数据挖掘算法提供高质量的输入。 - 特征工程:Numpy提供了丰富的线性代数计算函数,可以对数据进行降维、特征提取、特征变换等操作,提高数据的表达能力和算法的准确性。 - 模型训练与评估:Numpy支持常用的机器学习算法实现,包括回归、分类、聚类等。通过Numpy可以快速构建模型并对其进行训练和评估。 - 数据可视化与分析:Numpy与Matplotlib库可以无缝集成,提供了强大的数据可视化能力,可以直观地展示数据分布、趋势等信息,辅助数据挖掘分析的结果解释与决策。 ## 第二章:数据挖掘算法概述 数据挖掘是从大量的数据中提取出有价值的信息和知识的过程。在数据挖掘中,算法起着关键的作用,它们能够帮助我们从数据中发现隐藏的模式和规律。本章将对数据挖掘算法进行概述,包括其分类和应用场景,并重点介绍监督学习和无监督学习算法。 ### 2.1 数据挖掘算法分类及应用 数据挖掘算法可以分为多个不同的分类,根据数据挖掘任务的类型和数据的性质,可以将其划分为以下几类: - 分类算法:用于将样本数据划分到不同的预定义类别中,常见的分类算法包括决策树、逻辑回归、支持向量机等。 - 聚类算法:将相似的样本数据聚集到一起,形成簇,常见的聚类算法有K-means、层次聚类、DBSCAN等。 - 关联规则挖掘算法:用于发现数据中的频繁项集和关联规则,常见的关联规则算法包括Apriori和FP-growth算法。 - 异常检测算法:用于检测数据中的异常值或离群点,常见的异常检测算法有基于统计分析的算法和基于聚类的算法。 - 回归算法:用于建立数据特征与目标变量之间的函数关系,常见的回归算法有线性回归、多项式回归、岭回归等。 数据挖掘算法在各个行业都有广泛的应用,例如在金融领域中,可以使用分类算法来进行信用评分和风险评估;在电商领域中,可以使用关联规则挖掘算法来发现用户购买行为中的关联规律;在医疗领域中,可以使用聚类算法来对患者进行分组和分类。 ### 2.2 监督学习与无监督学习算法简介 监督学习和无监督学习是数据挖掘算法中两种主要的学习方法。 监督学习是一种通过已知输入与输出的训练样本来训练模型的方法。在监督学习中,我们通过将样本数据划分为训练集和测试集,在训练集上训练模型,在测试集上评估模型的性能。常见的监督学习算法有决策树、逻辑回归、支持向量机等。 无监督学习是一种从无标签数据中发现隐藏的模式和结构的方法。在无监督学习中,我们只有输入数据而没有相应的输出。常见的无监督学习算法有聚类算法、关联规则挖掘算法等。 ### 2.3 Numpy在数据挖掘算法中的优势与应用 Numpy是Python中一个重要的数值计算库,它提供了高效的多维数组和各种数学函数,能够方便地进行数据处理和分析。在数据挖掘算法中,Numpy具有以下优势: - 高效的数组操作:Numpy中的数组操作是通过C语言实现的,运算速度较快,可以高效地处理大规模数据。 - 丰富的数学函数:Numpy提供了许多常用的数学函数,例如线性代数运算、傅里叶变换、随机数生成等,这些函数能够辅助数据挖掘算法的实现和分析。 - 多维数据处理:Numpy的多维数组对象能够方便地表示和处理多维数据,可以提供更加灵活和高效的数据挖掘算法实现。 在数据挖掘算法中,Numpy可以应用于数据预处理、特征工程、模型训练和评估等各个环节。例如,可以使用Numpy对数据进行清洗、归一化、缺失值处理等预处理操作;可以使用Numpy进行特征选择、特征提取和特征转换等特征工程操作;还可以使用Numpy搭建机器学习模型,并使用其提供的函数进行模型训练和评估。 ## 第三章:数据聚类算法原理与实践 数据聚类算法是数据挖掘领域中常用的一种技术,它能够将相似的数据点归为一类,从而帮助我们发现数据中的隐藏模式和规律。本章将介绍数据聚类算法的原理与实践,并探索Numpy在聚类算法中的应用。 ### 3.1 聚类算法概念与分类 #### 3.1.1 聚类算法概念 聚类算法是一种无监督学习算法,它根据数据点之间的相似性将它们划分为不同的群组或簇,使得同一簇内的数据点尽可能相似,而不同簇间的数据点尽可能不相似。聚类算法的目标是通过聚类结果,发现数据集中的固有结构,并生成有关数据的结论。 #### 3.1.2 聚类算法分类 常见的聚类算法可以分为以下几类: - 划分聚类算法:将数据集划分为不相交的簇,每个数据点只属于一个簇。代表算法有K均值聚类算法(K-means)、K中心聚类算法等。 - 层次聚类算法:将数据集层次化地划分成树状结构,每个节点对应一个簇。代表算法有凝聚层次聚类算法、分裂层次聚类算法等。 - 基于密度的聚类算法:通过计算数据点的密度来划分簇,可以处理各种形状和大小的簇。代表算法有DBSCAN(密度聚类算法)、OPTICS(基于密度的空间聚类算法)等。 - 基于网格的聚类算法:将数据集划分为网格,每个网格对应一个簇。代表算法有CLARA(基于代表性对象的聚类算法)、CLIQUE(基于密度的聚类算法)等。 ### 3.2 K均值聚类算法原理与实现 #### 3.2.1 K均值聚类算法原理 K均值聚类算法是一种常用且经典的划分聚类算法,其原理如下: - 随机选择K个初始聚类中心; - 将每个数据点分配到距离最近的聚类中心所在的簇; - 重新计算每个簇的质心; - 重复上述两个步骤,直到聚类不再发生变化或达到最大迭代次数。 #### 3.2.2 K均值聚类算法实现示例 下面是使用Numpy实现K均值聚类算法的示例代码: ```python import numpy as np def k_means(X, K, max_iter): # 随机初始化K个聚类中心 centroids = X[np.random.choice(range(len(X)), K, replace=False)] for _ in range(max_iter): # 计算每个数据点与聚类中心的距离 distances = np.linalg.norm(X[:, np.newaxis, :] - centroids, axis=-1) # 根据距离选择最近的聚类中心,并更新簇分配结果 labels = np.argmin(distances, axis=-1) # 更新聚类中心为簇内数据点的均值 for i in range(K): centroids[i] = np.mean(X[labels == i], axis=0) return labels, centroids ``` ### 3.3 Numpy中的聚类算法应用案例分析 Numpy提供了丰富的功能,能够方便地应用于聚类算法的实现和应用。下面是一个使用Numpy进行K均值聚类的实例: ```python import numpy as np import matplotlib.pyplot as plt # 生成示例数据 np.random.seed(0) X = np.concatenate([np.random.randn(100, 2) * 0.5, np.random.randn(100, 2) * 1.5 + np.array([3, 3])]) # 使用K均值聚类算法进行聚类 labels, centroids = k_means(X, K=2, max_iter=10) # 可视化聚类结果 plt.scatter(X[:, 0], X[:, 1], c=labels) plt.scatter(centroids[:, 0], centroids[:, 1], marker='X', color='r') plt.xlabel('x') plt.ylabel('y') plt.title('K-means Clustering') plt.show() ``` 运行以上代码,将得到一个聚类结果可视化的图表,其中不同颜色的点表示不同的簇,红色叉号表示聚类中心。 通过以上的示例分析,我们可以看到Numpy提供了一些便捷的函数和数据结构,方便我们在聚类算法中进行数据的处理、聚类模型的构建和结果的可视化。 ### 第四章:Numpy在数据挖掘中的应用 在数据挖掘领域,Numpy作为Python中最常用的科学计算库之一,扮演着至关重要的角色。Numpy提供了高性能的多维数组对象以及用于处理这些数组的工具,使得数据处理、特征工程、模型训练与评估、数据可视化与分析等方面变得更加高效和便捷。 #### 4.1 Numpy在数据处理与特征工程中的应用 在数据挖掘过程中,数据处理和特征工程是至关重要的环节。Numpy提供了丰富的数据处理功能,广泛应用于数据预处理、数据清洗、数据变换等环节。 ```python # 示例代码:使用Numpy进行数据预处理与特征工程 import numpy as np # 生成示例数据 data = np.array([[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]) # 数据标准化 mean = np.mean(data, axis=0) std = np.std(data, axis=0) normalized_data = (data - mean) / std # 数据变换 log_data = np.log(data) sqrt_data = np.sqrt(data) # 特征选择 selected_features = data[:, :2] # 选择前两列作为特征 # 其他数据处理操作,如缺失值处理、异常值处理等 ``` #### 4.2 Numpy在模型训练与评估中的应用 Numpy在机器学习模型的训练与评估过程中发挥着不可或缺的作用。通过Numpy提供的高效数组操作和数学运算功能,可以快速进行模型参数的更新、损失函数的计算以及模型性能的评估。 ```python # 示例代码:使用Numpy进行模型训练与评估 import numpy as np from sklearn.linear_model import LinearRegression from sklearn.metrics import mean_squared_error # 生成示例数据 X = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) y = np.array([3, 6, 9]) # 模型训练 model = LinearRegression() model.fit(X, y) # 模型预测 y_pred = model.predict(X) # 模型评估 mse = mean_squared_error(y, y_pred) print("Mean Squared Error:", mse) ``` #### 4.3 Numpy在数据可视化与分析中的应用 除了在数据处理和模型训练中的应用外,Numpy还可以与其他数据可视化和分析库(如Matplotlib、Pandas等)无缝结合,为数据挖掘工作提供强大的支持。 ```python # 示例代码:使用Numpy进行数据可视化与分析 import numpy as np import matplotlib.pyplot as plt # 生成示例数据 x = np.linspace(0, 10, 100) y = np.sin(x) # 数据可视化 plt.plot(x, y) plt.xlabel('x') plt.ylabel('sin(x)') plt.title('Sin Function') plt.show() ``` 第五章:实例分析:使用Numpy进行聚类分析 ## 5.1 数据准备与预处理 在进行聚类分析之前,首先需要准备数据,并进行适当的预处理。 首先,我们需要导入必要的库和模块: ```python import numpy as np import pandas as pd from sklearn.preprocessing import StandardScaler from sklearn.cluster import KMeans import matplotlib.pyplot as plt ``` 接下来,我们加载数据集。假设我们有一个包含多个特征的数据集,每行代表一个样本,每列代表一个特征。我们使用`pandas`库中的`read_csv`函数读取一个名为`data.csv`的数据文件: ```python data = pd.read_csv('data.csv') ``` 然后,我们需要对数据进行预处理。在聚类分析中,常常需要对数据进行标准化处理,以便各个特征的值在相同的范围内。我们可以使用`sklearn`库中的`StandardScaler`类对数据进行标准化处理: ```python scaler = StandardScaler() scaled_data = scaler.fit_transform(data) ``` ## 5.2 聚类算法模型选择与参数调优 在对数据进行预处理之后,我们需要选择合适的聚类算法模型,并调优其参数,以得到最佳的聚类效果。 本例中,我们选择K均值聚类算法作为示例。 ```python # 初始化聚类模型 kmeans = KMeans(n_clusters=3, random_state=0) # 在标准化后的数据上训练模型 kmeans.fit(scaled_data) # 输出各个簇的质心 print(kmeans.cluster_centers_) # 输出每个样本所属的簇 labels = kmeans.labels_ print(labels) ``` 以上代码中,我们通过设置`n_clusters`参数为3来指定聚类的簇数,然后使用标准化后的数据训练K均值聚类模型。最后,我们输出了各个簇的质心和每个样本所属的簇。 请注意,聚类算法的参数选择和调优是一个非常复杂的过程,需要根据实际情况进行实验和调整。 ## 5.3 结果分析与可视化展示 最后,我们对聚类分析的结果进行分析和可视化展示,以便更好地理解数据的分布情况和聚类效果。 ```python # 可视化聚类结果 plt.scatter(scaled_data[:, 0], scaled_data[:, 1], c=kmeans.labels_) plt.scatter(kmeans.cluster_centers_[:, 0], kmeans.cluster_centers_[:, 1], marker='x', color='r') plt.xlabel('Feature 1') plt.ylabel('Feature 2') plt.title('Clustering Results') plt.show() ``` 以上代码中,我们使用`matplotlib`库中的`scatter`函数将数据样本在二维平面上进行可视化展示。不同的簇用不同的颜色进行标记,质心用红色的`x`标记。 通过可视化展示,我们可以直观地了解聚类分析的结果,并进行进一步的分析和解释。 这是使用Numpy进行聚类分析的一个简单示例。在实际应用中,聚类分析可用于数据的分类、异常检测、市场细分等众多领域。 ### 第六章:Numpy中的数据挖掘与聚类算法发展趋势 数据挖掘与聚类算法一直是数据科学领域的热门话题,而Numpy作为Python中的重要数据处理库,在数据挖掘与聚类算法中也扮演着举足轻重的角色。随着技术的不断发展,Numpy在数据挖掘与聚类领域的应用也在不断升级与演进。 #### 6.1 Numpy在数据挖掘与聚类领域的最新研究进展 近年来,随着深度学习和神经网络的兴起,Numpy库也开始与深度学习框架进行整合,为数据挖掘与聚类任务提供更加强大的支持。研究人员通过对Numpy的优化和扩展,使其可以更高效地处理大规模数据,并与GPU加速技术结合,进一步提升数据挖掘与聚类算法的性能。 另外,针对非结构化数据的挖掘需求日益增加,Numpy在自然语言处理(NLP)和图像处理领域的应用也逐渐增多。通过结合Numpy与相关的自然语言处理库和图像处理库,可以实现对文本数据和图像数据的高效挖掘与聚类分析,这为跨领域的数据挖掘研究和应用拓展了新的可能性。 #### 6.2 未来Numpy在数据挖掘与聚类算法中的应用前景 随着人工智能和大数据技术的不断发展,数据挖掘与聚类算法在各行各业的应用场景将更加丰富和多样化。作为数据处理和分析的基础库之一,Numpy将在未来继续发挥重要作用,并且有望在以下领域取得更多突破: - **跨领域整合**:Numpy将与更多领域的数据处理和分析库进行整合,为跨领域的数据挖掘任务提供更便捷的解决方案。 - **自动化建模与优化**:Numpy将借助自动化机器学习和模型优化的技术,为数据挖掘与聚类算法的建模和调参提供更智能化的支持。 - **分布式计算与协同处理**:随着数据规模的不断扩大,Numpy将与分布式计算框架深度结合,实现大规模数据的并行计算与分布式处理。 #### 6.3 结语
corwn 最低0.47元/天 解锁专栏
买1年送3月
点击查看下一篇
profit 百万级 高质量VIP文章无限畅学
profit 千万级 优质资源任意下载
profit C知道 免费提问 ( 生成式Al产品 )

相关推荐

勃斯李

大数据技术专家
超过10年工作经验的资深技术专家,曾在一家知名企业担任大数据解决方案高级工程师,负责大数据平台的架构设计和开发工作。后又转战入互联网公司,担任大数据团队的技术负责人,负责整个大数据平台的架构设计、技术选型和团队管理工作。拥有丰富的大数据技术实战经验,在Hadoop、Spark、Flink等大数据技术框架颇有造诣。
专栏简介
本专栏以Numpy为主题,深入探讨了Numpy库在数据处理与分析领域的诸多应用。首先介绍了Numpy的基本概念与安装指南,然后重点介绍了Numpy数组的操作、索引和基本运算,以及Numpy中的广播机制和矢量化操作。随后,深入讨论了Numpy在线性代数计算、随机数生成、排序与搜索算法、位运算与逻辑运算等方面的应用。同时涵盖了Numpy中丰富的数学函数与统计函数,以及在图像处理、时间序列分析、缺失数据处理、数据集合与查询、数据可视化、文本处理、特征工程等方面的应用技巧。最后,专栏还涉及了Numpy在机器学习、数据挖掘、聚类算法,以及时间序列预测与建模等领域的应用。通过本专栏的学习,读者将掌握丰富的Numpy应用技巧,为数据处理与分析提供更多可能性。
最低0.47元/天 解锁专栏
买1年送3月
百万级 高质量VIP文章无限畅学
千万级 优质资源任意下载
C知道 免费提问 ( 生成式Al产品 )

最新推荐

【Xshell7串口使用教程】:10分钟带你从零开始精通串口通信

![【Xshell7串口使用教程】:10分钟带你从零开始精通串口通信](https://img-blog.csdnimg.cn/20200426193946791.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1JvZ2VyXzcxNw==,size_16,color_FFFFFF,t_70) # 摘要 本文详细介绍了Xshell7在串口通信领域的应用,从基础设置到高级实践操作,深入探讨了如何搭建和配置环境、理解通信协议、配置参数、实

【OPC UA基础教程】:掌握WinCC与KEPServerEX6连接的必要性,实现无缝通信

# 摘要 OPC UA (Open Platform Communications Unified Architecture) 技术是工业自动化领域中用于数据交换和通信的关键技术。本文首先对OPC UA技术进行概述,然后深入探讨WinCC与KEPServerEX6之间通过OPC UA连接的原理和实践基础。文章详细说明了如何实现两者间的OPC UA连接,并通过工业自动化应用案例分析,展示了OPC UA技术的实际应用效果和潜在价值。本文旨在为工业自动化领域的技术人员提供一套完整的OPC UA应用指南,以及对其在工业场景中应用的深入理解和实战经验。 # 关键字 OPC UA;WinCC;KEPSe

IBM SVC 7.8兼容性完整攻略:5个关键步骤确保升级成功

![IBM SVC 7.8兼容性完整攻略:5个关键步骤确保升级成功](https://www.enterprisestorageforum.com/wp-content/uploads/2022/02/IBM-SAN-volume-controller-.jpeg) # 摘要 在当前的信息技术环境中,系统兼容性和升级过程的管理对于保持业务连续性至关重要。本文全面探讨了IBM SVC 7.8升级项目的各关键阶段,包括评估现有环境的硬件配置与软件兼容性、性能需求、以及规划升级过程中的目标设定、兼容性测试策略和风险缓解措施。文章详细描述了执行升级的具体步骤、进行兼容性测试的流程以及如何分析测试结果

【Qt串口数据包解析】:掌握高效接收,QSerialPort模块使用完全指南

![【Qt串口数据包解析】:掌握高效接收,QSerialPort模块使用完全指南](https://img-blog.csdnimg.cn/161f83db997b45cab0de5e3824c26741.png) # 摘要 本文详细介绍了Qt框架下的串口通信技术,涵盖了基础概念、核心模块解析、数据包解析技术与实践,以及高级应用和项目案例分析。重点解析了QSerialPort模块的结构、配置和使用,探讨了数据包解析的理论基础和实际应用,并提供了加密、压缩及错误处理策略。案例研究部分深入分析了项目需求、代码实现和性能优化。最后,文章展望了Qt串口编程的未来趋势,包括硬件接口演进、跨平台通信策略

SARScape图像裁剪终极指南:你必须掌握的关键技术

![SARScape图像裁剪终极指南:你必须掌握的关键技术](https://www.earthdata.nasa.gov/s3fs-public/imported/SARPolarization.jpg?VersionId=mSa4j.XwWY8P_9Y0fxw9Ycp0FjGxLDaY) # 摘要 本文对SARScape图像裁剪技术进行了全面的探讨,涵盖了从基础理论到高级应用的各个方面。首先介绍了图像裁剪的基本概念、数学原理以及空间解析,然后详细说明了裁剪技术在性能影响因素中的作用。紧接着,本文通过实践操作部分深入分析了裁剪前的准备工作、SARScape裁剪工具的使用方法和裁剪后图像质量

寿力空压机保养黄金指南:制定并执行完美的维护计划

![寿力空压机保养黄金指南:制定并执行完美的维护计划](https://totalshield.com/wp-content/uploads/2022/04/pneumatic-compressure-for-testing.png) # 摘要 本文全面介绍了寿力空压机的基础知识、维护理论、制定维护计划的策略、日常保养指南以及解决常见故障的方法。首先阐述了空压机的工作原理和维护的必要性,随后详细介绍了预防性和预测性维护策略,以及如何根据设备规格和使用环境定制个性化维护计划。文章还为操作人员提供了详尽的日常保养实践指南,包括日常检查项目、耗材更换和清洁工作的正确方法。此外,本文还探讨了通过故障

MySQL权威故障解析:一次搞懂ERROR 1045 (28000)

![MySQL权威故障解析:一次搞懂ERROR 1045 (28000)](https://pronteff.com/wp-content/uploads/2024/05/MySQL-Security-Best-Practices-For-Protecting-Your-Database.png) # 摘要 ERROR 1045 (28000)是MySQL数据库中一个常见的用户认证错误,此错误通常与用户权限管理不当有关。本文首先介绍了MySQL的基本概念和ERROR 1045错误的概况,然后深入分析了ERROR 1045产生的理论基础,包括用户认证流程、权限系统的结构及其错误处理机制。在此基

机器人视觉系统构建:从图像捕获到智能处理的完整指南

![机器人使用](https://venturebeat.com/wp-content/uploads/2021/10/GettyImages-1316352689-e1635532855453.jpg?w=1200&strip=all) # 摘要 本文全面探讨了机器人视觉系统,从基础的图像捕获技术到高级的图像处理算法及其在智能决策与控制中的应用。首先介绍了视觉系统的基础知识和图像捕获设备与技术,包括相机和传感器的工作原理、光学系统以及相关软硬件的选择。接着深入分析了图像处理技术,如图像预处理、特征提取和深度学习在图像识别中的应用。第三部分聚焦于视觉系统在智能决策和控制方面的实施,讨论了智能

【蓝凌OA系统V15.0:权限管理的策略与实践】

![【蓝凌OA系统V15.0:权限管理的策略与实践】](https://www.landray.com.cn/api/upload-files/image/info/content/image/202007-980c5382-2d29-4345-be26-5365549cd9b4.png) # 摘要 在现代企业资源管理中,OA系统扮演着至关重要的角色,其中权限管理是保障系统安全、维护数据完整性的基石。本文从理论基础出发,探讨了权限管理的核心原则、不同访问控制模型(RBAC、ABAC、TBAC)以及最佳实践和面临的挑战。针对蓝凌OA系统V15.0,本文详细分析了其权限管理的架构、角色和权限的创