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

重庆网站制作工作室做网站需要做什么

重庆网站制作工作室,做网站需要做什么,网站设计制作报告,wordpress 整站播放器⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ #x1f434;作者#xff1a;秋无之地 #x1f434;简介#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作#xff0c;主要擅长领域有#xff1a;爬虫、后端、大数据… ⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ 作者秋无之地 简介CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作主要擅长领域有爬虫、后端、大数据开发、数据分析等。 欢迎小伙伴们点赞、收藏⭐️、留言、关注关注必回关 上一篇文章已经跟大家介绍过《KNN上数据分析 | 数据挖掘 | 十大算法之一》相信大家对KNN上都有一个基本的认识。下面我讲一下KNN下数据分析 | 数据挖掘 | 十大算法之一 KNN 实际上是计算待分类物体与其他物体之间的距离然后通过统计最近的 K 个邻居的分类情况来决定这个物体的分类情况。 一、如何在 sklearn 中使用 KNN 在 Python 的 sklearn 工具包中有 KNN 算法。KNN 既可以做分类器也可以做回归。如果是做分类你需要引用 from sklearn.neighbors import KNeighborsClassifier 如果是做回归你需要引用 from sklearn.neighbors import KNeighborsRegressor 从名字上你也能看出来 Classifier 对应的是分类Regressor 对应的是回归。一般来说如果一个算法有 Classifier 类都能找到相应的 Regressor 类。比如在决策树分类中你可以使用 DecisionTreeClassifier也可以使用决策树来做回归 DecisionTreeRegressor。 好了我们看下如何在 sklearn 中创建 KNN 分类器。 这里我们使用构造函数 KNeighborsClassifier(n_neighbors5, weights‘uniform’, algorithm‘auto’, leaf_size30)这里有几个比较主要的参数我分别来讲解下 1.n_neighbors即 KNN 中的 K 值代表的是邻居的数量。K 值如果比较小会造成过拟合。如果 K 值比较大无法将未知物体分类出来。一般我们使用默认值 5。 2.weights是用来确定邻居的权重有三种方式 weightsuniform代表所有邻居的权重相同weightsdistance代表权重是距离的倒数即与距离成反比自定义函数你可以自定义不同距离所对应的权重。大部分情况下不需要自己定义函数。 3.algorithm用来规定计算邻居的方法它有四种方式 algorithmauto根据数据的情况自动选择适合的算法默认情况选择 autoalgorithmkd_tree也叫作 KD 树是多维空间的数据结构方便对关键数据进行检索不过 KD 树适用于维度少的情况一般维数不超过 20如果维数大于 20 之后效率反而会下降algorithmball_tree也叫作球树它和 KD 树一样都是多维空间的数据结果不同于 KD 树球树更适用于维度大的情况algorithmbrute也叫作暴力搜索它和 KD 树不同的地方是在于采用的是线性扫描而不是通过构造树结构进行快速检索。当训练集大的时候效率很低。 ​4.leaf_size代表构造 KD 树或球树时的叶子数默认是 30调整 leaf_size 会影响到树的构造和搜索速度。 创建完 KNN 分类器之后我们就可以输入训练集对它进行训练这里我们使用 fit() 函数传入训练集中的样本特征矩阵和分类标识会自动得到训练好的 KNN 分类器。然后可以使用 predict() 函数来对结果进行预测这里传入测试集的特征矩阵可以得到测试集的预测分类结果。 二、如何用 KNN 对手写数字进行识别分类 手写数字数据集是个非常有名的用于图像识别的数据集。数字识别的过程就是将这些图片与分类结果 0-9 一一对应起来。完整的手写数字数据集 MNIST 里面包括了 60000 个训练样本以及 10000 个测试样本。如果你学习深度学习的话MNIST 基本上是你接触的第一个数据集。 今天我们用 sklearn 自带的手写数字数据集做 KNN 分类你可以把这个数据集理解成一个简版的 MNIST 数据集它只包括了 1797 幅数字图像每幅图像大小是 8*8 像素。 好了我们先来规划下整个 KNN 分类的流程 整个训练过程基本上都会包括三个阶段 数据加载我们可以直接从 sklearn 中加载自带的手写数字数据集准备阶段在这个阶段中我们需要对数据集有个初步的了解比如样本的个数、图像长什么样、识别结果是怎样的。你可以通过可视化的方式来查看图像的呈现。通过数据规范化可以让数据都在同一个数量级的维度。另外因为训练集是图像每幅图像是个 8*8 的矩阵我们不需要对它进行特征选择将全部的图像数据作为特征值矩阵即可分类阶段通过训练可以得到分类器然后用测试集进行准确率的计算。 好了按照上面的步骤我们一起来实现下这个项目。 首先是加载数据和对数据的探索 # 加载数据 digits load_digits() data digits.data # 数据探索 print(data.shape) # 查看第一幅图像 print(digits.images[0]) # 第一幅图像代表的数字含义 print(digits.target[0]) # 将第一幅图像显示出来 plt.gray() plt.imshow(digits.images[0]) plt.show() 运行结果 (1797, 64) [[ 0. 0. 5. 13. 9. 1. 0. 0.][ 0. 0. 13. 15. 10. 15. 5. 0.][ 0. 3. 15. 2. 0. 11. 8. 0.][ 0. 4. 12. 0. 0. 8. 8. 0.][ 0. 5. 8. 0. 0. 9. 8. 0.][ 0. 4. 11. 0. 1. 12. 7. 0.][ 0. 2. 14. 5. 10. 12. 0. 0.][ 0. 0. 6. 13. 10. 0. 0. 0.]] 0 我们对原始数据集中的第一幅进行数据可视化可以看到图像是个 8*8 的像素矩阵上面这幅图像是一个“0”从训练集的分类标注中我们也可以看到分类标注为“0”。 sklearn 自带的手写数字数据集一共包括了 1797 个样本每幅图像都是 8*8 像素的矩阵。因为并没有专门的测试集所以我们需要对数据集做划分划分成训练集和测试集。因为 KNN 算法和距离定义相关我们需要对数据进行规范化处理采用 Z-Score 规范化代码如下 # 分割数据将25%的数据作为测试集其余作为训练集你也可以指定其他比例的数据作为训练集 train_x, test_x, train_y, test_y train_test_split(data, digits.target, test_size0.25, random_state33) # 采用Z-Score规范化 ss preprocessing.StandardScaler() train_ss_x ss.fit_transform(train_x) test_ss_x ss.transform(test_x) 然后我们构造一个 KNN 分类器 knn把训练集的数据传入构造好的 knn并通过测试集进行结果预测与测试集的结果进行对比得到 KNN 分类器准确率代码如下 # 创建KNN分类器 knn KNeighborsClassifier() knn.fit(train_ss_x, train_y) predict_y knn.predict(test_ss_x) print(KNN准确率: %.4lf % accuracy_score(test_y, predict_y)) 运行结果 KNN准确率: 0.9756 好了这样我们就构造好了一个 KNN 分类器。之前我们还讲过 SVM、朴素贝叶斯和决策树分类。我们用手写数字数据集一起来训练下这些分类器然后对比下哪个分类器的效果更好。代码如下 # 创建SVM分类器 svm SVC() svm.fit(train_ss_x, train_y) predict_ysvm.predict(test_ss_x) print(SVM准确率: %0.4lf % accuracy_score(test_y, predict_y)) # 采用Min-Max规范化 mm preprocessing.MinMaxScaler() train_mm_x mm.fit_transform(train_x) test_mm_x mm.transform(test_x) # 创建Naive Bayes分类器 mnb MultinomialNB() mnb.fit(train_mm_x, train_y) predict_y mnb.predict(test_mm_x) print(多项式朴素贝叶斯准确率: %.4lf % accuracy_score(test_y, predict_y)) # 创建CART决策树分类器 dtc DecisionTreeClassifier() dtc.fit(train_mm_x, train_y) predict_y dtc.predict(test_mm_x) print(CART决策树准确率: %.4lf % accuracy_score(test_y, predict_y)) 运行结果如下 SVM准确率: 0.9867 多项式朴素贝叶斯准确率: 0.8844 CART决策树准确率: 0.8556 这里需要注意的是我们在做多项式朴素贝叶斯分类的时候传入的数据不能有负数。因为 Z-Score 会将数值规范化为一个标准的正态分布即均值为 0方差为 1数值会包含负数。因此我们需要采用 Min-Max 规范化将数据规范化到[0,1]范围内。​ ​好了我们整理下这 4 个分类器的结果。 你能看出来 KNN 的准确率还是不错的和 SVM 不相上下。 你可以自己跑一遍整个代码在运行前还需要 import 相关的工具包下面的这些工具包你都会用到所以都需要引用 from sklearn.model_selection import train_test_split from sklearn import preprocessing from sklearn.metrics import accuracy_score from sklearn.datasets import load_digits from sklearn.neighbors import KNeighborsClassifier from sklearn.svm import SVC from sklearn.naive_bayes import MultinomialNB from sklearn.tree import DecisionTreeClassifier import matplotlib.pyplot as plt ​代码中我使用了 train_test_split 做数据集的拆分使用 matplotlib.pyplot 工具包显示图像使用 accuracy_score 进行分类器准确率的计算使用 preprocessing 中的 StandardScaler 和 MinMaxScaler 做数据的规范化。 三、总结 今天我带你一起做了手写数字分类识别的实战分别用 KNN、SVM、朴素贝叶斯和决策树做分类器并统计了四个分类器的准确率。在这个过程中你应该对数据探索、数据可视化、数据规范化、模型训练和结果评估的使用过程有了一定的体会。在数据量不大的情况下使用 sklearn 还是方便的。 如果数据量很大比如 MNIST 数据集中的 6 万个训练数据和 1 万个测试数据那么采用深度学习 GPU 运算的方式会更适合。因为深度学习的特点就是需要大量并行的重复计算GPU 最擅长的就是做大量的并行计算。 ​ 版权声明 本文章版权归作者所有未经作者允许禁止任何转载、采集作者保留一切追究的权利。
http://www.yingshimen.cn/news/81576/

