当前位置: 首页 > news >正文

济南网站建设有限公司服装定制品牌有哪些

济南网站建设有限公司,服装定制品牌有哪些,制作网页哪家好,网站软文制作什么是knn算法#xff1f; KNN算法是一种基于实例的机器学习算法#xff0c;其全称为K-最近邻算法#xff08;K-Nearest Neighbors Algorithm#xff09;。它是一种简单但非常有效的分类和回归算法。 该算法的基本思想是#xff1a;对于一个新的输入样本#xff0c;通过…什么是knn算法 KNN算法是一种基于实例的机器学习算法其全称为K-最近邻算法K-Nearest Neighbors Algorithm。它是一种简单但非常有效的分类和回归算法。 该算法的基本思想是对于一个新的输入样本通过计算它与训练集中所有样本的距离找到与它距离最近的K个训练集样本然后基于这K个样本的类别信息来进行分类或回归预测。KNN算法中的“K”代表了在预测时使用的邻居数通常需要手动设置。 KNN算法的主要优点是简单、易于实现并且在某些情况下可以获得很好的分类或回归精度。但是它也有一些缺点如需要存储所有训练集样本、计算距离的开销较大、对于高维数据容易过拟合等。 KNN算法常用于分类问题如文本分类、图像分类等以及回归问题如预测房价等。 我们这次学习机器学习的knn算法分别对前二维数据和前四维数据进行训练和可视化。 两个目标 1、通过knn算法对iris数据集前两个维度的数据进行模型训练并求出错误率最后进行可视化展示数据区域划分。 2、通过knn算法对iris数据集总共四个维度的数据进行模型训练并求出错误率并对前四维数据进行可视化。 基本思路 1、先载入iris数据集 Load Iris data 2、分离训练集和设置测试集split train and test sets 3、对数据进行标准化处理Normalize the data 4、使用knn模型进行训练Train using KNN 5、然后进行可视化处理Visualization 6、最后通过绘图决策平面plot decision plane 1、通过knn算法对iris数据集前两个维度的数据进行模型训练并求出错误率最后进行可视化展示数据区域划分 from sklearn import datasets import numpy as np ### Load Iris data iris datasets.load_iris() x iris.data[:,:2]#前2个维度 # x iris.data y iris.target print(class labels: , np.unique(y)) x.shape y.shape ### split train and test sets from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test train_test_split(x, y, test_size0.2, stratifyy) x_train.shape print(Labels count in y:, np.bincount(y)) print(Labels count in y_train:, np.bincount(y_train)) print(Labels count in y_test:, np.bincount(y_test)) ### Normalize the data from sklearn.preprocessing import StandardScaler sc StandardScaler() sc.fit(x_train) x_train_std sc.transform(x_train) x_test_std sc.transform(x_test) print(TrainSets Orig mean:{}, std mean:{}.format(np.mean(x_train,axis0), np.mean(x_train_std,axis0))) print(TrainSets Orig std:{}, std std:{}.format(np.std(x_train,axis0), np.std(x_train_std,axis0))) print(TestSets Orig mean:{}, std mean:{}.format(np.mean(x_test,axis0), np.mean(x_test_std,axis0))) print(TestSets Orig std:{}, std std:{}.format(np.std(x_test,axis0), np.std(x_test_std,axis0))) ### Train using KNN from sklearn.neighbors import KNeighborsClassifier knn KNeighborsClassifier(n_neighbors5, p2, metricminkowski) knn.fit(x_train_std, y_train) pred_testknn.predict(x_test_std) err_num (pred_test ! y_test).sum() rate err_num/y_test.size print(Misclassfication num: {}\nError rate: {}.format(err_num, rate))#计算错误率 ### Visualization x_combined_std np.vstack((x_train_std, x_test_std)) y_combined np.hstack((y_train, y_test)) plot_decision_regions(x_combined_std, y_combined, classifierknn, test_idxrange(105,150)) plt.xlabel(petal length [standardized]) plt.ylabel(petal width [standardized]) plt.legend(locupper left) plt.tight_layout() plt.show() #### plot decision plane x_combined_std np.vstack((x_train_std, x_test_std)) y_combined np.hstack((y_train, y_test)) plot_decision_regions(x_combined_std, y_combined, classifierknn, test_idxrange(105,150)) plt.xlabel(petal length [standardized]) plt.ylabel(petal width [standardized]) plt.legend(locupper left) plt.tight_layout() plt.show()代码及其可视化效果截图 2、通过knn算法对iris数据集总共四个维度的数据进行模型训练并求出错误率并进行可视化 from sklearn import datasets import numpy as np iris datasets.load_iris() x iris.data #4个维度 # x iris.data y iris.target print(class labels: , np.unique(y)) x.shape y.shape ### split train and test sets from sklearn.model_selection import train_test_split x_train, x_test, y_train, y_test train_test_split(x, y, test_size0.2, stratifyy) x_train.shape print(Labels count in y:, np.bincount(y)) print(Labels count in y_train:, np.bincount(y_train)) print(Labels count in y_test:, np.bincount(y_test)) ### Normalize the data from sklearn.preprocessing import StandardScaler sc StandardScaler() sc.fit(x_train) x_train_std sc.transform(x_train) x_test_std sc.transform(x_test) print(TrainSets Orig mean:{}, std mean:{}.format(np.mean(x_train,axis0), np.mean(x_train_std,axis0))) print(TrainSets Orig std:{}, std std:{}.format(np.std(x_train,axis0), np.std(x_train_std,axis0))) print(TestSets Orig mean:{}, std mean:{}.format(np.mean(x_test,axis0), np.mean(x_test_std,axis0))) print(TestSets Orig std:{}, std std:{}.format(np.std(x_test,axis0), np.std(x_test_std,axis0))) ### Train using KNN from sklearn.neighbors import KNeighborsClassifier knn KNeighborsClassifier(n_neighbors5, p2, metricminkowski) knn.fit(x_train_std, y_train) pred_testknn.predict(x_test_std) err_num (pred_test ! y_test).sum() rate err_num/y_test.size print(Misclassfication num: {}\nError rate: {}.format(err_num, rate))#计算错误率 #四维可视化在二维或三维空间中是无法呈现的但我们可以使用降维技术来可视化数据。在这种情况下我们可以使用主成分分析PCA或线性判别分析LDA等技术将数据降到二维或三维空间中并在此空间中可视化数据。 import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D from sklearn.decomposition import PCA# Perform PCA to reduce the dimensionality from 4D to 3D pca PCA(n_components3) x_train_pca pca.fit_transform(x_train_std)# Create a 3D plot of the first three principal components fig plt.figure(figsize(8, 8)) ax fig.add_subplot(111, projection3d)# Plot the three classes in different colors for label, color in zip(np.unique(y_train), [blue, red, green]):ax.scatter(x_train_pca[y_trainlabel, 0], x_train_pca[y_trainlabel, 1], x_train_pca[y_trainlabel, 2], ccolor, labellabel, alpha0.8)ax.set_xlabel(PC1) ax.set_ylabel(PC2) ax.set_zlabel(PC3) ax.legend(locupper right) ax.set_title(Iris Dataset - PCA) plt.show()四维可视化在二维或三维空间中是无法呈现的但我们可以使用降维技术来可视化数据。在这种情况下我们可以使用主成分分析PCA或线性判别分析LDA等技术将数据降到二维或三维空间中并在此空间中可视化数据。 下面是代码效果图展示如何使用PCA将四维数据降至三维并在三维空间中可视化iris数据集 将iris数据集的四维数据降至三维并在三维空间中可视化了训练集。每个点代表一个数据样本不同颜色代表不同的类别。我们可以看到在三维空间中有两个类别可以相对清晰地分开而另一个类别则分布在两个主成分的中间。 我们要注意对于高维数据使用knn算法容易出现高维数据容易过拟合的情况这是因为在高维空间中数据点之间的距离变得很大同时训练样本的数量相对于特征的数量很少容易导致KNN算法无法很好地进行预测。 为了避免高维数据容易过拟合的情况可以采取以下措施 特征选择选择有意义的特征进行训练可以降低特征数量避免过拟合。常用的特征选择方法有Filter方法、Wrapper方法和Embedded方法。 降维可以通过主成分分析PCA等方法将高维数据映射到低维空间中以减少特征数量避免过拟合。 调整K值KNN算法中的K值决定了邻居的数量K值过大容易出现欠拟合而K值过小容易出现过拟合。因此可以通过交叉验证等方法来确定最佳的K值。 距离度量KNN算法中的距离度量方法对结果影响较大不同的距离度量方法会导致不同的预测结果。因此可以尝试不同的距离度量方法选择最优的方法。 数据增强在数据量较少的情况下可以通过数据增强的方法来增加训练样本以提高模型的泛化能力。 希望通过这片文章能够进一步认识knn算法的原理及其应用。 今天是五一劳动节在这里小马同学祝各位五一劳动节快乐
http://www.hkea.cn/news/14319247/

