机器学习

1.sklearn

致谢
sklearn库介绍 -人类之奴-2022-知乎

1.1 莺尾花数据集

致谢
探索sklearn | 鸢尾花数据集 -薛定谔的小猫咪-2019-博客园
sklearn iris(鸢尾花)数据集应用 -狼之鸿-2018-博客园
笔记篇二:鸢尾花数据集分类 -一罐趣多多-2022-博客园

原始数据画图

from sklearn import datasets  # 引入数据集,sklearn包含众多数据集
from sklearn.model_selection import train_test_split  # 将数据分为测试集和训练集
from sklearn.neighbors import KNeighborsClassifier  # 利用邻近点方式训练数据
import matplotlib.pyplot as pltdef datasets_demo():###引入数据###iris = datasets.load_iris()  # 引入iris鸢尾花数据,iris数据包含4个特征变量iris_X = iris.data  # 特征变量iris_y = iris.target  # 目标值# 利用train_test_split进行将训练集和测试集进行分开,test_size占30%X_train, X_test, y_train, y_test = train_test_split(iris_X, iris_y, test_size=0.25)# print(y_train)  # 我们看到训练数据的特征值分为3类###训练数据#### knn = KNeighborsClassifier()  # 引入训练方法# knn.fit(X_train, y_train)  # 进行填充测试数据进行训练###预测数据#### print(knn.predict(X_test))  # 预测特征值# print(y_test)  # 真实特征值return irisdef plot_iris_projection(data, feature_names, target, x_index, y_index):for t, marker, c in zip([0, 1, 2], '>ox', 'rgb'):plt.scatter(data[target == t, x_index], data[target == t, y_index], marker=marker, c=c)plt.xlabel(feature_names[x_index])plt.ylabel(feature_names[y_index])passdef main1():data_ = datasets_demo()data = data_['data']  # 为numpy.ndarray类型feature_names = data_['feature_names']target = data_['target']seq = [(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 3)]for i, (x_index, y_index) in enumerate(seq):plt.subplot(2, 3, i+1)plot_iris_projection(data, feature_names, target, x_index, y_index)passplt.show()passmain1()

训练测试

import numpy as np
from sklearn import datasets  # 引入数据集,sklearn包含众多数据集
from sklearn.model_selection import train_test_split  # 将数据分为测试集和训练集
from sklearn.linear_model import LogisticRegression
import matplotlib.pyplot as pltdef load_data():# 共150条数据,训练120条,测试30条,进行2,8分进行模型训练# 每条数据类型为 x{nbarray} [6.4, 3.1, 5.5, 1.8]inputdata = datasets.load_iris()# 切分,测试训练2,8分x_train, x_test, y_train, y_test = \train_test_split(inputdata.data, inputdata.target, test_size=0.2, random_state=1)return x_train, x_test, y_train, y_testdef main():# 训练集x ,测试集x,训练集label,测试集labelx_train, x_test, y_train, y_test = load_data()# l2为正则项model = LogisticRegression(penalty='l2', max_iter=10000)  # 引入训练方法model.fit(x_train, y_train)  # 进行填充测试数据进行训练print("w: ", model.coef_)  # “斜率”参数(w,也叫作权重或系数)被保存在 coef_ 属性中print("b: ", model.intercept_)  # 偏移或截距(b)被保存在 intercept_ 属性中# 准确率print("precision: ", model.score(x_test, y_test))  # 1-残差平方和/总误差平方和 (若残差大,则数据预测不准)print("MSE: ", np.mean((model.predict(x_test) - y_test) ** 2))  # 均方误差(Mean squared error)passmain()

画出预测分类结果

因为难以画出4个特征分割的图,因此这里截取2个特征进行训练,画出的分类图也就容易展现了。

def test_plot():# 载入数据集iris = datasets.load_iris()x_train, x_test, y_train, y_test = train_test_split(iris.data[:, :2], iris.target, test_size=0.2, random_state=1)X = x_train  # 获取花卉两列数据集Y = y_train# 逻辑回归模型lr = LogisticRegression(C=1e5)  # c=1e5是目标函数lr.fit(X, Y)# meshgrid函数生成两个网格矩阵h = .02# 初始化逻辑回归模型并进行训练x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5xx, yy = np.meshgrid(np.arange(x_min, x_max, h), np.arange(y_min, y_max, h))# pcolormesh函数将xx,yy两个网格矩阵和对应的预测结果Z绘制在图片上Z = lr.predict(np.c_[xx.ravel(), yy.ravel()])Z = Z.reshape(xx.shape)plt.figure(1, figsize=(8, 6))plt.pcolormesh(xx, yy, Z, cmap=plt.cm.Paired)plot_iris_projection(X, iris['feature_names'], Y, 0, 1)plt.legend(iris['target_names'], loc=2)plt.xlim(xx.min(), xx.max())plt.ylim(yy.min(), yy.max())plt.xticks(())plt.yticks(())plt.show()print("precision: ", lr.score(x_test, y_test))  # 1-残差平方和/总误差平方和 (若残差大,则数据预测不准)print("MSE: ", np.mean((lr.predict(x_test) - y_test) ** 2))  # 均方误差(Mean squared error)passtest_plot()

