重庆网上商城网站建设网页设计与制作的实训报告怎样写
重庆网上商城网站建设,网页设计与制作的实训报告怎样写,宁波微信推广平台哪个好,大连线上教学一、什么是机器学习
机器学习就是利用数学中的公式总结出数据中的规律
二、KNN算法
1、什么是KNN算法
全称是k-nearest neighbors#xff0c;通过寻找k个距离最近的数据#xff0c;来确定当前数据值的大小或类别。是机器学习中最为简单和经典的一个算法。
2、距离计算公…一、什么是机器学习机器学习就是利用数学中的公式总结出数据中的规律二、KNN算法1、什么是KNN算法全称是k-nearest neighbors通过寻找k个距离最近的数据来确定当前数据值的大小或类别。是机器学习中最为简单和经典的一个算法。2、距离计算公式3、KNN算法的优缺点1优点1.简单易于理解易于实现无需训练;2.适合对稀有事件进行分类;3.对异常值不敏感。2缺点︰1.样本容量比较大时计算时间很长;⒉.不均衡样本效果较差;三、KNN算法--sklearn1、sklearn是什么Sklearn (Scikit-Learn) 是基于 Python 语言的第三方机器学习库。它建立在 NumPy, SciPy, Pandas 和 Matplotlib库 之上里面的 API 的设计非常好所有对象的接口简单很适合新手上路。2、sklearn的安装在命令提示符输入pip install scikit-learn1.0.2即可3、sklearn库中提供的参数classsklearn.neighbors.KNeighborsClassifier(n_neighbors5,weights’uniform’,algorithm’auto’,leaf_size30,p2,metric’minkowski’,metric_paramsNone,n_jobsNone,**kwargs)n_neighbors:k值邻居的个数默认为5是关键参数weights:权重项默认uniform方法。Uniform所有最近邻样本的权重都一样。【一般使用这一个】Distance权重和距离呈反比距离越近的样本具有更高的权重。【确认样本分布情况混乱使用这种形式】metric:用于树的距离度量四、案例1宿舍分配案例通过网盘分享的文件datingTestSet2.txt链接: https://pan.baidu.com/s/1Le_1ZRWI7lAG8kpfzgxONw 提取码: yg57原因现在有很多大学里出现室友矛盾假如室友可以选择: 大学里面 对于校方把类型相同的学生放在一个寝室在基于大二大三大四的任务:现已存在一个数据文件datingTestSet2.txt 为历年大学生的调查问卷表第1列每年旅行的路程第2列玩游戏所有时间百分比第3列每个礼拜消耗零食的重量第4列学生所属的类别1表示爱学习2表示一般般3表示爱玩。 目的为学生在大学中挑选室友的信息想要知道每年旅行路程、玩游戏每天所占百分比、每个礼拜消耗零食的重量分别为75136,13.147394,0.428964的学生所属的类别import matplotlib.pyplot as plt import numpy as np datanp.loadtxt(datingTestSet2.txt,delimiter\t) adata[data[:,-1]1] bdata[data[:,-1]2] cdata[data[:,-1]3] figplt.figure() axplt.axes(projection3d) ax.scatter(a[:,0],a[:,1],a[:,2],cr,markero) ax.scatter(b[:,0],b[:,1],b[:,2],cg,marker^) ax.scatter(c[:,0],c[:,1],c[:,2],cb,marker) ax.set(xlabelx,ylabely,zlabelz) plt.show() import numpy as np from sklearn.neighbors import KNeighborsClassifier datanp.loadtxt(datingTestSet2.txt,delimiter\t) xdata[:,:-1] ydata[:,-1] aKNeighborsClassifier(n_neighbors5) a.fit(x,y) print(a.predict([[75136,13.147394,0.428964]]))n_neighbors5代表当这个学生的75136,13.147394,0.428964带入到训练集中进行测试找到在于这个点最近的5个点中所含类别最多的一类输出结果为1说明5个点中类别为1的点比较多缺点由于每年旅行路程、玩游戏每天所占百分比、每个礼拜消耗零食的重量的数据有的很大有的很小就会导致当某个很大的那个数据没有发生很大的改变而比较的小数据发生了大的改变时变化的也不是很明显所以这个时候就可以使用标准化来统一一下数据的范围1、归一化就是把除了最后一列的数据其他数据都变成零到一以内的数2、z标准化使用from sklearn.preprocessing import scaleimport pandas as pd #为什么 numpy可以读二维数据 和 # pandas表格类型的数据 #读取数据 train_data:训练集 test_data:测试集 # numpy数组形式来读取数据pandas以表格的形式来读取数据 train_data pd.read_excel(鸢尾花训练数据.xlsx) test_data pd.read_excel(鸢尾花测试数据.xlsx) 处理训练集数据; 数据重排;变量与标签分离. train_X train_data[[萼片长(cm), 萼片宽(cm), 花瓣长(cm), 花瓣宽(cm)]] train_y train_data[[类型_num]]#加入了中阔号返回的是2维 标准化语法 归一化0~1是对每一个列特征进行归一化 Z-Score标准化 -1~1 from sklearn.preprocessing import scale#对输入的数据进行减去均值并除以标准差的操作从而将数据转换为均值为0、标准差为1的分布。这个操作可以使得不同特征之间的尺度一致避免因为某些特征的尺度过大或者过小而影响模型的训练效果。 data pd.DataFrame() #空的表格数据对象 data[萼片长标准化] scale(train_X[萼片长(cm)]) #series 列数据 data[萼片宽标准化] scale(train_X[萼片宽(cm)]) data[花瓣长标准化] scale(train_X[花瓣长(cm)]) data[花瓣宽标准化] scale(train_X[花瓣宽(cm)]) #数据开始做了一次 预处理目标为了让每个特征的数据都在差不多大小的范围内。 使用sklearn库中的KNN模块 from sklearn.neighbors import KNeighborsClassifier #【1~10】 knn KNeighborsClassifier(n_neighbors5) #最好是奇数 knn.fit(train_X, train_y)#到这里训练就已经结束。 train_predicted knn.predict(train_X)#自测预测 score knn.score(train_X, train_y)#最总的分。先将data数据传入模型进行预测得到预测结果将预测结果和train_y进行比较 使用测试集数据进行测试 test_X test_data[[萼片长(cm), 萼片宽(cm), 花瓣长(cm), 花瓣宽(cm)]] test_y test_data[[类型_num]] 标准化语法 Z-Score标准化 from sklearn.preprocessing import scale data_test pd.DataFrame() #传入新的数据从来没有传入到模型中的 a test_X[萼片长(cm)] data_test[萼片长标准化] scale(test_X[萼片长(cm)]) #存在一点小问题。 data_test[萼片宽标准化] scale(test_X[萼片宽(cm)]) data_test[花瓣长标准化] scale(test_X[花瓣长(cm)]) data_test[花瓣宽标准化] scale(test_X[花瓣宽(cm)]) #预测结果 test_predicted knn.predict(test_X) score knn.score(test_X, test_y)#将测试的特征传入进来内部会自动将特征传入模型进行预测得到预测结果y‘ print(score)knn.fit(tarin_x,train_y):是用来训练train_x和train_y的数据knn.predict(train_x)进行自测knn.score(train_x,train_y)将自测的train_x对应的train_y与当为train_x时训练集所给出的y值进行比较计算出所占的百分比knn.predict(test_x)对真实值进行测试knn.score(test_x,test_y)将测试的test_x对应的test_y与当为test_x时训练集所给出的y值进行比较计算出所占的百分比注当进行测试时训练集的内容不能当作被测试的对象通过网盘分享的文件鸢尾花测试数据.xlsx链接: https://pan.baidu.com/s/1OqAmlnbM0CiIc0zJXH8D6Q 提取码: xiaj通过网盘分享的文件鸢尾花训练数据.xlsx链接: https://pan.baidu.com/s/1EvhUQ2aqCMm1IqThLgUn0Q 提取码: pbr4