相关文章:

  • asp.net 网站 相册河北项目网在建项目
  • 做公司网站主要需要什么科目济南网站seo优化
  • 闲置物品交易网站怎么做最好看免费观看高清大全新员工
  • 关键词智能优化排名搜索引擎优化关键词选择的方法有哪些
  • 做积分商城网站公司网站建设注意
  • 淘宝网站咋做企业网站管理系统排名
  • 网站建设的物流线上营销课程哪里学
  • dw进行网站建设包含哪些步骤wordpress主题免刷新.
  • 做网站要求高吗app外包接活
  • 网站建设微信公众号小程序制作查互做蛋白的网站
  • 网站后台怎么管理wordpress 说明
  • 做网站该读啥学校手机型号最全的网站
  • 石家庄seo网站优化电话qq网页版登录官网登录入口
  • 大兴做网站公司更改网站名字
  • 母婴用品商城网站建设农产品的网站建设与维护论文
  • 企业设计网站公司有哪些重庆网红
  • 招商项目发布平台漯河搜狗关键词优化排名软件
  • wordpress关键字查询嘉兴网站seo公司
  • 京东网站建设目标是什么意思wordpress更换域名301
  • 做旅游的网站关键词优化排名推广搜ノ牛霸天排名软件
  • 义马网站开发wordpress add_menu_page
  • 有哪些网站可以做视频网站建设公司选择标准
  • 绵阳网站建设制作陕西省高速集团建设网站
  • 深圳做网站d寺庙网站建设
  • 新建设电影院+网站wordpress 博客网站是免费的么
  • cms网站建设个人网页模板模板之家
  • 青海公路建设市场信用信息服务网站郑州百度快速排名提升
  • 做网站怎么接活邮政管理网站建设
  • 中山高端网站建设仿皮皮淘网站开发全程培训
  • 用地方别名做网站名微网站怎么开发