结果如图:

机器学习入门之莺尾花训练相关推荐

  1. 【机器学习】iris莺尾花项目-机器学习的hello world

    项目是根据魏贞原先生的<机器学习python实践>学习的 主要代码来自书里面,但是我自己由于目前对于python的机器学习部分用法不是很了解,所以查阅了很多资料. 对于代码的理解和一些函数 ...

  2. python 机器学习(引言-莺尾花分类)

    莺尾花分类 一.实验简介 1.目标: 构建一个机器学习模型,从已知品种的莺尾花测量数据中进行学习,从而能够预测新莺尾花的品种. 2.莺尾花测量数据: 花瓣长度.花瓣宽度.花萼长度.花萼宽度.单位:厘米 ...

  3. 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例

    ** 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例. 具体knn算法是怎样的我这里就不再详细论述.在这里我注意总结我使用knn算法进行一个分类的分析 ** 分析过程 1.前期准备 引入 ...

  4. SVM训练莺尾花数据集

    SVM训练莺尾花数据集 代码在莺尾花数据集上训练SVM,数据集由莺尾花的测量值及其相应的物种标签组成.该模型使用70%数据用于训练,然后剩余部分进行测试.其中′fit′'fit'′fit′方法在训练集 ...

  5. 机器学习系列(五) -- 逻辑回归(莺尾花数据集)

    加载数据 import numpy as np import pandas as pddata = pd.read_csv('iris.csv') # 去掉不需要的ID列 data.drop('ID' ...

  6. 莺尾花数据集--kNN分类

    Step1: 库函数导入 import numpy as np # 加载莺尾花数据集 from sklearn import datasets # 导入KNN分类器 from sklearn.neig ...

  7. 笔记——机器学习入门

    文章目录 1.机器学习概述 1.1什么是机器学习 1.2机器学习算法分类 1.3机器学习开发流程 1.4机器学习框架 1.5数据集获取 1.5.1获取sklearn自带数据集的方法 1.6数据集划分 ...

  8. 【机器学习入门】(13) 实战:心脏病预测,补充: ROC曲线、精确率--召回率曲线,附python完整代码和数据集

    各位同学好,经过前几章python机器学习的探索,想必大家对各种预测方法也有了一定的认识.今天我们来进行一次实战,心脏病病例预测,本文对一些基础方法就不进行详细解释,有疑问的同学可以看我前几篇机器学习 ...

  9. 【机器学习入门】(10) 特征工程:特征抽取,字典特征抽取、文本特征抽取,附完整python代码

    各位同学好,今天和大家介绍一下python机器学习中的特征工程.在将数据放入模型之前,需要对数据的一些特征进行特征抽取,方法有: (1) 字典特征抽取 DictVectorizer(),(2) 文本特 ...

最新文章

  1. 免费开源!新学期必收藏的AI学习资源,从课件、工具到源码都齐了
  2. linux shell 缺少 ps 命令
  3. jvm系列(五):Java GC 分析
  4. SAP Spartacus Customizing CMS Components
  5. H.264学习--1
  6. Google 资深软件工程师 LeetCode 刷题笔记首次公开
  7. source insight 深色主题配置文件
  8. DOS批处理删除重复行
  9. .net中前台javascript与c#后台代码调用
  10. 利用Mircosoft URLRewriter.dll实现页面伪静态[转]
  11. 出差一个多星期,买了个肥皂,把衬衫全部洗了一遍
  12. 3D变形tranform(附实例、图解)
  13. 他山之石:加载图片的一个小问题
  14. 字典哈希表的实现原理_字典哈希表的实现原理
  15. 【活动】完整的Java学习路径《深入理解Java核心技术》(文末送书)
  16. unity如何实现图片透视_unity 中是如何实现游戏人物换装的
  17. nero incd V4.3.23.3 序列号
  18. 半正定矩阵的对角元素不小于该矩阵的最小特征值
  19. 千年3 『自动杀猪·无限挂』千年3脚本 千年3外挂
  20. c语言入门自学课件ppt,C语言入门教程ppt(434页)免费版[精品课件]

热门文章

  1. Ubuntu下连接红米2无法找到设备解决方案
  2. python 地形图_Python-Evoked地形图可视化
  3. 深圳首届“金口碑”颁奖典礼暨诚信者公益基金启动仪式在深举办
  4. CE修改器入门:查找多级指针
  5. angular.js使用路由时,子控制器监听不到父级$boardcast的事件
  6. 欧拉计划22--Names score
  7. 我的北漂在路上--------时不时的停下脚步思考
  8. Hash函数经典用法
  9. Redis 作者 Antirez 讲如何实现分布式锁?Redis 实现分布式锁天然的缺陷分析Redis分布式锁的正确使用姿势!...
  10. Unity得到屏幕宽度