《机器学习项目案例开发》课件全套 张明 1.1人工智能概述-26.推系统_第1页
《机器学习项目案例开发》课件全套 张明 1.1人工智能概述-26.推系统_第2页
《机器学习项目案例开发》课件全套 张明 1.1人工智能概述-26.推系统_第3页
《机器学习项目案例开发》课件全套 张明 1.1人工智能概述-26.推系统_第4页
《机器学习项目案例开发》课件全套 张明 1.1人工智能概述-26.推系统_第5页
已阅读5页,还剩273页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

人工智能技术与应用1.1概述课程概况—基本情况PART01概述人工智能概述开发流程机器学习人工智能概述人工智能概述机器学习和人工智能,深度学习的关系:机器学习是人工智能的一个实现途径深度学习是机器学习的一个方法发展而来1956年达特茅斯会议-人工智能的起点机器学习机器学习:用在挖掘、预测领域:应用场景:店铺销量预测、量化投资、广告推荐、企业客户分类用在图像领域:应用场景:街道交通标志检测、人脸识别等等用在自然语言处理领域:应用场景:文本分类、情感分析、自动聊天、文本检测等等机器学习机器学习:监督学习定义:输入数据是由输入特征值和目标值所组成。函数的输出可以是一个连续的值(称为回归),或是输出是有限个离散值(称作分类)。分类k-近邻算法、贝叶斯分类、决策树与随机森林、逻辑回归、神经网络回归线性回归、岭回归机器学习:无监督学习定义:输入数据是由输入特征值所组成。聚类k-means开发流程开发流程:数据集特征工程特征抽取特征预处理特征降维特征选择建模训练模型应用模型敬请指导!人工智能技术与应用1.2使用简单线性回归预测广告投入的收入-数据分析课程概况—基本情况PART01数据分析项目概述开发流程机器学习人工智能概述项目背景:公司统计了近期公司在微信、微博、电视和其他广告媒体上的投入,现在需要预测在广告媒体上投入多少资金,公司能获得多大的收益。数据集:

特征:wechat、weibo、others标签:sales处理流程-加载数据加载数据:Pandasread_csv函数:打开CSV文件,返回一个data.frame对象使用head()、info()、describe()函数查看数据:

处理流程-相关性分析数据相关性分析:corr()函数:检查两个变量之间变化趋势的方向以及程度,值范围-1到+1,0表示两个变量不相关,正值表示正相关,负值表示负相关,值越大相关性越。可以使用热力图heatmap来显示相关系数

处理流程-相关性分析数据相关性分析:使用seaborn绘制pairplot图,也可以分析出单个特征和标签之间的一种关系。例如“wechat”微信的投入基本和收益呈现一种线性关系。处理流程-选取数据选取数据:通过对数据现相关性的分析,我们够可以从数据集中取出“wechat”微型的数据作为X,“sales”作为y建立一个线性模型并训练模型。

处理流程-选取数据选取数据:张量-tensor是现代机器学习的基础。它的核心是一个数据容器,多数情况下,它包含数字,有时候它也包含字符串,但这种情况比较少。因此把它想象成一个数字的水桶。0维度张量--标量--一个数字1维度张量—向量—1维数组—1个人单列或者单行的数据2维度张量—矩阵—2维数组—由行和列构成的数据3维度张量—三个轴(axis)—3阶(Rank)—秩为3的数组*张量的维度为轴,轴的个数为阶,numpy中也叫秩处理流程-选取数据选取数据:张量-tensor750x7502维度张量黑白照片(750,750)750x7503维度张量彩色照片(750,750,3)750x7504维度张量15秒(4500帧视频)(4500,750,750,3)处理流程-线性回归线性回归模型:简单线性回归也称为一元线性回归,也就是回归模型中只含一个自变量,否则称为多重线性回归。简单线性回归模型为:y=a*x+b有时候也可这样表述y=weight*x+bias,其中weight-权重,bias-偏置值。我们需要根据给定的y-企业的收入和x-企业的广告收入,去预测w和b,最终得到一个一元线性方程,通过这个方程,可以预测出企业投入的广告资金大概可以获得多大的收益,

处理流程-选取数据选取数据:通过对数据现相关性的分析,我们够可以从数据集中取出“wechat”微型的数据作为X,“sales”作为y建立一个线性模型并训练模型。使用narray转为张量

处理流程-拆分数据集数据集:训练集-----------学生的课本;学生根据课本里的内容来掌握知识。验证集------------作业,通过作业可以知道不同学生学习情况、进步的速度快慢。测试集-----------考试,考的题是平常都没有见过,考察学生举一反三的能力处理流程-数据归一化数据归一化:在机器学习中,为何要经常对数据做归一化,归一化后加快了梯度下降求最优解的速度。归一化有可能提高精度。我们在这里使用线性归一化。

处理流程-数据归一化数据归一化:min-max标准化(Min-MaxNormalization)归一化也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0-1]之间。转换函数如下:处理流程-数据归一化数据归一化:min-max标准化(Min-MaxNormalization)归一化也称为离差标准化,是对原始数据的线性变换,使结果值映射到[0-1]之间。转换函数如下:敬请指导!人工智能技术与应用2.使用多元线性回归预测广告投入的收入课程概况—基本情况PART01多元线性模型项目概述归一化和反归一化多元线性模型模型的准确率损失函数项目概述项目背景:

公司统计了近期公司在微信、微博、电视和其他广告媒体上的投入,现在需要预测在广告媒体上投入多少资金,公司能获得多大的收益。在项目一种我们使用微型的投入预测公司的预期收入,但是公司在微博和其他媒体中也投入资金,现在需要预测在所有这个媒体上投入资金的收益就需要使用多元线性回归模型。数据集:

特征:wechat、weibo、others标签:sales多元线性模型

归一化归一化和反归一化:归一化:在机器学习中,为何要经常对数据做归一化,归一化后加快了梯度下降求最优解的速度,归一化有可能提高精度。我们在这里使用线性归一化。反归一化:反归一化函数用于数据的复原,保存y_min,y_max,y_gap,计算训练集最大,最小值以及他们的差,用于后面反归一化过程,同时保留一份原始的数据。多元线性方程

梯度下降

梯度下降

梯度下降

