利用matplotlib和KNeighborsClassifier,进行DBSACN聚类算法

代码:

# -*- coding: utf-8 -*-
"""
Created on Sat May 11 10:23:50 2024

@author: admin
"""
# 调用库
import numpy as np
import matplotlib.pyplot as plt
# 调用人工智能模型库
from sklearn.neighbors import KNeighborsClassifier

from sklearn.model_selection import train_test_split

from sklearn import metrics
# 定义函数
X1, y1 = [], []
#输入数据
fr = open('F:/bigdata/knn.txt', mode='r', encoding='gbk')
for line in fr.readlines():
    lineArr = line.strip().split()
    X1.append([int(lineArr[0]),int(lineArr[1])])
    y1.append(int(lineArr[2]))
# 输出数据
X = np.array(X1)
y = np.array(y1)

X_train,X_text,Y_train,Y_test =train_test_split(X,y,test_size=0.16)

knn=KNeighborsClassifier(3)
knn.fit(X,y)

plt.scatter(X_train[Y_train==1,0], X_train[Y_train==1,1], color='red', marker='o')
plt.scatter(X_train[Y_train==2,0], X_train[Y_train==2,1], color='green', marker='x')
plt.scatter(X_train[Y_train==3,0], X_train[Y_train==3,1], color='blue', marker='d')

y_pred=knn.predict(X_text)

print(knn.score(X_text, Y_test))
print(metrics.accuracy_score(y_true=Y_test,y_pred=y_pred))

print(metrics.confusion_matrix(y_true=Y_test,y_pred=y_pred))

from sklearn.metrics import classification_report
target_names=['label_1','label_2','label_3']
print(classification_report(Y_test, y_pred))
label = knn.predict([[7,27],[2,4]])
print(label)


结果如下:

knn.txt:

2  4  1
4  3  2
10 6  3
12 9  2
3  11 3
20 7  2
22 5  2
21 10 1
11 2  3
24 1  1

 

  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您提供一些关于使用Python语言进行原型聚类和密度聚类的基本方法和代码示例。 首先,我们需要导入一些必要的库,例如numpy、sklearn和matplotlib等库。您可以使用以下代码进行导入: ```python import numpy as np import matplotlib.pyplot as plt from sklearn.cluster import KMeans, DBSCAN ``` 接下来,我们需要准备用于聚类的数据集。这里,我将使用一个示例数据集,该数据集包含两个特征和四个类别。您可以使用以下代码生成示例数据: ```python np.random.seed(0) X = np.vstack((np.random.randn(100, 2) * 0.5 + np.array([2, 2]), np.random.randn(100, 2) * 0.5 + np.array([-2, 2]), np.random.randn(100, 2) * 0.5 + np.array([-2, -2]), np.random.randn(100, 2) * 0.5 + np.array([2, -2]))) ``` 现在,我们可以使用KMeans算法进行原型聚类。以下是使用KMeans算法对数据进行聚类的基本代码: ```python kmeans = KMeans(n_clusters=4) y_kmeans = kmeans.fit_predict(X) plt.scatter(X[:, 0], X[:, 1], c=y_kmeans, cmap='viridis') plt.show() ``` 上述代码将数据分成4个簇,并使用散点图可视化了聚类结果。您可以根据需要更改聚类簇的数量。 接下来,我们可以使用DBSCAN算法进行密度聚类。以下是使用DBSCAN算法对数据进行聚类的基本代码: ```python dbscan = DBSCAN(eps=0.3, min_samples=5) y_dbscan = dbscan.fit_predict(X) plt.scatter(X[:, 0], X[:, 1], c=y_dbscan, cmap='viridis') plt.show() ``` 上述代码将数据使用DBSCAN算法进行聚类,并使用散点图可视化了聚类结果。您可以根据需要更改DBSCAN算法的参数。 希望这些代码能够帮助您开始使用Python进行原型聚类和密度聚类。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值