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

手机端网站开发源码网站开发工程师心得总结

手机端网站开发源码,网站开发工程师心得总结,深圳企业模板建站,东莞外贸网站建设策划方案最近在苦恼为我的数据决定分组问题#xff0c;在查找资料时#xff0c;恰好看到机器学习中的无监督学习的聚类分析#xff0c;正好适用于我的问题#xff0c;但是我之前学机器学习时。正好没有学习无监督部分#xff0c;因为我认为绝大多数问题都是有标签的监督学习#…最近在苦恼为我的数据决定分组问题在查找资料时恰好看到机器学习中的无监督学习的聚类分析正好适用于我的问题但是我之前学机器学习时。正好没有学习无监督部分因为我认为绝大多数问题都是有标签的监督学习正是大意了这不巧了正好遇上了那就赶紧学习一下吧。 最近正在苦恼为我的数据决定分组问题在查找资料时恰好看到机器学习中的无监督学习的聚类分析正好适用于我的问题但是我之前学机器学习时。正好没有学习无监督部分因为我认为绝大多数问题都是有标签的监督学习真是大意了这不巧了正好遇上了那就赶紧学习一下吧。 说到无监督学习还真是强大无监督学习的优点是可以处理没有标签的数据发现数据的潜在规律和特征适用于探索性的数据分析。就好像不需要老师教就可以自己根据数据之间的关系对数据进行分组。 因为我的问题比较适合K-means和DBSCAN解决这篇文章我主要介绍这两种算法。 DBSCAN聚类分析是一种基于密度的聚类算法它可以发现任意形状的簇并且能够识别出噪声点。与之相比K-means聚类算法是一种基于距离的聚类算法它将数据划分为K个球形的簇但是对噪声点和非球形的簇不太适合。下面我将用Python代码和图片来展示这两种算法的原理和效果。 首先我们导入一些必要的库如numpy, matplotlib, sklearn等并生成一些随机的数据点其中有四个簇和一些噪声点。 import os os.environ[OMP_NUM_THREADS] 1 import numpy as np import matplotlib.pyplot as plt from sklearn.datasets import make_blobs from sklearn.cluster import KMeans, DBSCAN# 生成随机数据 X, y make_blobs(n_samples300, centers4, cluster_std0.6, random_state0) # 添加一些噪声点 X np.r_[X, np.random.randn(10, 2) [2, 2]] plt.scatter(X[:, 0], X[:, 1], s10, ck) plt.title(Raw data) plt.show()通过肉眼看到原始数据还是比较聚集的但是处于边界的这些点属于哪一个组簇呢还是得通过聚类算法来确定。 k-means聚类分析 接下来我们用K-means算法来对数据进行聚类设置K4即我们想要得到四个簇。我们可以用sklearn库中的KMeans类来实现它有以下几个重要的参数 n_clusters: 聚类的个数即K值init: 初始质心的选择方法可以是’random’或’k-means后者是一种优化的方法可以加速收敛但是是选择优化方法啦。n_init: 随机初始化的次数算法会选择其中最好的一次作为最终结果max_iter: 最大迭代次数当迭代达到这个次数时算法会停止即使没有收敛tol: 容忍度当质心的移动小于这个值时算法会认为已经收敛停止迭代 我们可以用fit函数来训练模型用predict函数来对数据进行预测用inertia_属性来获取误差平方和用cluster_centers_属性来获取质心的坐标。代码如下 # K-means聚类 kmeans KMeans(n_clusters4, initk-means, n_init10, max_iter300, tol1e-4, random_state0) y_pred kmeans.fit_predict(X) sse kmeans.inertia_ centers kmeans.cluster_centers_ print(K-means SSE:, sse) plt.scatter(X[:, 0], X[:, 1], s10, cy_pred) plt.scatter(centers[:, 0], centers[:, 1], s100, cr, marker*) plt.title(K-means clustering) plt.show()k-means的均方差和为232.678这个结果表示聚类效果还不错。 从-means聚类图中可以看出K-means算法可以大致将数据分为四个簇但是对于一些噪声点和边界点它的划分效果不太理想因为它只考虑了距离而没有考虑密度。另外K-means算法需要事先指定K值如果K值不合适可能会导致聚类效果很差。 DBSCAN聚类分析 下面使用DBSCAN算法来对数据进行聚类它不需要指定簇的个数而是根据数据的密度来划分簇。我们可以用sklearn库中的DBSCAN类来实现它有以下几个重要的参数 eps: 邻域半径即判断一个点是否为核心点的距离阈值min_samples: 邻域内的最小样本数即判断一个点是否为核心点的密度阈值metric: 距离度量方式可以是’euclidean’‘manhattan’cosine’等algorithm: 邻域查询的算法可以是’auto’‘ball_tree’‘kd_tree’brute’等不同的算法有不同的时间和空间复杂度 然后可以用fit方法来训练模型用fit_predict方法来对数据进行预测用labels_属性来获取每个点的簇标签用core_sample_indices_属性来获取核心点的索引。代码如下 # DBSCAN聚类 dbscan DBSCAN(eps0.5, min_samples5, metriceuclidean, algorithmauto) y_pred dbscan.fit_predict(X) labels dbscan.labels_ core_indices dbscan.core_sample_indices_ n_clusters len(set(labels)) - (1 if -1 in labels else 0) # 去掉噪声点的簇个数 print(DBSCAN clusters:, n_clusters) plt.scatter(X[:, 0], X[:, 1], s10, cy_pred) plt.scatter(X[core_indices, 0], X[core_indices, 1], s100, cr, marker*) plt.title(DBSCAN clustering) plt.show()k-DBSCAN聚类分析总共是聚类了4个簇。 从图中可以看出DBSCAN算法可以更好地将数据分为四个簇并且能够识别出噪声点黑色的点因为它考虑了距离和密度而且不需要事先指定簇的个数。另外DBSCAN算法可以处理任意形状的簇而不局限于球形的簇。 总结 总结一下K-means和DBSCAN是两种常用的聚类算法它们各有优缺点适用于不同的场景。 K-means算法简单易懂运行速度快但是需要指定簇的个数对噪声点和非球形的簇不太适合。DBSCAN算法不需要指定簇的个数可以发现任意形状的簇并且能够识别出噪声点但是运行速度慢一些对于不同密度的簇可能效果不好。 在实际应用中还是需要根据数据的特点和需求来选择合适的聚类算法不过如果愿意耐心多次对比参数训练聚类分析算法还是推荐DBSCAN算法。
http://www.hkea.cn/news/14288182/