准确率准确率:Acc:先计算预测值y_pred和实际值y的差值,并使用np.abs()求绝对值,然后使用np.mean()求全部距离的平均值,这是值是y_pred和实际值y的”距离”,我们可以通过“距离”的远近作为模型的准确率。敬请指导!人工智能技术与应用项目3:使用scikit-learn预测广告收入课程概况—基本情况PART01多元线性模型项目概述归一化、标准化和中心化Scikit-learn简介模型的准确率sklearnLinearRegression模型

项目概述项目背景:

公司统计了近期公司在微信、微博、电视和其他广告媒体上的投入,现在需要预测在广告媒体上投入多少资金,公司能获得多大的收益。在项目一种我们使用微型的投入预测公司的预期收入,但是公司在微博和其他媒体中也投入资金,现在需要预测在所有这个媒体上投入资金的收益就需要使用多元线性回归模型。数据集:

特征:wechat、weibo、others标签:sales多元线性模型scikit-learn:多元线性回归,也就是回归模型中包含多个自变量。多元线性回归Scikit-learn(以前称为scikits.learn,也称为sklearn)是针对Python编程语言的免费软件机器学习库,是一个Python的机器学习项目,是一个简单高效的数据挖掘和数据分析工具。基于NumPy、SciPy和matplotlib构建它具有各种分类,回归和聚类、降维、模型选择、预处理六大功能。归一化Seaborn-distplot:SeabornSeaborn是一种基于matplotlib的图形可视化pythonlibraty。它提供了一种高度交互式界面,便于用户能够做出各种有吸引力的统计图表。distplot:seaborn中的distplot主要功能是绘制单变量的直方图,且还可以在直方图的基础上施加kdeplot和rugplot的部分内容(直方图+核密度估计)。归一化Seaborn-KDE-直方图:质量分布图-histogram是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况。一般用横轴表示数据类型,纵轴表示分布情况。语法

sns.distplot(x,kde=False,rug=True)#利用bins可以方便设置矩形条的数量#kde=False关闭核密度分布,rug表示在x轴上每个观测上生成的小细条(边际毛毯)归一化Seaborn-KDE-直方图:密度图核密度估计是在概率论中用来估计未知的密度函数,属于非参数检验方法之一。是一种从数据样本本身出发研究数据分布特征的方法。核密度图意义

可以看作是概率密度图,其纵轴可以粗略看做是数据出现的次数,与横轴围成的面积是1.格式sns.distplot(x,hist=False,rug=True);#关闭直方图,开启rug细条归一化Seaborn-pairolot-两两关系图:pairolotpairplot中pair是成对的意思,pairplot主要展现的是变量两两之间的关系(线性或非线性,有无较为明显的相关关系核密度图意义格式sns.pairplot(data[['wechat','weibo','others']])sns.pairplot(data,x_vars=['wechat','weibo','others'],

y_vars='sales',height=4,aspect=1,kind='scatter')多元线性方程多元线性方程的loss_function:敬请指导!人工智能技术与应用项目4:使用scikit-learn实现多项式回归课程概况—基本情况PART01多项式回归多项式概述管道用法特征增扩多项式概述项目背景:前面我们使用简单线性回归和多元线性回归来拟合广告收入的例子,但是在实际生活中,很多数据之间是非线性关系,虽然也可以用线性回归拟合非线性回归,但是效果将会很差,这时候就需要对线性回归模型进行改进,使之能够拟合非线性数据。

右图数据呈现非线性关系,需要多项式回归模型。多项式回归是在线性回归基础上进行改进,相当于为样本再添加特征项。如右图所示,为样本添加一个x^2的特征项,可以较好地拟合非线性的数据。多项式回归:一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归,如果自变量只有一个时,称为一元多项式回归,如果有多个自变量时称为多元多项式回归。由于任何函数都可以使用多项式逼近,因此多项式回归有着广泛的应用。

多项式概述特征增扩

pipeline:Python中的pipeline和linux中的pipeline类似,把若干个命令连接起来,前一个命令的输出是后一个命令的输入,最终完成一个类似于流水线的功能。函数:sklearn.pipeline.Pipeline(steps)参数:steps:一个列表,列表的元素为(name,transform)元组,其中name是学习器的名字,用于输出和日志;transform是学习器,Pipeline管道敬请指导!人工智能技术与应用6.1机器学习分类课程概况—基本情况PART01机器学习分类机器学习分类机器学习算法一览表机器学习分类机器学习监督学习:例如用户点击、预测购买、房价预测无监督学习:邮件分类、新闻聚类强化学习:如动态系统及机器人控制机器学习分类有监督学习-训练、学习身高头发长度是否抽烟性别1.881.4cm是男1.6622.6cm否女机器学习分类有监督学习-预测身高头发长度是否抽烟性别1.803.4cm是?1.6425.6cm否?机器学习分类无监督学习-训练、学习领子衣袖材质颜色V领长袖纤维红色V领短袖棉麻白色圆领短袖材质黑色圆领长袖纤维红色立领长袖棉麻白色机器学习分类无监督学习-预测领子衣袖材质颜色V领长袖纤维红色V领短袖棉麻白色圆领短袖材质黑色圆领长袖纤维红色立领长袖棉麻白色聚类类别聚类1

聚类2

聚类3聚类4聚类5机器学习分类无监督学习春装夏装冬装机器学习分类增强式学习行为认知启发下的机器学习分支Agent感知环境,做出动作,根据奖惩状态/feedback做出调整和选择机器学习分类算法一览表:MachineLearningAlgorithms(机器学习算法)ContinuousCategoricalUnsupervisedSupervisedClusteriingDimensionalityReductionSVDPCAK-meansRegressionLinear

PolynomialDecisionTreeRandomForestsAssociationAnalysis

AprioriFP-GrowthHiddenMarkowModelClassificationKNNTreeLogisticsReGression

Naïve-Bayes

