贝叶斯模型,svm模型,k均值聚类,DBSCAN聚类,linux操作系统

贝叶斯模型

高斯贝叶斯分类器

 

实例

 

 

分析数据

 

 

计算条件概率

 

 计算结果

 

 

多项式贝叶斯分类器

 

 

实例

 

 计算因变量各类频率和单变量条件概率

 

 

获得结果

 

 

伯努利贝叶斯分类器

 

 

实例

 

 计算因变量各类频率和单变量条件概率

 

 获得结论

 

 

高斯贝叶斯:皮肤识别

# 读⼊数据
skin = pd.read_excel(r'C:\Users\Administrator\Desktop\Skin_Segment.xlsx')
# 样本拆分
X_train,X_test,y_train,y_test = model_selection.train_test_split(skin.iloc[:,:3], skin.y,
test_size = 0.25, random_state=1234)
# 调⽤⾼斯朴素⻉叶斯分类器的“类”
gnb = naive_bayes.GaussianNB()
# 模型拟合
gnb.fit(X_train, y_train)
# 模型在测试数据集上的预测
gnb_pred = gnb.predict(X_test)

  

 

构建混淆矩阵

# 构建混淆矩阵
cm = pd.crosstab(gnb_pred,y_test)
# 绘制混淆矩阵图
sns.heatmap(cm, annot = True, cmap = 'GnBu', fmt = 'd')
# 去除x轴和y轴标签
plt.xlabel('Real')
plt.ylabel('Predict')
# 显示图形
plt.show()
print('模型的准确率为:\n',metrics.accuracy_score(y_test, 
gnb_pred))

  

 

SVM模型

超平面的概念

将样本点划分成不同的类别(三种表现形式:点、线、面)

 

 

超平面最优解

先随机选择一条直线

分别计算两边距离改直线最短的点距离,取更小的距离

 

 

以该距离左右两边做分隔带

依次直线上述三个步骤得出N多个分隔带,最优的就是分隔带最宽的

 

 

 

线性可分与非线性可分

线性可分:简单的理解为就是一条直线划分类别

非线性可分:一条直线无法直接划分 需要升一个维度在做划分

核函数:高斯核函数>>>:支持无穷维

 

 

 

K均值聚类

K值的求解

拐点法

计算不同K值下类别中离差平方和(看斜率,变化越明显越好)

 

 

代码

def k_SSE(X, clusters):
# 选择连续的K种不同的值
K = range(1,clusters+1)
# 构建空列表⽤于存储总的簇内离差平⽅和
TSSE = []
for k in K:
# ⽤于存储各个簇内离差平⽅和
SSE = []
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
# 返回簇标签
labels = kmeans.labels_
# 返回簇中⼼
centers = kmeans.cluster_centers_
# 计算各簇样本的离差平⽅和,并保存到列表中
for label in set(labels):
SSE.append(np.sum((X.loc[labels == label,]-centers[label,:])**2))
# 计算总的簇内离差平⽅和
TSSE.append(np.sum(SSE))

  

 

 

轮廓系数法

 

 

代码

# 构造⾃定义函数
def k_silhouette(X, clusters):
K = range(2,clusters+1)
# 构建空列表,⽤于存储不同簇数下的轮廓系数
S = []
for k in K:
kmeans = KMeans(n_clusters=k)
kmeans.fit(X)
labels = kmeans.labels_
# 调⽤⼦模块metrics中的silhouette_score函数,计算轮廓系数
S.append(metrics.silhouette_score(X, labels, metric='euclidean'))

  

 

 

 

DBSCAN(密度)聚类

K均值聚类的两大缺点

聚类效果容易受到异常样本点的影响

无法准确的将非球形样本进行合理的聚类

可以采用密度聚类解决上述两个缺点

 

核心概念

核心对象

内部含有至少大于等于最少样本点的样本

非核心对象

内部少于最少样本点的样本

直接密度可达

在核心对象内部的样本点到核心对象的距离

密度可达

多个直接密度可达链接了多个核心对象(首尾点密度可达)

密度相连

两边的点由中间的核心对象分别密度可达

 

使用步骤

 

 

Kmeans聚类效果--球形簇的情况

 

 

密度聚类效果--球形簇的情况

 

 

Kmeans聚类效果—⾮球形簇的情况

 

 

密度聚类效果—⾮球形簇的情况

 

GBDT模型

模型介绍

 

 

Adaboost算法

既可以解决分类问题也可以解决预测问题

由多颗基础决策树组成 并且这些决策树彼此之间有先后关系

 

 

SMOTE算法

通过算法将比例较少的数据样本扩大

 

posted @ 2021-10-25 22:45  wddwyw  阅读(200)  评论(0编辑  收藏  举报