四种方法实现鸢尾花

本文介绍了四种方法实现鸢尾花数据集的分类,包括K-Means聚类、线性回归、SVM支持向量机以及贝叶斯分类。作为机器学习初学者的课堂作业,代码可能包含错误,仅供参考,欢迎斧正。
摘要由CSDN通过智能技术生成

四种方法实现鸢尾花

提示:在下机器学习小白,可能会有很多错误,这主要是老师布置的课堂作业,网上东拼西凑的,建议参考,如有不当,还请斧正,非常感谢。
好了,直接上代码。


1.使用K-Means算法实现鸢尾花分类

'''
date:2020-10-03
author:panajie
goal:使用K-Means算法实现鸢尾花分类

K-Means算法:K-Means算法,对于给定的样本集,
            按照样本之间的距离大小,将样本集划分为K个簇。 
            让簇内的点尽量紧密的连在一起,而让簇间的距离尽量的大。
            一般K的值可以自己设定。

'''

# step 1: 导入必要的包

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

# step 2:加载数据集

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

# step 3:K-Means聚类算法
estimator = KMeans(n_clusters=3) # 构造聚类器
estimator.fit(X) # 聚类
label_pred = estimator.labels_  # 获取聚类标签

# step4: 绘制k-means结果
x0 = X[label_pred == 0]   # Iris-setosa 山鸢尾花
x1 = X[label_pred == 1]   # Iris-versicolor 变色鸢尾
x2 = X[label_pred == 2]   # Iris-virginica 维吉尼亚鸢尾
plt.scatter(x0[:, 0], x0[:, 1], c="blue", marker='x', label='label0')
plt.scatter(x1[:, 0], x1[:, 1], c="green", marker='*', label='label1')
plt.scatter(x2[:, 0], x2[:, 1], c="red", marker='+', label='label2')
# 一下两行代码是为了能够在绘图时候能够显示中文
plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False

plt.title ('K-Means算法实现鸢尾花分类', color='LimeGreen', fontsize = 25)
plt.xlabel('花萼长度', color='OrangeRed', fontsize=15)
plt.ylabel('花萼宽度', color='Fuchsia', fontsize=15)

plt.legend(loc=2)

# 展示
plt.show() 





2.线性回归实现

'''
date:2020-10-03
author:panajie
goal:使用线性回归方法实现鸢尾花分类

线性回归方法:

'''
# step 1:导入必要的包
from sklearn import datasets 
from sklearn import model_selection
from sklearn import svm
from sklearn.naive_bayes import GaussianNB
from sklearn.cluster import KMeans
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt 

# step2:加载数据
iris = datasets.load_iris() # 鸢尾花的数据集可以直接从sklearn中获取

# 获取花瓣的长和宽
x = [n[0] for n in iris.data]
y = [n[1] for n in iris.data]
import numpy as np #转换成数组
x = np.array(x).reshape(len(x),1)
y = np.array(y).reshape(len(y),1)

# step3 :导入Sklearn机器学习扩展包中线性回归模型,然后进行训练和预测  
classifier = LinearRegression()
# 开始训练
classifier
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值