首页 > 其他分享 >鸢尾花分类问题

鸢尾花分类问题

时间:2024-04-02 23:33:25浏览次数:22  
标签:iris set 分类 ticklabels 问题 plt fig ax 鸢尾花

在python上运行鸢尾花分类实验首先要先下载numpy、matplotlib再下载scikit-learn

pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ numpy
pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ matplotlib
pip install --index https://pypi.mirrors.ustc.edu.cn/simple/ scikit-learn

但是在下载完之后点击运行又会报attributeerror: 'axes3d' object has no attribute 'w_xaxis'. did you mean: 'xaxis'?

这是因为matplotlib版本升级的原因,按照报错信息将w_xaxis改为xaxis就可以,但是之后又会出现可视化的界面是一片空白,这时在ax = Axes3D(fig, rect=[0, 0, .95, 1], elev=48, azim=134)后面加上

fig.add_axes(ax)就可以

鸢尾花分类的完整代码为

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

from sklearn.cluster import KMeans
from sklearn import datasets

np.random.seed(5)

centers = [[1, 1], [-1, -1], [1, -1]]
iris = datasets.load_iris()
X = iris.data
y = iris.target

estimators = {'k_means_iris_3': KMeans(n_clusters=3),
              'k_means_iris_8': KMeans(n_clusters=8),
              'k_means_iris_bad_init': KMeans(n_clusters=3, n_init=1,
                                              init='random')}

fignum = 1
for name, est in estimators.items():
    fig = plt.figure(fignum, figsize=(4, 3))
    plt.clf()
    ax = Axes3D(fig, rect=[0, 0, .95, 1], elev=48, azim=134)
    fig.add_axes(ax)

    plt.cla()
    est.fit(X)
    labels = est.labels_

    ax.scatter(X[:, 3], X[:, 0], X[:, 2], c=labels.astype(float))

    ax.xaxis.set_ticklabels([])
    ax.yaxis.set_ticklabels([])
    ax.zaxis.set_ticklabels([])
    ax.set_xlabel('Petal width')
    ax.set_ylabel('Sepal length')
    ax.set_zlabel('Petal length')
    fignum = fignum + 1

# Plot the ground truth
fig = plt.figure(fignum, figsize=(4, 3))
plt.clf()
ax = Axes3D(fig, rect=[0, 0, .95, 1], elev=48, azim=134)
fig.add_axes(ax)
plt.cla()

for name, label in [('Setosa', 0),
                    ('Versicolour', 1),
                    ('Virginica', 2)]:
    ax.text3D(X[y == label, 3].mean(),
              X[y == label, 0].mean() + 1.5,
              X[y == label, 2].mean(), name,
              horizontalalignment='center',
              bbox=dict(alpha=.5, edgecolor='w', facecolor='w'))
# Reorder the labels to have colors matching the cluster results
y = np.choose(y, [1, 2, 0]).astype(float)
ax.scatter(X[:, 3], X[:, 0], X[:, 2], c=y)

ax.xaxis.set_ticklabels([])
ax.yaxis.set_ticklabels([])
ax.zaxis.set_ticklabels([])
ax.set_xlabel('Petal width')
ax.set_ylabel('Sepal length')
ax.set_zlabel('Petal length')
plt.show()

 

标签:iris,set,分类,ticklabels,问题,plt,fig,ax,鸢尾花
From: https://www.cnblogs.com/cinan/p/18111733

相关文章

  • kali linux 解决无线驱动程序问题
    TroubleshootingwirelessdriverissuesinLinuxcanbeafrustratingexperienceifyoudon’tknowwhattolookfor。Thisarticleismeanttobeusedasageneralguidelinetobetterhelpyoufindtheinformationyouneedtosolveyourwirelessissues。C......
  • 求教一个问题
    远程连接服务器提示Credssp加密数据库修正,在网上查说是要在本地组策略里面改东西,但是我这个Windows11家庭版在命令行输入gpedit.msc他是没有东西的,又在网上查需要安装这个组件,我又试了FOR%FIN("%SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools......
  • 简直了,被“Java并发锁”问题追问到自闭...
    故事地铁上,小帅双目空洞地望着窗外...绝望,发自内心地感到绝望...距离失业已经过去两个月了,这是小帅接到的第四次面试邀请。“回去等通知吧...”,简简单单的六个字,把小帅的心再次打入了冰窖。上次“【ThreadLocal问出花】”,小帅其实也有吸取教训得,这次对于多线程的问题还是做了......
  • 如何解决Modbus转Profinet网关调试时通信不稳定或数据丢失问题
    在接到现场关于Modbus转Profinet网关(XD-MDPN100)配置时出现信不稳定或数据丢失的问题的反馈后。对于现场反馈的Modbus转Profinet网关配置问题,特出专项答疑。解决Modbus转Profinet网关(XD-MDPN100)通信不稳定或数据丢失的问题可以从以下几个方面着手:1、检查物理连接与接口:确保所有......
  • 最短路径问题(单源最短路问题-都正边)1.0
    基本思路和代码来自y总!朴素版dijkstra算法适合与稠密图,用邻接矩阵来存图#include<bits/stdc++.h>#include<algorithm>usingnamespacestd;intn,m;//intg[520][520];//存图边的值intdist[520];//存最短距离boolst[520];//是否已经遍历过最小的边intdijks......
  • 子集与全排列问题(力扣78,90,46,47)
    系列文章目录子集和全排列问题与下面的组合都是属于回溯方法里的,相信结合前两期,再看这篇笔记,更有助于大家对本系列的理解一、组合回溯问题二、组合总和问题文章目录系列文章目录题目子集一、思路二、解题方法三、Code子集II一、思路二、解题方法三、Code全排列一......
  • 粒子群算法(主要针对连续型函数优化问题)
    文章主要参考了以下博文:https://zhuanlan.zhihu.com/p/5648197181.简介粒子群算法是一种解决最优化问题的通用方法,其优点是求解速度快,数值相对稳定,算法简单。粒子群算法分为连续型粒子群算法和离散型粒子群算法,分别用于解决连续型问题和离散型问题。粒子群优化算法源自对鸟......
  • 函数或方法参数传递问题
    ★一般情况函数参数的传入顺序依次为:必备参数=>默认参数=>不定长参数=>关键字参数案例#函数传入参数顺序必备默认不定长defdouble_sum(x,y=88,*args,**kwargs):print(x)print(y)print(args)print(kwargs)double_sum(10,20,......
  • docker下mysql连接数修改后不生效问题的解决
    使用容器的方式使用mysql,在创建mysql容器的时候,映射了配置文件的路径(我映射的路径是:/home/env/mysql/config/),当修改了路径中配置文件中的最大连接数后,重启容器后,发现参数是不生效的情况,你遇到过吗?先说结果:是权限的问题,777权限会被mysql认为是安全的问题,忽略这种文件。具体如下:......
  • COMP 330正则化逻辑回归分类
    COMP330课业#51说明在这项任务中,您将实现一个正则化的逻辑回归来对文本文档进行分类。实现将在Spark之上的Python中进行给你,有必要使用亚马逊AWS。您将被要求执行三个子任务:(1)数据准备,(2)学习(将通过梯度下降)和(3)学习模型的评估。注意:在你真正开始这项任务之前,完成HW5和Lab5是很重......