首页 > 其他分享 >机器学习实战笔记34-38:gridsearchcv的进阶使用,无监督学习:kmeans、DBSCAN

机器学习实战笔记34-38:gridsearchcv的进阶使用,无监督学习:kmeans、DBSCAN

时间:2024-11-24 10:59:43浏览次数:8  
标签:DBSCAN 进阶 38 gridsearchcv kmeans km score plt import

主要讲了gridsearchcv的几种变形使用方式

一:全部参数搜索

方法是构造机器学习流之后,构造参数空间

二:优化评估指标的选择

作为网格搜索中输出评估指标的参数,roc_auc参数只能指代metrics_roc_auc_score函数的二分类功能,如果需要多分类,则需要将scoring修改为roc_auc_ovr等参数

三:make_scorer函数,需要同时输入评估器、特征矩阵及真实标签,让特征矩阵经过评估器运算后和真实标签比对得到分数

acc=make_scorer(accuracy_score)

Acc(search.best_estimator_,x_train,y_train)

四:同时输入多组评估指标

五:一个注意点:

对于best_score_属性查看的是在roc-auc评估指标下,默认五折交叉验证时验证集上的结果,但如果对评估器用.score方法,查看的是pipe评估器默认的结果评估方式,也就是准确率

六:最终结果:

结果比手动调参准确率低,但没有过拟合隐患

36-38无监督学习:kmeans、DBSCAN

一.kmeans的参数:

存在的两个问题:震荡收敛,算法会在两种不同划分方式间来回;局部最优姐。

解决方法:init选择Kmeans++,用更合理的方式选择初始值点:

前五个参数重要,最后一个是优化计算距离的时间的

Kmeans也可以预测新数据的类别,方法:km.predict()

评估聚几类好的参数:不能用SSE,因为K增加它一定会逐渐下降。应该用轮廓系数:(到其它簇的距离-到自己簇的距离)/两者较大值

from sklearn.metrics import silhouette_score

特别注意点:聚类的性能远远弱于有监督学习算法

  • mini-batch kmeans 与DBSCAN密度聚类

前者是牺牲部分精度换取速度(注意,不需要靠它离开局部最小值陷阱,有kmeans++)

参数表:

  后者是解决:kmeans是解决圆形、球形边界,如果不是圆形则用DBSCAN(注:plt

.scatter绘制散点图,plt.plot绘制折线图)

原理:设置eps和min_samples,在eps内能有min_samples个点的称为核心点,范围内的为临界点,其余为噪声点.把以核心点范围内的簇连成一片,其余噪声点舍弃。具体代码如下:

# In[1]:

from sklearn.cluster import KMeans

# In[3]:

get_ipython().run_line_magic('pinfo', 'KMeans')

# In[4]:

from sklearn.metrics import silhouette_score

# In[5]:

from sklearn.datasets import make_moons

# In[6]:

x,y=make_moons(200,noise=0.05,random_state=24)

# In[12]:

import matplotlib.pyplot as plt

# In[13]:

plt.scatter(x[:,0],x[:,1],c=y)

# In[16]:

km=KMeans(n_clusters=2)

# In[17]:

km.fit(x)

# In[21]:

plt.scatter(x[:,0],x[:,1],c=km.labels_)

plt.plot(km.cluster_centers_[:,0],km.cluster_centers_[:,1],'ro')

# In[22]:

from sklearn.cluster import DBSCAN

# In[23]:

DB=DBSCAN(eps=0.3,min_samples=10)

# In[24]:

DB.fit(x)

# In[25]:

plt.scatter(x[:,0],x[:,1],c=DB.labels_)

标签:DBSCAN,进阶,38,gridsearchcv,kmeans,km,score,plt,import
From: https://blog.csdn.net/m0_60792028/article/details/144004402