SVM机器学习分类算法一览表:敬请指导!人工智能技术与应用6.2逻辑回归-判定边界课程概况—基本情况PART01机器学习-逻辑回归什么是逻辑回归机器学习算法一览表机器学习分类机器学习-Classification线性回归:预测是一个连续的值,房价、收入逻辑回归:预测是一个离散值,邮件分类、新闻聚类解决分类问题:我们讨论的垃圾邮件分类实际上就是一个分类问题。类似的例子还有很多,例如一个在线交易网站判断一次交易是否带有欺诈性。再如,判断一个肿瘤是良性的还是恶性的,也是一个分类问题。在以上的这些例子中,预测的是一个二值的变量,或者为0,或者为1;或者是一封垃圾邮件,或者不是;或者是带有欺诈性的交易,或者不是;或者是一个恶性肿瘤,或者不是。机器学习分类机器学习-Classification可以将因变量(dependantvariable)可能属于的两个类分别称为负向类(negativeclass)和正向类(positiveclass)。可以使用0来代表负向类,1来代表正向类。分类问题仅仅局限在两类上:0或者1。之后我们会讨论多分类问题,也就是说,变量y可以取多个值,例如0,1,2,3。(Yes)1(No)0恶性?肿瘤大小机器学习分类Classification-根据肿瘤大小判定良性恶性训练集如上图所示,横轴代表肿瘤大小,纵轴表示肿瘤的良性与否,注意,纵轴只有两个取值,1(代表恶性肿瘤)和0(代表良性肿瘤)。分类问题仅仅局限在两类上:良性-0的和恶性的-1(Yes)1(No)0恶性?肿瘤大小机器学习分类Classification-根据肿瘤大小判定良性恶性线性回归来处理,实际上就是用一条直线去拟合这些数据。可以先使用线性回归去拟合,然后设定一个阀,0.5,小于阀值的是0-不是恶性肿瘤,大于阀值是1-是恶性肿瘤。用公式表示如下图所示:(Yes)1(No)0恶性?肿瘤大小

机器学习分类xxxxxxxxxxx恶性肿瘤?肿瘤大小(Yes)1(No)0阀值

Classification-根据肿瘤大小判定良性恶性上面的例子似乎很好解决了恶性肿瘤的预测问题,但是这种模型有一个最大问题是对噪声很敏感(鲁棒性不够),如果增加两个训练样本,按照线性回归+阀值的思路,使用线性回归会得到一条直线,然后设置阀值为0.5,如下图所示:这时会产生两个误判点,这是如果再使用0.5来做阀值来预测是否是恶性肿瘤就不合适了。机器学习分类xxxxxxxxxxx癌症?肿瘤大小(Yes)1(No)0x阀值误判点Classification-根据肿瘤大小判定良性恶性这时会产生两个误判点,这是如果再使用0.5来做阀值来预测是否是恶性肿瘤就不合适了。机器学习分类xxxxxxxxxxx癌症?肿瘤大小(Yes)1(No)0x阀值误判点Classification-根据肿瘤大小判定良性恶性这时会产生两个误判点,这是如果再使用0.5来做阀值来预测是否是恶性肿瘤就不合适了。机器学习分类Sigmoid函数这里使用sigmoid函数将将一个(−∞,+∞)之内的实数值变换到区间0-1之间,单调增,定义域是(−∞,+∞),值域是(0,1)函数如下所示:机器学习分类xxxxxxxxxxx

机器学习分类xxxxxxxxxxx

xxxxxxxxx

机器学习分类判定边界通过上面的例子可以看出,逻辑回归就是去寻找判定边界,如果给高维的多项式,可以得到很负责的判定边界,下图所示:敬请指导!人工智能技术与应用6.2逻辑回归-判定边界课程概况—基本情况PART01机器学习-逻辑回归什么是逻辑回归机器学习算法一览表机器学习分类机器学习-Classification线性回归:预测是一个连续的值,房价、收入逻辑回归:预测是一个离散值,邮件分类、新闻聚类解决分类问题:我们讨论的垃圾邮件分类实际上就是一个分类问题。类似的例子还有很多,例如一个在线交易网站判断一次交易是否带有欺诈性。再如,判断一个肿瘤是良性的还是恶性的,也是一个分类问题。在以上的这些例子中,预测的是一个二值的变量,或者为0,或者为1;或者是一封垃圾邮件,或者不是;或者是带有欺诈性的交易,或者不是;或者是一个恶性肿瘤,或者不是。机器学习分类机器学习-Classification可以将因变量(dependantvariable)可能属于的两个类分别称为负向类(negativeclass)和正向类(positiveclass)。可以使用0来代表负向类,1来代表正向类。分类问题仅仅局限在两类上:0或者1。之后我们会讨论多分类问题,也就是说,变量y可以取多个值,例如0,1,2,3。(Yes)1(No)0恶性?肿瘤大小机器学习分类Classification-根据肿瘤大小判定良性恶性训练集如上图所示,横轴代表肿瘤大小,纵轴表示肿瘤的良性与否,注意,纵轴只有两个取值,1(代表恶性肿瘤)和0(代表良性肿瘤)。分类问题仅仅局限在两类上:良性-0的和恶性的-1(Yes)1(No)0恶性?肿瘤大小机器学习分类Classification-根据肿瘤大小判定良性恶性线性回归来处理,实际上就是用一条直线去拟合这些数据。可以先使用线性回归去拟合,然后设定一个阀,0.5,小于阀值的是0-不是恶性肿瘤,大于阀值是1-是恶性肿瘤。用公式表示如下图所示:(Yes)1(No)0恶性?肿瘤大小

机器学习分类xxxxxxxxxxx恶性肿瘤?肿瘤大小(Yes)1(No)0阀值

Classification-根据肿瘤大小判定良性恶性上面的例子似乎很好解决了恶性肿瘤的预测问题,但是这种模型有一个最大问题是对噪声很敏感(鲁棒性不够),如果增加两个训练样本,按照线性回归+阀值的思路,使用线性回归会得到一条直线,然后设置阀值为0.5,如下图所示:这时会产生两个误判点,这是如果再使用0.5来做阀值来预测是否是恶性肿瘤就不合适了。机器学习分类xxxxxxxxxxx癌症?肿瘤大小(Yes)1(No)0x阀值误判点Classification-根据肿瘤大小判定良性恶性这时会产生两个误判点,这是如果再使用0.5来做阀值来预测是否是恶性肿瘤就不合适了。机器学习分类Sigmoid函数这里使用sigmoid函数将将一个(−∞,+∞)之内的实数值变换到区间0-1之间,单调增,定义域是(−∞,+∞),值域是(0,1)函数如下所示:机器学习分类xxxxxxxxxxx

