主要讲了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_)

 

 

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