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

带管理后台的网站湖南省建设安监局官网站

带管理后台的网站,湖南省建设安监局官网站,我的世界做视频封面的网站,提升网站权重的策略文章目录 前言一、数据集介绍二、使用步骤1.导包1.2加载数据集1.3绘制二维数据分布图1.4实例化K-means类,并且定义训练函数1.5训练1.6可视化展示2.聚类算法2.1.可视化生成3其他聚类算法进行鸢尾花分类 前言 例如:随着人工智能的不断发展,机器…

文章目录

  • 前言
  • 一、数据集介绍
  • 二、使用步骤
    • 1.导包
    • 1.2加载数据集
    • 1.3绘制二维数据分布图
    • 1.4实例化K-means类,并且定义训练函数
    • 1.5训练
    • 1.6可视化展示
    • 2.聚类算法
    • 2.1.可视化生成
    • 3其他聚类算法进行鸢尾花分类


前言

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


一、数据集介绍

鸢尾花数据集:鸢尾花开源数据集,共包含150条记录

二、使用步骤

1.导包

import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import KMeans 
from sklearn import datasets 

1.2加载数据集

# 直接从sklearn中获取数据集
iris = datasets.load_iris()
X = iris.data[:, :4]    # 表示我们取特征空间中的4个维度
print(X.shape)

1.3绘制二维数据分布图

# 取前两个维度(萼片长度、萼片宽度),绘制数据分布图
plt.scatter(X[:, 0], X[:, 1], c="red", marker='o', label='see')
plt.xlabel('sepal length')
plt.ylabel('sepal width')
plt.legend(loc=2)
plt.show() 
# 取后两个维度(花瓣长度、花瓣宽度),绘制数据分布图
plt.scatter(X[:, 2], X[:, 3], c="green", marker='+', label='see')
plt.xlabel('petal length')
plt.ylabel('petal width')
plt.legend(loc=2)
plt.show() 

在这里插入图片描述
在这里插入图片描述

1.4实例化K-means类,并且定义训练函数

def Model(n_clusters):estimator = KMeans(n_clusters=n_clusters)# 构造聚类器return estimatordef train(estimator):estimator.fit(X)  # 聚类

1.5训练

# 初始化实例,并开启训练拟合
estimator=Model(4)     
train(estimator)     

1.6可视化展示

label_pred = estimator.labels_  # 获取聚类标签
# 绘制k-means结果
x0 = X[label_pred == 0]
x1 = X[label_pred == 1]
x2 = X[label_pred == 2]
plt.scatter(x0[:, 0], x0[:, 1], c="red", marker='o', label='label0')
plt.scatter(x1[:, 0], x1[:, 1], c="green", marker='*', label='label1')
plt.scatter(x2[:, 0], x2[:, 1], c="blue", marker='+', label='label2')
plt.xlabel('sepal length')
plt.ylabel('sepal width')
plt.legend(loc=2)
plt.show() # 绘制k-means结果
x0 = X[label_pred == 0]
x1 = X[label_pred == 1]
x2 = X[label_pred == 2]
plt.scatter(x0[:, 2], x0[:, 3], c="red", marker='o', label='label0')
plt.scatter(x1[:, 2], x1[:, 3], c="green", marker='*', label='label1')
plt.scatter(x2[:, 2], x2[:, 3], c="blue", marker='+', label='label2')
plt.xlabel('petal length')
plt.ylabel('petal width')
plt.legend(loc=2)
plt.show() '''# 绘制k-means结果,分成4类,效果并不比3类好。
x0 = X[label_pred == 0]
x1 = X[label_pred == 1]
x2 = X[label_pred == 2]
x3 = X[label_pred == 3]
plt.scatter(x0[:, 2], x0[:, 3], c="red", marker='o', label='label0')
plt.scatter(x1[:, 2], x1[:, 3], c="green", marker='*', label='label1')
plt.scatter(x2[:, 2], x2[:, 3], c="blue", marker='+', label='label2')
plt.scatter(x2[:, 2], x2[:, 3], c="yellow", marker='X', label='label3')
plt.xlabel('petal length')
plt.ylabel('petal width')
plt.legend(loc=2)
plt.show() '''