机器学习分类xxxxxxxxxxx

xxxxxxxxx

机器学习分类判定边界通过上面的例子可以看出,逻辑回归就是去寻找判定边界,如果给高维的多项式,可以得到很负责的判定边界,下图所示:敬请指导!人工智能技术与应用8.K-MEANS聚类课程概况—基本情况PART01聚类算法什么是聚类KMEANS算法KMEANS流程KMEANS优缺点聚类的概念聚类的概念:聚类(

clustering):

是一种典型的“无监督学习”,是把物理对象或抽象对象的集合分组为由彼此类似的对象组成的多个类的分析过程。聚类的应用:

客户分类、模式识别、数据预处理、图像分割聚类的概念聚类的概念:有监督和无监督学习:有监督问题:数据有label无监督问题数据没有label聚类:相似的东西分到一组难点:如何评估,如何调参K-MEANS算法

KMEANS工作流程KMEANS工作流程:https:///p/37503452/blog/visualizing-k-means-clustering/KMEANS工作流程KMEANS工作流程:原始数据

(a)

(c)

(b)

(d)

指定K的值K=3计算每个质心到点的距离划分点到簇按照簇重新计算质心计算每个点到质心得距离重新划分簇重复计算质心更新簇https:///p/37503452/blog/visualizing-k-means-clustering/K-MEANS优缺点K-MEANS优缺点优势:简单,快速,适合常规数据集缺点:K值很难确定,如果数据复杂很难确定,一般需要设置多个进行测试复杂度与样本呈线性关系:

每次更新质心需要和每个样本点进行计算很难发现一个任意形状的簇:

任意和形状不规则时敬请指导!人工智能技术与应用8.DBSCAN聚类课程概况—基本情况PART01聚类算法DBSCAN算法概述DBSCAN参数DBSCAN流程DBSCAN优缺点DBSCAN概念DBSCAN聚类算法:Kmenas聚类缺点:

①K值难确定;②受初始值影响较大;③复杂度与样本规模呈线性关系;④很难发现任意形状的簇。聚类的应用:DBSCAN算法是密度聚类算法,所谓密度聚类算法就是说这个算法是,根据样本的紧密程度来进行聚类DBSCAN算法基本概念:r邻域:给定对象半径为r内的区域称为该对象的r邻域。如图,P对象在半径r内构成的圆就是该对象的r邻域,如图1。核心对象:如果给定对象r邻域内的样本点数大于等于MinPoints,则称该对象为核心对象;如图2:设置MinPoints的点为2,那么在对象p的e领域内有4个点,大于MinPoints,那么p对象就是核心对象。ε-邻域的距离阈值:设定的半径r直接密度可达:如果样本点q在p的r邻域内,并且p为核心对象,那么对象p-q直接密度可达,如图3。rrrDBSCAN概念DBSCAN算法基本概念:密度可达:若有一个点的序列q0、q1、…qk,对任意qi-qi-1是直接密度可达的,则称从q0到qk密度可达,这实际上是直接密度可达的“传播”,如图1,q-p密度直达,m-q密度直达,那么m-p密度可达。密度相连:若从某核心点p出发,点q和点k都是密度可达的,则称点q和点k是密度相连的,如图2:q-o是密度可达,p-o是密度可达,q-p是密度相连。在DBSCAN中那些样本可以看成一个类(也称簇)。即最大的密度相连的样本集合。DBSCAN概念密度可达与密度直达:图中MinPts=5,红色的点都是核心对象,因为其ϵ-邻域至少有5个样本。黑色的样本是非核心对象。所有核心对象密度直达的样本在以红色核心对象为中心的超球体内,如果不在超球体内,则不能密度直达。图中用绿色箭头连起来的核心对象组成了密度可达的样本序列。在这些密度可达的样本序列的ϵ-邻域内所有的样本相互都是密度相连的。DBSCAN概念DBSCAN算法基本概念:边界点:属于某一个类的非核心点,不能发展下线了,如图中B、C点就是边界点。噪声点:不属于任何一个类簇的点,从任何一个核心点出发都是密度不可达的,如图N点。A核心对象、BC边界点、N离群点DBSCAN概念DBSCAN流程:参数D:输入数据集:参数Ꜫ:指定半径MinPts:密度阀值DBSCAN工作流程参数选择:参数Ꜫ:半径ϵ,可以根据K距离来设定:找突变点K距离:给定数据集P={p(i);i=0,1,…n},计算点P(i)到集合D的子集S中所有点之间的距离,距离按照从小到大的顺序排序,d(k)就被称为k-距离。MinPts:k-距离中k的值,一般取的小一些,多次尝试可视化:https:///blog/visualizing-dbscan-clustering/https:///blog/visualizing-k-means-clustering/DBSCAN参数选择DBSCAN优缺点DBSCAN优缺点优势:

不需要指定簇个数擅长找到离群点(检测任务)可以发现任意形状的簇两个参数就够了缺点:缺点:高维数据有些困难(可以做降维)

Sklearn中效率很慢(数据削减策略)

参数难以选择(参数对结果的影响非常大)敬请指导!人工智能技术与应用9.决策树课程概况—基本情况PART01决策树算法决策树的概念树的组成衡量标准决策树的概念决策树(DecisionTree)的概念:树模型(

tree):

决策树:从根节点开始一步步走到叶子节点(决策)所有的数据最终都会落到叶子节点,既可以做分类也可以做回归。谁爱玩电脑游戏:

先按年龄分,再按照性别分

先找分类性强的特征

怎么选择分类的特征树的组成树的组成:根节点:第一个选择的节点非叶子节点与分支:中间过程叶子节点:最终的决策结果分类问题中决策树的叶子节点是类别,其它节点是属性。树的组成决策树的训练与测试算法训练阶段:

从给定的训练集构造一棵树。从根节点开设选择特征,如何进行特征切分测试阶段:

根据构造的树模型,从上到下,把数据输入执行一遍难点:一旦构造好了决策树,那么分类或者预测任务就很简单了,只需要走一遍就可以了,那么难点就在于如何构造出来一颗树,这就没那么容易了,需要考虑的问题还有很多。树的组成如何切分节点(选择节点)问题:

