《人工智能和机器学习--PPT04-K近邻》由会员分享,可在线阅读,更多相关《人工智能和机器学习--PPT04-K近邻(46页珍藏版)》请在金锄头文库上搜索。
1、分类- K近邻王秋月中国人民大学信息学院什么是分类?一家花店想根据某顾客最近买花的情况,来预测某种新来的花是否会被该顾客购买?什么是分类??什么是分类??什么是分类??什么是分类?分类需要什么? 数据: 将对象表示为量化的一组特征 给定类别标签 对象间相似性的度量060SurvivedDid notsurvive40Age201020Number of Malignant NodesK近邻(KNN)分类06040Age201020Number of Malignant Nodes预测预测K近邻(KNN)分类近邻数目(K = 1):0106040Age201020Number of Malign
2、ant Nodes预测预测K近邻(KNN)分类06040Age201020Number of Malignant NodesK近邻(KNN)分类近邻数目(K = 2):11预测预测06040Age201020Number of Malignant NodesK近邻(KNN)分类近邻数目(K = 3):21预测预测06040Age201020Number of Malignant NodesK近邻(KNN)分类近邻数目(K = 4):31预测预测0 正确的“K”值 如何度量相邻两点之间的相似性/距离?6040201020Number of Malignant NodesK近邻模型需要选择40Ag
3、eK值的选择值的选择K = 106040Age201020Number of Malignant NodesK近邻模型的判定边界K =All01020Number of Malignant Nodes6040Age20K近邻模型的判定边界01020Number of Malignant Nodes6040200K=16040201020Number of Malignant NodesK=AllK值的大小会影响判定边界决定最佳决定最佳K的方法将在下节课讨论的方法将在下节课讨论距离的度量距离的度量06040Age201020Number of Malignant NodesK近邻模型中的距离测度
4、06040Age201020Number of Malignant NodesK近邻模型中的距离测度06040Age201020Number of Malignant Nodes欧几里得距离0Age6040201020Number of Malignant Nodes𝑒 = 𝑁𝑜𝑒𝑓𝑠2 + 𝐴𝑔𝑓2AgedNodes欧几里得距离(L2距离)0Age6040201020Number of Malignant NodesAgeNodes𝑒
5、 = 𝑁𝑜𝑒𝑓𝑠 + 𝐴𝑔𝑓曼哈顿距离(L1或街区距离)数据缩放数据缩放12345Number ofSurgeries6040Age20缩放比例对计算距离非常重要12345Number ofSurgeriesAge60402024222018缩放比例对计算距离非常重要Age6040202422201812345Number ofSurgeriesNearest Neighbors!缩放比例对计算距离非常重要特征缩放1506040Age20234Number ofSur
6、geries缩放比例对计算距离非常重要特征缩放1506040Age20234Number ofSurgeries缩放比例对计算距离非常重要特征缩放1506040Age20234Number ofSurgeriesNearest Neighbors!缩放比例对计算距离非常重要 Standard Scaler:即标准化,尽量将数据转化为均值为0,方差为1的数据,形如标准正态分布(高斯分布)。 Minimum-Maximum Scaler:将数据缩放到某一给定范围(通常是0, 1)。 Maximum Absolute Value Scaler:通过除以最大绝对值,将数据缩放到-1, 1。 使各特征的
7、数值都处于同一数量级上。特征缩放的不同方法导入包含缩放方法的类:导入包含缩放方法的类:from sklearn.preprocessing import StandardScaler创建该类的一个对象:创建该类的一个对象:StdSc = StandardScaler()拟合缩放的参数,然后对数据做转换:拟合缩放的参数,然后对数据做转换:StdSc = StdSc.fit(X_data)X_scaled = StdSc.transform(X_data)或者或者 X_scaled = StdSc.fit_transform(X_data)特征缩放的语法导入包含缩放方法的类:导入包含缩放方法的类:
8、from sklearn.preprocessing import StandardScaler创建该类的一个对象:创建该类的一个对象:StdSc = StandardScaler()拟合缩放的参数,然后对数据做转换:拟合缩放的参数,然后对数据做转换:StdSc = StdSc.fit(X_data)X_scaled = StdSc.transform(X_data)特征缩放的语法其他缩放方法其他缩放方法: MinMaxScaler, MaxAbsScaler.KNN多分类、多分类、KNN回归回归K = 5Full remissionPartialremission06040AgeDid no
9、tsurvive201020Number of Malignant NodesK近邻多分类的判定边界投票决定:投票决定:少数服从多数,近邻中哪个类别的点最多就分为该类。加权投票法:加权投票法:根据距离的远近,对近邻的投票进行加权,距离越近则权重越大(权重为距离平方的倒数)K =1K =3K =20K近邻回归KNN模型特点及语法模型特点及语法 建模快,因为它只是简单地存储数据 运行速度慢,因为需要计算很多的距离 占用内存多,如果数据集大的话K近邻模型的特点导入包含分类方法的类:导入包含分类方法的类:from sklearn.neighbors import KNeighborsClassifie
10、r创建该类的一个对象:创建该类的一个对象:KNN = KNeighborsClassifier(n_neighbors=3)拟合数据集,即训练拟合数据集,即训练KNN模型,并用训练好的模型预测数据模型,并用训练好的模型预测数据的标签:的标签:KNN = KNN.fit(X_data, y_data)y_predict = KNN.predict(X_data)K近邻模型的语法http:/scikit-learn.org/stable/modules/generated/sklearn.neighbors.KNeighborsClassifier.html导入包含分类方法的类:导入包含分类方法的
11、类:from sklearn.neighbors import KNeighborsClassifier创建该类的一个对象:创建该类的一个对象:KNN = KNeighborsClassifier(n_neighbors=3)拟合数据集,即训练拟合数据集,即训练KNN模型,并用训练好的模型预测数据模型,并用训练好的模型预测数据的标签:的标签:KNN = KNN.fit(X_data, y_data)y_predict = KNN.predict(X_data)K近邻模型的语法这种这种 fit 和和 predict/transform 语法会贯穿整个课程语法会贯穿整个课程导入包含分类方法的类:导
12、入包含分类方法的类:from sklearn.neighbors import KNeighborsClassifier创建该类的一个对象:创建该类的一个对象:KNN = KNeighborsClassifier(n_neighbors=3)拟合数据集,即训练拟合数据集,即训练KNN模型,并用训练好的模型预测数据模型,并用训练好的模型预测数据的标签:的标签:KNN = KNN.fit(X_data, y_data)y_predict = KNN.predict(X_data)K近邻模型的语法回归使用回归使用KNeighborsRegressor案例研究:鸢尾花数据集 150个鸢尾花样例 来自3个不同的属种 Setosa, Versicolor, Virginica 每种50个样例 用4个特征度量 花萼的长度和宽度,花瓣的长度和宽度 分类问题:给定一株鸢尾花,判定其属种鸢尾花数据集样例特征类别标签创建机器学习应用路线图数据预处理学习评价预测演示第4章-K近邻.ipynb