在这里插入图片描述

2.聚类算法

代码如下(示例):

#1. 函数distEclud()的作用:用于计算两个向量的距离def distEclud(x,y):return np.sqrt(np.sum((x-y)**2)) #2. 函数randCent()的作用: 用来为给定的数据集构建一个包含k个随机质心的集合
def randCent(dataSet,k):# 3.m,n分别被赋值为?#   m = 150  ,n = 4m,n = dataSet.shape centroids = np.zeros((k,n))#4.补充range()中的参数for i in range(k): index = int(np.random.uniform(0,m)) # 产生0到150的随机数(在数据集中随机挑一个向量做为质心的初值)centroids[i,:] = dataSet[index,:] #把对应行的四个维度传给质心的集合# print(centroids)    return centroids# k均值聚类算法
def KMeans(dataSet,k): m = np.shape(dataSet)[0]  #行数150# 第一列存每个样本属于哪一簇(四个簇)# 第二列存每个样本的到簇的中心点的误差# print(m)clusterAssment = np.mat(np.zeros((m,2)))# .mat()创建150*2的矩阵clusterChange = True# 5.centroids = randCent(dataSet,k)的作用:初始化质心centroidscentroids = randCent(dataSet,k)# 6.补充while循环的条件。while clusterChange:clusterChange = False# 遍历所有的样本# 7.补充range()中的参数。for i in range(m):minDist = 100000.0minIndex = -1# 遍历所有的质心#8.补充range()中的参数:for j in range(k):# 计算该样本到3个质心的欧式距离,找到距离最近的那个质心minIndexdistance = distEclud(centroids[j,:],dataSet[i,:])if distance < minDist:#9.补充minDist;minIndex的赋值代码minDist = distance#分类的索引minIndex = j# 更新该行样本所属的簇if clusterAssment[i,0] != minIndex:clusterChange = TrueclusterAssment[i,:] = minIndex,minDist**2#更新质心for j in range(k):pointsInCluster = dataSet[np.nonzero(clusterAssment[:,0].A == j)[0]]  # 获取对应簇类所有的点(x*4)#10.补充axis后的赋值:centroids[j,:] = np.mean(pointsInCluster,axis=0)   # 求均值,产生新的质心# print(clusterAssment[0:150,:])print("cluster complete")return centroids,clusterAssmentdef draw(data,center,assment):length=len(center)fig=plt.figuredata1=data[np.nonzero(assment[:,0].A == 0)[0]]data2=data[np.nonzero(assment[:,0].A == 1)[0]]data3=data[np.nonzero(assment[:,0].A == 2)[0]]# 选取前两个维度绘制原始数据的散点图plt.scatter(data1[:,0],data1[:,1],c="red",marker='o',label='label0')plt.scatter(data2[:,0],data2[:,1],c="green", marker='*', label='label1')plt.scatter(data3[:,0],data3[:,1],c="blue", marker='+', label='label2')# 绘制簇的质心点for i in range(length):plt.annotate('center',xy=(center[i,0],center[i,1]),xytext=\(center[i,0]+1,center[i,1]+1),arrowprops=dict(facecolor='yellow'))#  plt.annotate('center',xy=(center[i,0],center[i,1]),xytext=\# (center[i,0]+1,center[i,1]+1),arrowprops=dict(facecolor='red'))plt.show()# 选取后两个维度绘制原始数据的散点图plt.scatter(data1[:,2],data1[:,3],c="red",marker='o',label='label0')plt.scatter(data2[:,2],data2[:,3],c="green", marker='*', label='label1')plt.scatter(data3[:,2],data3[:,3],c="blue", marker='+', label='label2')# 绘制簇的质心点for i in range(length):plt.annotate('center',xy=(center[i,2],center[i,3]),xytext=\(center[i,2]+1,center[i,3]+1),arrowprops=dict(facecolor='yellow'))plt.show()

