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

数据挖掘 模糊聚类

格式化之前的代码:

import matplotlib.pyplot as plt#绘图
import pandas as pd#读取数据集
from sklearn.preprocessing import scale
from sklearn.cluster import DBSCAN#聚类
from sklearn import preprocessing#数据预处理的功能,包括缩放、标准化、正则化等
plt.rcParams["font.sans-serif"] = "Microsoft Yahei"#字体
df = pd.read_csv("country.txt",sep="\t")
num_data = df[["面积km^2", "人口"]]
X = preprocessing.minmax_scale(num_data,feature_range=(0,10000))#最小-最大缩放是一种常用的数据预处理方法,它将原始数据线性地缩放到给定的范围内,feature_range=(0,10000)指定了缩放后的特征值范围为0到10000。这意味着最小值将被缩放到0,最大值将被缩放到10000,而其他值将按比例缩放以保持数据的分布。
model = DBSCAN(eps=2000,min_samples=3)#DBSCAN是scikit-learn库中的一个聚类算法模型,eps=2000表示DBSCAN算法中的邻域半径,指定了两个样本被视为同一簇的最大距离。如果两个样本之间的距离小于等于eps,则这两个样本被认为是相邻的,min_samples=3表示DBSCAN算法中的核心点的最小样本数。当一个样本的邻域内包含至少min_samples个样本点时,该样本被认为是核心点。
model.fit(X)
label = model.labels_
plt.figure(figsize=(5,5))
print(label)
for i in df[label == -1].index:plt.scatter(df.loc[i,'面积km^2'],df.loc[i,"人口"],color = 'red')#绘图plt.annotate(text=df.loc[i,"国家"],xy=(df.loc[i,'面积km^2'],df.loc[i,"人口"]))#注释
for i in df[label == 0].index:plt.scatter(df.loc[i,'面积km^2'],df.loc[i,"人口"],color = 'blue')plt.annotate(text=df.loc[i,"国家"],xy=(df.loc[i,'面积km^2'],df.loc[i,"人口"]))#df.loc用于按标签进行索引,i是索引值
for i in df[label == 1].index:plt.scatter(df.loc[i,'面积km^2'],df.loc[i,"人口"],color = 'yellow')plt.annotate(text=df.loc[i,"国家"],xy=(df.loc[i,'面积km^2'],df.loc[i,"人口"]))plt.show()

格式化之后的代码:

import matplotlib.pyplot as plt  # 绘图
import pandas as pd  # 读取数据集
from sklearn.preprocessing import scale
from sklearn.cluster import DBSCAN  # 聚类
from sklearn import preprocessing  # 数据预处理的功能,包括缩放、标准化、正则化等plt.rcParams["font.sans-serif"] = "Microsoft Yahei"  # 字体
df = pd.read_csv("country.txt", sep="\t")
num_data = df[["面积km^2", "人口"]]
X = preprocessing.minmax_scale(num_data, feature_range=(0,10000))  # 最小-最大缩放是一种常用的数据预处理方法,它将原始数据线性地缩放到给定的范围内,feature_range=(0,10000)指定了缩放后的特征值范围为0到10000。这意味着最小值将被缩放到0,最大值将被缩放到10000,而其他值将按比例缩放以保持数据的分布。
model = DBSCAN(eps=2000,min_samples=3)  # DBSCAN是scikit-learn库中的一个聚类算法模型,eps=2000表示DBSCAN算法中的邻域半径,指定了两个样本被视为同一簇的最大距离。如果两个样本之间的距离小于等于eps,则这两个样本被认为是相邻的,min_samples=3表示DBSCAN算法中的核心点的最小样本数。当一个样本的邻域内包含至少min_samples个样本点时,该样本被认为是核心点。
model.fit(X)
label = model.labels_
plt.figure(figsize=(5, 5))
print(label)
for i in df[label == -1].index:plt.scatter(df.loc[i, '面积km^2'], df.loc[i, "人口"], color='red')  # 绘图plt.annotate(text=df.loc[i, "国家"], xy=(df.loc[i, '面积km^2'], df.loc[i, "人口"]))  # 注释
for i in df[label == 0].index:plt.scatter(df.loc[i, '面积km^2'], df.loc[i, "人口"], color='blue')plt.annotate(text=df.loc[i, "国家"], xy=(df.loc[i, '面积km^2'], df.loc[i, "人口"]))  # df.loc用于按标签进行索引,i是索引值
for i in df[label == 1].index:plt.scatter(df.loc[i, '面积km^2'], df.loc[i, "人口"], color='yellow')plt.annotate(text=df.loc[i, "国家"], xy=(df.loc[i, '面积km^2'], df.loc[i, "人口"]))plt.show()
http://www.lryc.cn/news/275837.html

相关文章:

  • Vue2和Vue3各自的优缺点以及区别对比
  • 手写一个加盐加密算法(java实现)
  • 基于Springboot的在线考试系统
  • 【React系列】JSX核心语法和原理
  • 【C++初阶(九)】C++模版(初阶)----函数模版与类模版
  • Permission denied
  • 轻松学会电脑如何录制音频
  • react antd,echarts全景视图
  • GD32 支持IAP的bootloader开发,使用串口通过Ymodem协议传输固件(附代码)
  • 【C#】知识点实践序列之UrlEncode在线URL网址编码、解码
  • 泽攸科技完全自主研制的电子束光刻机取得阶段性成果
  • 上篇 | CDP应用篇之兴趣标签的3种破圈玩法
  • 智能的核心依然是哲学的三个基本问题
  • 用python实现提取word中的所有图片
  • CoTracker 环境配置与ORB 特征点提取结合实现视频特征点追踪
  • 10000000000 大瓜背后的真相(附 PDD 算法真题)
  • python爬虫,简单的requests的get请求,百度搜索实例
  • UNION 和 UNION ALL
  • NPS 内网穿透安装
  • 【C++学习笔记】C++多值返回写法
  • 读取带有梯度的张量的具体的值
  • 【分布式微服务专题】SpringSecurity快速入门
  • EasyRecovery2024永久免费版电脑数据恢复软件
  • iphone 苹果 IOS 越狱详细图文保姆级教程非常简单
  • 华为HarmonyOS 创建第一个鸿蒙应用 运行Hello World
  • [C#]Onnxruntime部署Chinese CLIP实现以文搜图以文找图功能
  • openssl ans1定义的实体
  • 【Linux Shell】4. 数组
  • 蓝牙运动耳机哪款好用?运动用什么耳机比较好?2024运动耳机推荐
  • XD6500S一款串口SiP模块 射频LoRa芯片 内置sx1262