根节点的选择该用那个特征,如何切分缺点:我们的目标应该是根节点就像一个老大似的能更好的切分数据(分类的效果更好),根节点下面的节点自然就是二当家了。复杂度与样本呈线性关系:

每次更新质心需要和每个样本点进行计算目标:

通过一种衡量标准,来计算通过不同特征进行分支选择后的分类情况,找出来最好的那个当成根节点,以此类推。衡量标准衡量标准-信息熵节点选择的标准右图有两个分类结果,第一个结果明显要好于第二结果,直观的表述就是第一个分类很”纯,蓝色和黄色点直接分成了两类,第二种分类很乱,蓝色的点和黄色的点混杂在一起。信息熵表述(样本集合)”乱”和”纯”的程度,数据”乱”包含的数据信息要多,信息熵的值大。数据纯包含的信息量小,信息熵值小。衡量标准

衡量标准

敬请指导!人工智能技术与应用9.决策树课程概况—基本情况PART01决策树算法构造衡量标准树的组成衡量标准衡量标准节点选择-信息增益二分类问题的熵:

不确定性越大,得到的熵值也就越大

当p=0或p=1时,H(p)=0,随机变量完全没有不确定性

当p=0.5时,H(p)=1,此时随机变量的不确定性最大如何决策一个节点的选择信息增益:表示特征X使得类Y的不确定性减少的程度(分类后的专一性,希望分类后的结果是同类在一起)决策树的概念决策树构建实例:数据:是近两周(14天)的打球情况,特征为天气表现、温度、适度、是否有风4种不同的环境,特征:outlook天气、temperature温度、humidity湿度、windy有风、目标:怎么选择分类的特征,构造决策树决策树的概念根节点选择问题:4种划分方式

那个特征是根节点判断依据是什么信息增益树的组成信息增益:求熵:在14天的数据中,有9天有打球,5天没有打球。所以此时的熵为:按照outlook特征分类计算熵树的组成

树的组成常用的决策树算法:ID3:信息增益(有什么问题呢?)C4.5:信息增益率(解决ID3问题,考虑自身熵)CART:使用GINI系数来当做衡量标准GINI系数:(和熵的衡量标准类似,计算方式不相同)

C4.5信息增益率对于IV而言,a分类数目越多,IV值越大树的组成信息增益:计算其他的信息增益:𝐺𝑎𝑖𝑛(outlook)=0.247𝐺𝑎𝑖𝑛(temperature)=0.029

𝐺𝑎𝑖𝑛(windy)=0.048𝐺𝑎𝑖𝑛(humidity)=0.152一般而言,信息增益越大,则表示使用特征

对数据集划分所获得的“纯度提升”越大。所以信息增益可以用于决策树划分属性的选择,其实就是选择信息增益最大的属性,ID3算法就是采用的信息增益来划分属性。敬请指导!人工智能技术与应用9.决策树课程概况—基本情况PART01决策树算法构造衡量标准树的组成衡量标准衡量标准节点选择-信息增益二分类问题的熵:

不确定性越大,得到的熵值也就越大

当p=0或p=1时,H(p)=0,随机变量完全没有不确定性

当p=0.5时,H(p)=1,此时随机变量的不确定性最大如何决策一个节点的选择信息增益:表示特征X使得类Y的不确定性减少的程度(分类后的专一性,希望分类后的结果是同类在一起)决策树的概念决策树构建实例:数据:是近两周(14天)的打球情况,特征为天气表现、温度、适度、是否有风4种不同的环境,特征:outlook天气、temperature温度、humidity湿度、windy有风、目标:怎么选择分类的特征,构造决策树决策树的概念根节点选择问题:4种划分方式

那个特征是根节点判断依据是什么信息增益树的组成信息增益:求熵:在14天的数据中,有9天有打球,5天没有打球。所以此时的熵为:按照outlook特征分类计算熵树的组成

树的组成常用的决策树算法:ID3:信息增益(有什么问题呢?)C4.5:信息增益率(解决ID3问题,考虑自身熵)CART:使用GINI系数来当做衡量标准GINI系数:(和熵的衡量标准类似,计算方式不相同)

C4.5信息增益率对于IV而言,a分类数目越多,IV值越大树的组成信息增益:计算其他的信息增益:𝐺𝑎𝑖𝑛(outlook)=0.247𝐺𝑎𝑖𝑛(temperature)=0.029

𝐺𝑎𝑖𝑛(windy)=0.048𝐺𝑎𝑖𝑛(humidity)=0.152一般而言,信息增益越大,则表示使用特征

对数据集划分所获得的“纯度提升”越大。所以信息增益可以用于决策树划分属性的选择,其实就是选择信息增益最大的属性,ID3算法就是采用的信息增益来划分属性。敬请指导!人工智能技术与应用13.集成算法概述课程概况—基本情况PART01集成算法什么是集成算法常用的集成算法集成算法的对比集成算法的概念集成算法(ensemblelearning):集成学习:集成学习是通过构建并结合多个学习器来完成学习任务,如右图所示,其过程是:先产生一组“个体学习器”,再用某种策略将它们结合起来。个体学习器:决策树,神经网络等。同质和异质同质,个体学习器全是同一类型,这时个体学习器又称“基学习器”;异质是指个体学习器包含不同类型得学习算法。一般我们常用的都是同质的,即个体学习器都是同一类型的参考:https:///u012328159/article/details/89740430

集成算法的概念Bagging模型Bagging模型(bootstrapaggregation):原理:并行训练多个分类器,相互独立的随机的建立多个模型典型应用:随机森林随机:特征随机采样、数据随机采样关注点:从偏差-方差分解的角度,关注降低方差Bagging模型(bootstrapaggregation):原理:并行训练多个分类器,相互独立的随机的建立多个模型自助采样(bootstrapsampling):对数据集D做随机采样,每一个样本每次被抽样的概率相同,且每次抽完之后放回。包括随机选择数据和特征。

Bagging