相关文章:

  • 微信网站改版价格服装网站建设的目的
  • 南京网站费用网站建设产品包装设计网站找谁做
  • 网页设计技术论文seo 怎么建设网站外链
  • 合肥手机网站开发大国工匠网页制作素材
  • HTML可以做彩票网站吗投资网站
  • 做excel的网站建设新闻博客类网站要多大空间
  • 长沙精品网站制作wordpress手机上用的
  • 门户网站产品设计方案电商运营教程
  • 昆明自助建站模板编写软件
  • 一个com的网站多少钱怎么建立企业网站平台
  • ps怎样做网站设计网站和系统的区别
  • 网站建设佛山拓客科技最专业的做音乐网站
  • 怎么搭建自己的网站平台利用免费网站做SEO
  • 做网站的中文名字网站建设和运行管理办法
  • 长沙网站排名技巧如何建设一个子网站
  • 米枫网站怎么做分页杭州企业网站优化
  • 漳州网站开发去博大钱少a众筹网站怎么做推广
  • 出口网站建设方案网站找哪家做
  • 网上服装定制网站公司网站公司简介
  • 学校网站系统网站充值接口
  • 沈阳模板建站公司有哪些朋友圈广告
  • 许昌网站设计制作ios注册开发者账号
  • 深圳网站制作首荐祥奔科技网站模板模仿
  • 顺义深圳网站建设公司长沙市建设厅网站
  • 上海高端定制网站公司网站的主题有哪些
  • 砀山哪有做网站的重庆百度推广seo
  • 网站建设营销制作设计高端设计公司
  • 网站做微信链接易语言可以做网站嘛
  • 网站qq临时会话代码子目录创建网站
  • 网站建设需要php吗商城系统快速开发平台