2.1.可视化生成

代码如下(示例):

import matplotlib.pyplot as plt
import numpy as np
from sklearn import datasets 
iris = datasets.load_iris()
dataSet= iris.data[:, :4]  
k = 3
centroids,clusterAssment = KMeans(dataSet,k)
draw(dataSet,centroids,clusterAssment)

在这里插入图片描述
在这里插入图片描述

3其他聚类算法进行鸢尾花分类

import matplotlib.pyplot as plt
import numpy as np
from sklearn.cluster import KMeans 
from sklearn import datasets 
# 直接从sklearn中获取数据集
iris = datasets.load_iris()
X = iris.data[:, :4]    # 表示我们取特征空间中的4个维度
print(X.shape)
from sklearn.cluster import DBSCAN
# 导入数据集
iris = datasets.load_iris()
X = iris.data[:, :4]  # 取前四个特征
# 使用DBSCAN聚类算法
dbscan = DBSCAN(eps=0.5, min_samples=5)
labels = dbscan.fit_predict(X)
# 绘制分类结果
plt.scatter(X[:, 0], X[:, 1], c=labels)
plt.xlabel('Sepal Length')
plt.ylabel('Sepal Width')
plt.title('DBSCAN Clustering')
plt.show()

在这里插入图片描述

from sklearn.cluster import AgglomerativeClustering
# 使用层次聚类算法
hierarchical = AgglomerativeClustering(n_clusters=3)
labels = hierarchical.fit_predict(X)
# 绘制分类结果
plt.scatter(X[:, 0], X[:, 1], c=labels, marker='+')
plt.xlabel('Sepal Length')
plt.ylabel('Sepal Width')
plt.title('Hierarchical Clustering')
plt.show()

在这里插入图片描述

http://www.yayakq.cn/news/851683/

相关文章:

  • 搭建网站的步骤有哪些注册资本可以随便填吗
  • 网站由哪些部分组成部分组成部分网站建设中文百
  • 免费做那个的视频网站好已经有了域名怎么做网站
  • 凡科网站建设怎么样泉州哪个公司网站做的好
  • 策划会展网站建设做阿里云网站
  • 网站优化包括哪些内容网站建设市场
  • 昆明市城市基本建设档案馆网站自己做网站投放广告
  • eclipse tomcat 网站开发万能设计导航
  • 免费行情软件app网站大全下载有图片网站建设应具备哪些专业技能
  • 企业门户网站建设论文大学校园网络规划设计方案
  • 茶叶销售网站源代码wordpress上传文件显示
  • 江浙沪做网站的公司大型销售网站建设
  • 网站建设书籍 知乎门户类网站建设需要多少钱
  • 网站建设属于哪个税目6成都网站建设
  • 公司宣传网站建站做花馍网站
  • 云浮网站建设兼职eefocus电子工程网
  • 制作一个网站大概要多少钱新网站排名优化
  • 二手手表网站深圳设计公司 电话
  • 360浏览器免费网站网站优点介绍
  • 网站建设公司固定ip自助网站建设平台
  • 网站建设公司广告 晴天娃娃龙岗建站费用
  • 网站开发立项申请表网站关键词可以添加吗
  • 多用户旅游网站开发购买软件平台
  • 什么网站做软件任务挣钱中英文企业网站模板
  • 自己电脑做网站访问速度wordpress全站cdn ssl
  • 无锡谁会建商务网站做网页的软件下载
  • 网站建设干货图书网站建设商务
  • 文化馆网站建设如何设计大型电商网站建设
  • 网站建设流程知乎ppt模板免费下载网站不需要登录
  • excel服务器做网站做什么网站比较简单