Bagging基于自助采样法,通过多次自助采样得到不同的训练集,并基于训练集得到基学习器,最后再将这些基学习器的预测结果结合,得到最终的学习器的预测。一般在分类问题中,采用简单投票法结合预测结果,在回归问题中则采用简单平均法。关注点:从偏差-方差分解的角度,关注降低方差Bagging模型Bagging实现步骤:实现步骤:输入:数据集D,训练轮数T输出:最终预测模型G(1)迭代训练基学习器:a.从数据集D中自助采样得到训练集D'b.通过训练集D'训练得到基学习器C(2)组合预测结果:Bagging模型Random

Forest随机森林(Random

Forest):随机森林:随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。Treee:单个的决策树绝对多数投票法Majorityvoting就是将样本X,训练出不同的模型,然后进行测试,进行投票,得票最多的模型则被被认为是最好.随机森林(RandomForest):数据的随机抽样:从原始的数据集中采取有放回的抽样,构造子数据集,子数据集的数据量是和原始数据集相同的。不同子数据集的元素可以重复,同一个子数据集中的元素也可以重复。第二,利用子数据集来构建子决策树,将这个数据放到每个子决策树中,每个子决策树输出一个结果。如图3,假设随机森林中有3棵子决策树,2棵子树的分类结果是A类,1棵子树的分类结果是B类,那么随机森林的分类结果就是A类。Random

Forest随机森林(RandomForest):特征的随机抽样:与数据集的随机选取类似,随机森林中的子树的每一个分裂过程并未用到所有的待选特征,而是从所有的待选特征中随机选取一定的特征,之后再在随机选取的特征中选取最优的特征。这样能够使得随机森林中的决策树都能够彼此不同,提升系统的多样性,从而提升分类性能。Random

Forest随机森林(RandomForest):构造树模型:数据随机和特征随机抽样选择的二重性,使得每个树不相同,最终的结果也不同Random

Forest敬请指导!人工智能技术与应用13.集成算法比较课程概况—基本情况PART01集成算法Bagging算法常用的集成算法集成算法的对比Bagging算法Bagging集成算法:随机森林用的最多的随机森林。优势:

它能够处理很高维度的数据,并且不用做特征选择,也可以作为特征选择的工具(特征重要性)。

在训练完后,它能够给出哪些feature比较重要容易做成并行化方法,速度比较快可以进行可视化展示,便于分析,可以解释性强123Bagging算法Bagging集成算法:有些模型不适合使用

KNN最近邻,因为他很难随机让泛化能力变强Bagging算法Bagging集成算法:树模型的个数理论上越多的树效果会越好,但实际上基本超过一定数量就差不多上下浮动了。1-10棵树木的时候,准确率大幅提升

Boosting算法Boosting集成算法(提升算法):典型模型

AdaBoost,XgboostAdaboost:会根据前一次的分类效果调整数据权重。调整权重:如果某一个数据在这次分错了,那么在下一次我就会给它更大的权重最终的结果:每个分类器根据自身的准确性来确定各自的权重,再合体

Boosting算法Boosting集成算法-AdaBoost流程:原始数据D1,“+”和“-”分别表示两种类别,在这个过程中,我们使用水平或者垂直的直线作为分类器,来进行分类。第一步:根据分类的正确率,得到一个新的样本分布D2­,一个子分类器h1。其中划圈的样本表示被分错的。在右边的途中,比较大的“+”表示对该样本做了加权。原始数据D1子分类器h1错误样本加权集D2Boosting算法Boosting集成算法-AdaBoost流程:第二步:开始分类,根据分类的正确率,得到一个新的样本分布D3,一个子分类器h2。子分类器h2错误样本加权集D3Boosting算法Boosting集成算法-AdaBoost流程:第三步:根据分类的正确率,得到一个子分类器h3,整合所有子分类器:子分类器h3整合所有的分类器Boosting算法Boosting集成算法-AdaBoost流程:优点:

adaboost是一种有很高精度的分类器可以使用各种方法构建子分类器,adaboost算法提供的是框架当使用简单分类器时,计算出的结果是可以理解的。而且弱分类器构造极其简单简单,不用做特征筛选不用担心overfittingStacking算法Stacking集成算法:Stacking模型:堆叠:多个模型直接堆叠在一起可以堆叠各种各样的分类器(KNN,SVM,RF等等)分阶段:第一阶段得出各自结果,第二阶段再用前一阶段结果训练Stacking算法Stacking集成算法:Stacking模型实现流程:用数据集D来训练h1,h2,h3...,

用这些训练出来的初级学习器在数据集D上面进行预测得到次级训练集。

用次级训练集来训练次级学习器问题:但是这样的实现是有很大的缺陷的。在原始数据集D上面训练的模型,然后用这些模型再D上面再进行预测得到的次级训练集肯定是非常好的。会出现过拟合的现象。堆叠在一起确实能使得准确率提升,但是速度是个问题,在竞赛与论文中,或者需要追求高的精度经常使用Stacking集成算法。

敬请指导!人工智能技术与应用1.3使用简单线性回归预测广告投入的收入-模型训练课程概况—基本情况PART01模型训练开发流程处理流程-线性回归线性回归模型:简单线性回归也称为一元线性回归,也就是回归模型中只含一个自变量,否则称为多重线性回归。简单线性回归模型为:y=a*x+b有时候也可这样表述y=weight*x+bias,其中weight-权重,bias-偏置值。我们需要根据给定的y-企业的收入和x-企业的广告收入,去预测w和b,最终得到一个一元线性方程,通过这个方程,可以预测出企业投入的广告资金大概可以获得多大的收益,

处理流程-lossfunction损失函数:目标函数是整个模型优化学习的核心导向,需要最小化目标函数时,目标函数也被称为损失函数或代价函数。最常用的两个损失函数MSE与交叉熵就是分别用于回归与分类任务。处理流程-lossfunction损失函数:这里使用的MES均方差函数MSE求导后计算量不大,最为常用,代码实现简单,甚至不需要调接口。处理流程-lossfunction损失函数:可以自己先设置一个weight和bais,计算得到一个loss绘制当前weight和bais的图形处理流程-梯度下降