相关文章

  • ybtoj 高效进阶题解索引
    密码:sunxuhetai2009--------------------云落的分割线--------------------基础算法第1章-递推算法第2章-贪心算法第3章-二分算法第4章-深搜算法第5章-广搜算法已完结--------------------云落的分割线--------------------图论第1章-并查集第4章-强连......
  • 【Python图像处理】进阶实战续篇(五)
    在前几篇文章中,我们已经探讨了Python在图像处理领域的多种技术,包括图像分割、视频处理、三维重建、图像增强、面部识别、文字识别、图像检索以及医学图像处理。本篇将继续深入探讨更多图像处理技术及其应用实例,并结合更多的知识点说明,以帮助读者更全面地掌握图像处理领域的......
  • 题解:AT_abc381_c [ABC381C] 11/22 Substring
    显然这个“11/22Substring”是以那个“/”为中心对称的。鉴于一个这样的字符串只能有一个“/”,而题目又要求最长,所以确定了“/”就能确定一个满足要求的子串。那思路就很简单了,只有两步:找到所有的“/”两边同时寻找相应的子串。别的,除了判断一下越界之外,就不用管了。......
  • MATH38161 Multivariate Statistics and Machine Learning
    MATH38161MultivariateStatisticsandMachineLearningCourseworkovember2024OverviewThecourseworkisadataanalysisprojectwithawrittenreport.YouwillapplyskillsandtechniquesacquiredfromWeek1toWeek8toanalyseasubsetoftheFMNISTda......
  • 从基础到进阶:全面掌握 Vue 动画效果实现技巧
    前言动画效果在Web开发中扮演着重要角色,不仅提升了用户体验,还增强了网页的视觉吸引力,Vue.js不仅在构建用户界面方面表现出色,还提供了简洁而强大的动画实现方式。通过合理使用Vue的动画系统,我们能够轻松构建出流畅、自然的过渡效果。本文将深入探讨如何在Vue中实现页面动画......
  • Vue前端进阶面试题目(二)
    虛拟DOM的解析过程是怎样的?虚拟DOM(VirtualDOM)是Vue等现代前端框架为了提高页面渲染性能而采用的一种技术。其解析过程大致如下:创建虚拟DOM树:当应用的状态发生变化时,会生成一个新的虚拟DOM树,这个树是对真实DOM的一种轻量级的描述。对比虚拟DOM树:将新的虚拟DOM树与旧的......
  • 【Atcoder训练记录】AtCoder Beginner Contest 381
    训练情况赛后反思简单题A题做红温了,怒吃6罚时,C题双指针其实差不多想出来了,但是对于判断字符串合法其实可以只判断两个端点,不需要全部遍历,中途还想了二分做法(?),然而写到最后发现并没有二分单调性。A题记得判断字符串的长度必须是奇数,\(1\sim\frac{n+1}{2}-1\)是1,\(\frac{......
  • AtCoder Beginner Contest 381
    这场比赛打的冷汗直流,然后无奈寄掉。C-11/22Substring本以为直接暴力就可以,但是需要加前缀和优化,一个正向处理,一个反向处理,然后查找/。abc381_d赛前2分钟hack掉自己的代码,然后寄掉。双指针答案必须是连续的区间,所以想到双指针维护区间合法性,但需要处理以下细节:\(a_r\n......
  • 【Python函数进阶】
    目录1.函数的多返回值2.函数的位置参数和关键字参数3.函数的缺省参数4.函数的可变参数5.匿名函数和lambda关系6.带参数的lambda函数7.递归1.函数的多返回值方法:1.按照返回值的顺序,写对应顺序的多个变量接受即可2.变量之间用逗号隔开3.支持不同类型的数据return......
  • 网管平台(进阶篇):网管系统的管理与维护
    随着信息技术的飞速发展,网络环境日益复杂,网络管理系统(简称网管系统)作为监控、配置、故障排除及优化网络性能的关键工具,其重要性不言而喻。一个高效、稳定的网管系统不仅能够提升网络运行效率,还能有效降低运维成本,保障业务连续性。因此,对网管系统进行科学的管理与精心维护,是确保网......