《人工智能》课件第4章 分类与聚类.pptx
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《人工智能》课件第4章 分类与聚类.pptx》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 人工智能 人工智能课件第4章 分类与聚类 课件 分类
- 资源描述:
-
1、第4章 分类与聚类主要内容 引言 K最近邻(k-Nearest Neighbor)分类算法 朴素贝叶斯 决策树 随机森林 K均值聚类算法(K-means)引言 机器学习(Machine Learning,ML)一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析和算法复杂度理论等。定义 是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能。是对能通过经验自动改进的计算机算法的研究。是用数据或以往的经验,以此优化计算机程序的性能标准。引言 ML分类(基于学习方式)监督学习监督学习(有导师学习有导师学习):输入数据中有导师信号(标签信息),以概率函数、代
2、数函数或人工神经网络为基函数模型,采用迭代计算方法,学习结果为函数。无监督学习无监督学习(无导师学习无导师学习):输入数据中无导师信号,采用聚类方法,学习结果为类别。典型的无导师学习有发现学习、聚类、竞争学习等。半监督学习半监督学习:输入数据中有的有导师信号,有的没有导师信号。强化学习强化学习(增强学习增强学习):以环境反惯(奖/惩信号)作为输入,以统计和动态规划技术为指导的一种学习方法。引言 Scikit learn(Sklearn)packageSimple and efficient tools for predictive data analysisAccessible to ever
3、ybody,and reusable in various contextsBuilt on NumPy,SciPy,and matplotlibOpen source,commercially usable-BSD licensehttps:/scikit-learn.org/stable/index.html引言 Scikit learn(Sklearn)package引言 Sklearn Installationpip install-U scikit-learnconda install scikit-learn checking your installation you can u
4、sepython-m pip show scikit-learn#to see which version and where scikit-learn is installedpython-m pip freeze#to see all packages installed in the active virtualenvconda list scikit-learn#to see which scikit-learn version is installedconda list#to see all packages installed in the active conda enviro
5、nmentpython-c import sklearn;sklearn.show_versions()“引言ML基本步骤1提出问题理解数据数据清洗构建模型评估模型模型应用-1https:/ 采集数据 sklearn.datasets中有练习数据(数据要有代表性,数据量要合适)导入数据 pd.csv.查看数据集信息 data.shape查看数据集大小;.shape0查看行数;.shape1查看列数 df.head()查看前几行;df.describe()查看数值数据的描述统计信息;df.info()根据行数查看数据是否有缺失值,数据类型是否合适 了解各个字段的含义,目标和特征分别是哪个字段;也
6、可通过可视化了解数据的分布引言ML基本步骤数据清洗数据预处理 包括缺失值处理、重复值处理、数据类型的转换、字符串数据的规整 缺失值处理(标签数据无需填充缺失):数值数据:用平均值取代:dataA.fillna(dataA.mean()分类数据:dataA.value_counts();dataA.fillna(占比最多的类别);dataA.fillna(U)缺失比较多时,填充代表未知的字符串 使用模型预测缺失值,例如:K-NN引言ML基本步骤数据清洗 数据预处理 数据归一化/标准化:模型具有伸缩可变性,如SVM,最好进行标准化,避免模型参数受极值影响;伸缩不变模型,如逻辑回归,最好也进行标准化
7、,可以加快训练速度 归一化/标准化常见两种方法:min-max,化为0,1:(x-min(x)/(max(x)-min(x)/preprocessing.MinMaxScaler;适合分别在有限范围内的数据,数值较集中,但min/max不稳定会影响结果 Z-core,化为均值为0,方差为1:(x-mean(x)/std(x)/sklearn.preprocessing.scale(),适合最大/最小值未知,或者有超出取值范围的离散值引言ML基本步骤数据清洗特征提取(特征工程.1)(以泰坦尼克项目为例)特征:原始数据的抽象表示 数值型数据处理:一般可直接使用,或通过运算转化为新的特征 通过家庭人
8、数可划分大小家庭:df.家庭人数=df.A+df.B+1(自己);df.小家庭=df.家庭人数.map(lambda s:1 if 2=s=Lmax,则舍弃该元组,遍历下一个元组。若L Lmax,删除优先级队列中最大距离的元组,将当前训练元组存入优先级队列7.遍历完毕,计算优先级队列中k 个元组的多数类,并将其作为测试元组的类别。8.测试元组集测试完毕后计算误差率,继续设定不同的k值重新进行训练,最后取误差率最小的k 值K最近邻分类算法算法实践Sklearn包内置了鸢尾花数据集,其中存储花萼长宽(特征0和1)和花瓣长宽(特征2和3),target存储花的分类,Iris-setosa(山鸢尾),
9、Iris-versicolor(变色鸢尾)和Iris-virginica(弗吉尼亚鸢尾),分别标记为数字 0,1和2。图4-1山鸢尾、变色鸢尾和弗吉尼亚鸢尾K最近邻分类算法from sklearn.datasets import load_irisiris=load_iris()iris.datairis.data.shapeiris.targetiris.target.shape#The sklearn.datasets module includes utilities to load datasets,#including methods to load and fetch popula
10、r reference datasets.#It also features some artificial data generators.K最近邻分类算法from sklearn.model_selection import train_test_splitX_train,X_test,y_train,y_test =train_test_split(iris.data,iris.target,test_size=0.25,random_state=33)#sklearn.model_selection.train_test_split(*arrays,*options)K最近邻分类算法#
11、sklearn.model_selection.train_test_split(*arrays,*options)*arrayssequence of indexables with same length/shape0 Allowed inputs are lists,numpy arrays,scipy-sparse matrices or pandas dataframes.test_sizefloat or int,default=None If float,should be between 0.0 and 1.0 and represent the proportion of t
12、he dataset to include in the test split.If int,represents the absolute number of test samples.If None,the value is set to the complement of the train size.If train_size is also None,it will be set to 0.25.train_sizefloat or int,default=None If float,should be between 0.0 and 1.0 and represent the pr
13、oportion of the dataset to include in the train split.If int,represents the absolute number of train samples.If None,the value is automatically set to the complement of the test size.random_stateint or RandomState instance,default=None Controls the shuffling applied to the data before applying the s
14、plit.Pass an int for reproducible output across multiple function calls.See Glossary.K最近邻分类算法from sklearn.preprocessing import StandardScalerss=StandardScaler()X_train=ss.fit_transform(X_train)X_test=ss.transform(X_test)#Standardize features by removing the mean and scaling to unit varianceK最近邻分类算法f
15、rom sklearn.neighbors import KNeighborsClassifierknc=KNeighborsClassifier()knc.fit(X_train,y_train)classsklearn.neighbors.KNeighborsClassifierKNeighborsClassifier(n_neighbors=5,*,weights=uniform,algorithm=auto,leaf_size=30,p=2,metric=minkowski,metric_params=None,n_jobs=None,*kwargs)K最近邻分类算法y_predict
16、=knc.predict(X_test)print(The accuracy of K-Nearest Neighbor Classifier is,knc.score(X_test,y_test)#The accuracy of K-Nearest Neighbor Classifier is 0.8947368421052632from sklearn.metrics import classification_reportprint(classification_report(y_test,y_predict,target_names=iris.target_names)K最近邻分类算法
17、PrecisionRecallFl-scoreSupportsetosa1.001.001.008versicolor0.731.000.8511virginica1.000.790.8819accuracy0.8938macro avg0.910.930.9138weighted avg0.920.890.9038 KNN分类统计结果K最近邻分类算法分类结果每个分类标签的精确度,召回率和 F1-score。精确度:precision,正确预测为正的,占全部预测为正的比例,TP/(TP+FP)召回率:recall,正确预测为正的,占全部实际为正的比例,TP/(TP+FN)F1-score:精确
18、率和召回率的调和平均数,2*precision*recall/(precision+recall)总体的微平均值,宏平均值和加权平均值。微平均值:micro average,所有数据结果的平均值宏平均值:macro average,所有标签结果的平均值加权平均值:weighted average,所有标签结果的加权平均值在二分类场景中,正标签的召回率称为敏感度(sensitivity),负标签的召回率称为特异性(specificity)。K最近邻分类算法K最近邻分类算法 小结 Lazy learning algorithmLazy learning algorithm KNN is a laz
展开阅读全文