处理流程-梯度下降梯度下降:首先来看看梯度下降的一个直观的解释。比如我们在一座大山上的某处位置,由于我们不知道怎么下山,于是决定走一步算一步,也就是在每走到一个位置的时候,求解当前位置的梯度,沿着梯度的负方向,也就是当前最陡峭的位置向下走一步,然后继续求解当前位置梯度,向这一步所在位置沿着最陡峭最易下山的位置走一步。这样一步步的走下去,一直走到觉得我们已经到了山脚。当然这样走下去,有可能我们不能走到山脚,而是到了某一个局部的山峰低处。处理流程-梯度下降

处理流程-梯度下降梯度下降:定义梯度下降函数,使用梯度下降函数来去推导weight和bias值处理流程-训练模型训练模型:模型训练首先给iteration-梯度迭代次数、alpha-步长、weight-权重系数、bias-偏置值三个参数进行初始化,同时也计算一个初始的损失值。处理流程-训练模型绘制模型图像:得到weight_history,bias_history后我们可以取出最终得到的weight和bias值绘制最终得到的图像。处理流程-训练模型绘制损失曲线:我们可以通过绘制损失曲线显示损失下降的过程敬请指导!人工智能技术与应用6.支持向量机课程概况—基本情况PART01支持向量机线性可分支持向量机线性不可分支持向量机非线性支持向量机线性可分支持向量机支持向量机(SupportVectorMachine):要解决的问题:什么样的决策边界才是最好的呢?支持向量机(SupportVectorMachine),通常缩写为SVM,是一种用于回归和分类的监督学习算法,但更常用于分类。SVM在各种设置下均表现出色,通常被认为是最好的“开箱即用”分类器。个体支持向量机(SupportVectorMachine):求解决策边界:选出来离雷区最远的(雷区就是边界上的点,要LargeMargin)线性可分支持向量机线性可分支持向量机:线性可分支持向量机距离的计算:目的:让机器学习效果线性可分支持向量机数据标签定义:数据集:(X1,Y1)(X2,Y2)…(Xn,Yn)Y为样本的类别:当X为正例时候Y=+1当X为负例时候Y=-1决策方程:线性可分支持向量机优化目标:(实际问题转为数学问题,优化化简)通俗解释:找到一个条线(w和b),使得离该线最近的点(雷区)能够最远将点到直线的距离化简得:(由于所以将绝对值展开原始依旧成立)

线性可分支持向量机目标函数:(实际问题转为数学问题,优化化简)放缩变换:对于决策方程(w,b)可以通过放缩使得其结果值|Y|>=1:优化目标:min求最近的点,在找什么样的w和b使得距离最大由于,只需要考虑

线性可分支持向量机目标函数:(实际问题转为数学问题,优化化简)当前目标:约束条件:

将求解极大值问题转换成极小值问题如何求解:应用拉格朗日乘子法求解

线性可分支持向量机线性支持向量机:(soft-margin)软间隔:有时候数据中有一些噪音点,如果考虑它们咱们的线就不太好了:之前的方法要求要把两类点完全分得开,这个要求有点过于严格了,我们来放松一点!为了解决该问题,引入松弛因子线性支持向量机线性支持向量机:(soft-margin)当数据线性不可分,则增加松弛因子,使得函数间隔加上松弛变量大于等于1,这样,约束条件变成目标函数当C趋近于很大时:意味着分类严格不能有错误当C趋近于很小时:意味着可以有更大的错误容忍C是我们需要指定的一个参数!线性支持向量机损失函数线性支持向量机非线性支持向量机:核函数非线性支持向量机非线性支持向量机:核函数非线性支持向量机非线性支持向量机:高斯核函数分隔两个类的线性超平面非线性支持向量机非线性支持向量机:LR与SVM的异同

非线性支持向量机敬请指导!人工智能技术与应用7.贝叶斯算法课程概况—基本情况PART01贝叶斯算法贝叶斯算法概述贝叶斯算法的实现拼写检查垃圾邮件过滤贝叶斯算法概述贝叶斯算法概述:正向概率:假设袋子里面有N个白球,M个黑球,你伸手进去摸一把,摸出黑球的概率是多大逆向概率:如果我们事先并不知道袋子里面黑白球的比例,而是闭着眼睛摸出一个(或好几个)球(3个黑的4个白的),观察这些取出来的球的颜色之后,那么我们可以就此对袋子里面的黑白球的比例作出什么样的推测。贝叶斯算法实现:条件:学校总人数有U个人,男生占60%,女生占40%;男生总是穿长裤,女生一半穿裤子一半穿裙子;正向概率:随机选取一个学生,他(她)穿长裤的概率和穿裙子的概率是多大逆向概率:迎面走来一个穿长裤的学生,你只看得见他(她)穿的是否长裤,而无法确定他(她)的性别,你能够推断出他(她)是女生的概率是多大吗?贝叶斯算法实现

贝叶斯算法实现

贝叶斯算法实现

贝叶斯算法实现

贝叶斯算法实现

先验概率似然度后验概率标准化常量贝叶斯算法实现贝叶斯算法应用:拼写纠正实例拼写纠正实例我们看到用户输入了一个不在字典中的单词,我们需要去猜测“到底想输入的单词是什么?

比如输入的是tha使用概率去判断用户想输入的单词P(我们猜测他想输入的单词|他实际输入的单词)

计算:P(that|tha)PP(thanks|tha)的概率,按照大小排序,供用户选择。贝叶斯算法-输入矫正

贝叶斯算法-输入矫正

贝叶斯算法-输入矫正垃圾邮件分类问题:问题:给定一封邮件,判定它是否属于垃圾邮件D来表示这封邮件,注意D由N个单词组成。我们用h+来表示,垃圾邮件,h-表示正常邮件。贝叶斯公式P(h+|D)、P(h-|D)P(h+|D)=P(h+)*P(D|h+)/P(D)

P(h-|D)=P(h-)*P(D|h-)/P(D)

贝叶斯算法-垃圾邮件垃圾邮件过滤实例:先验概率:P(h+)和P(h-)这两个先验概率都是很容易求出来的,只需要计算一个邮件库里面垃圾邮件和正常邮件的比例就行了。D里面含有N个单词d1,d2,d3,P(D|h+)=P(d1,d2,..,dn|h+),P(d1,d2,..,dn|h+)就是说在垃圾邮件当中出现跟我们目前这封邮件一模一样的一封邮件的概率是多大!