相关文章:

  • 做网站教程 简书seo海外运营
  • 如何做好区县外宣网站建设网站的引导页面是什么意思
  • 本地常州网站建设wordpress时光轴
  • 系统开发必须遵守的原则有哪些seo常用工具包括
  • 微信开发网站制作建购物网站 资质
  • 怎样做咨询网站网站搭建好后被移动宽带屏蔽怎么办
  • 免费做数据采集的网站厦门做网站优化
  • 地产网站互动营销代理记帐
  • 自适应 网站开发给网站app做后台的公司
  • 淮阴区城乡建设管理局网站做网站刷流量挣钱吗
  • 广州微盟微商城网站优化建设绵阳
  • 石家庄+外贸网站建设公司网站的支付接口对接怎么做
  • 浙江巨鑫建设有限公司网站长春自媒体公司
  • 公司建设网站的公司杭州制作网站企业
  • 自己做的网站显示iis7解析域名后怎么弄网站
  • 做哪些网站比较赚钱方法建设网站需要的软件
  • 重庆荣昌网站建设费用网站开发项目建设规范
  • 怎么做淘宝客导购网站推广推广文案范文100字
  • 网站开发从整体上某企业网站搜索引擎优化
  • 业余学做衣服上哪个网站响应式网站psd尺寸
  • 企业网站推广渠道seo数据分析哪些方面
  • 打不开网页但是有网络seo如何根据网站数据做报表
  • 江苏省建设厅的官方网站吉林市网站制作哪家好
  • 网站信息内容建设自查报告企业网站phpcms
  • 做网站送推广太原规划网站
  • 运动服装商城网站建设响应式网站头部
  • dw做网站设计博物馆门户网站建设
  • 太原自助模板建站淘宝网站建设百度百科
  • 网站建设 seo科技广告公司网站建设
  • 简单网站建设合同郑州老牌做企业网站