P(d1,d2,..,dn|h+)扩展为:P(d1|h+)*P(d2|d1,h+)*P(d3|d2,d1,h+)*..

贝叶斯算法-垃圾邮件垃圾邮件过滤实例:P(d1|h+)*P(d2|d1,h+)*P(d3|d2,d1,h+)*..假设di与di-1是完全条件无关的(朴素贝叶斯假设特征之间是独立,互不影响)简化为P(d1|h+)*P(d2|h+)*P(d3|h+)*..对于P(d1|h+)*P(d2|h+)*P(d3|h+)*..只要统计di这个单词在垃圾邮件中出现的频率即可贝叶斯算法-垃圾邮件敬请指导!人工智能技术与应用9.词向量模型Word2Vec课程概况—基本情况PART01Word2Vec算法Word2Vec算法概述Word2Vec算法的实现Word2Vec的训练Word2Vec概述Word2Vec概述:概述:

WordtoVector,由词到向量,

Word2Vec使用一层神经网络将one-hot(独热编码)形式的词向量映射到分布式形式的词向量。使用了Hierarchicalsoftmax,negativesampling等技巧进行训练速度上的优化。逆向概率:作用:我们日常生活中使用的自然语言不能够直接被计算机所理解,当我们需要对这些自然语言进行处理时,就需要使用特定的手段对其进行分析或预处理。使用one-hot编码形式对文字进行处理可以得到词向量,但是,由于对文字进行唯一编号进行分析的方式存在数据稀疏的问题,Word2Vec能够解决这一问题,实现wordembeddingWord2Vec实现:在处理自然语言时,通常将词语或者字做向量化,例如one-hot编码,例如我们有一句话为:“我爱北京天安门”,我们分词后对其进行one-hot编码,结果如图所示。这样,我们就可以将每个词用一个向量表示了。但是如果n个词语而不是4个,任何一个词的编码只有一个1,n-1位为0,这会导致数据非常稀疏(0特别多,1很少),存储开销也很大。Word2Vec实现Word2Vec实现:于是,分布式表示被提出来了,什么是分布式表示?它的思路是通过训练,将每个词都映射到一个较短的词向量上来。这个较短的词向量维度是多大呢?这个一般需要我们在训练时自己来指定。现在很常见的例如300维。例如下面图展示了四个不同的单词,可以用一个可变化的维度长度表示(图中只画出了前4维),其实可以是多少维由你指定。假设为4维。Word2Vec实现

Word2Vec实现Word2Vec实现:有了向量就可以用各种方法来计算相似度,例如余弦相似度(Cosine)欧式距离相似度(Euclidean)曼哈顿距离(Manhattan)。通常数据的维度越高,信息也越多,计算结果更可靠Word2Vec实现Word2Vec实现:Word2Vec就是要把这些词转换为向量,也就是一组float数值,入下图所示:例如一个词50维的Word2Vec实现Word2Vec实现:如果使用热力图来表示可以直观的看到词向量的相似度Word2Vec实现Word2Vec实现:所有这些不同的单词都有一条直的红色列。它们在这个维度上是相似的(虽然我们不知道每个维度是什么)你可以看到“woman”和“girl”在很多地方是相似的,“man”和“boy”也是一样“boy”和“girl”也有彼此相似的地方,但这些地方却与“woman”或“man”不同。这些是否可以总结出一个模糊的“youth”概念?可能吧。除了最后一个单词,所有单词都是代表人。我添加了一个对象“water”来显示类别之间的差异。你可以看到蓝色列一直向下并在“water”的词嵌入之前停下了。Word2Vec实现Word2Vec实现:由“king-man+woman”生成的向量并不完全等同于“queen”,但“queen”是我们在此集合中包含的400,000个字嵌入中最接近它的单词。Word2Vec实现语言模型:自然语言处理最典型的例子,那应该就是智能手机输入法中的下一单词预测功能。这是个被数十亿人每天使用上百次的功能。我们可以认为该模型接收到两个绿色单词(我打)并推荐了一组单词(“电话”就是其中最有可能被选用的一个):word2vec模型我打?Inputfeature1Inputfeature2Outputlabelword2vec模型:word2vec模型其实就是简单化的神经网络。它对所有它知道的单词(模型的词库,可能有几千到几百万个单词)的按可能性打分,输入法程序会选出其中分数最高的推荐给用户。自然语言模型的输出就是模型所知单词的概率评分,我们通常把概率按百分比表示,但是实际上,40%这样的分数在输出向量组是表示为0.4word2vec模型TrainedLanguageModelTask:PredictthenextwordInputfeatureOutputpredict我打电话TrainedLanguageModelTask:PredictthenextwordInputfeatureOutputpredict我打电话40%王者10%排位2%算0.5%word2vec模型:模型是一个简化的神经网络input:词向量权重网络上下文的-隐藏层Softmax层word2vec模型word2vec模型:对于句子“IlikedeeplearningandNLP”,我们基于这个句子,可以构建一个大小为6的词汇表,假设我们使用300个特征去表示一个单词。记上面的权重矩阵为w(6,300),有独热码wt表示矩阵为(300,1)wt×w两个矩阵相乘,隐层神经网络输出的是一个d×1维矩阵word2vec模型word2vec模型:对于句子“IlikedeeplearningandNLP”,我们基于这个句子,可以构建一个大小为6的词汇表,假设我们使用300个特征去表示一个单词。记上面的权重矩阵为w(6,300),有独热码wt表示矩阵为(300,1)wt×w两个矩阵相乘,隐层神经网络输出的是一个d×1维矩阵word2vec模型模型数据:先是获取大量文本数据(例如所有维基百科内容)然后我们建立一个可以沿文本滑动的窗(例如一个窗里包含三个单词)利用这样的滑动窗就能为训练模型生成大量样本数据word2vec模型数据模型数据:前两个单词单做特征,第三个单词单做标签:生产了数据集中的第一个样本窗口滑动到下一个位置并生产第二个样本word2vec模型数据模型数据:所有数据集上全部滑动后,我们得到一个较大的数据集word2vec模型数据不同模型对比CBOW和Skip-gramword2vec模型数据不同模型对比CBOW和Skip-gramword2vec模型数据Skip-gram模型所需训练数据集CBOW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论