机器学习入门之莺尾花训练
机器学习
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()
结果如图:
机器学习入门之莺尾花训练相关推荐
- 【机器学习】iris莺尾花项目-机器学习的hello world
项目是根据魏贞原先生的<机器学习python实践>学习的 主要代码来自书里面,但是我自己由于目前对于python的机器学习部分用法不是很了解,所以查阅了很多资料. 对于代码的理解和一些函数 ...
- python 机器学习(引言-莺尾花分类)
莺尾花分类 一.实验简介 1.目标: 构建一个机器学习模型,从已知品种的莺尾花测量数据中进行学习,从而能够预测新莺尾花的品种. 2.莺尾花测量数据: 花瓣长度.花瓣宽度.花萼长度.花萼宽度.单位:厘米 ...
- 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例
** 机器学习knn算法学习笔记使用sklearn库 ,莺尾花实例. 具体knn算法是怎样的我这里就不再详细论述.在这里我注意总结我使用knn算法进行一个分类的分析 ** 分析过程 1.前期准备 引入 ...
- SVM训练莺尾花数据集
SVM训练莺尾花数据集 代码在莺尾花数据集上训练SVM,数据集由莺尾花的测量值及其相应的物种标签组成.该模型使用70%数据用于训练,然后剩余部分进行测试.其中′fit′'fit'′fit′方法在训练集 ...
- 机器学习系列(五) -- 逻辑回归(莺尾花数据集)
加载数据 import numpy as np import pandas as pddata = pd.read_csv('iris.csv') # 去掉不需要的ID列 data.drop('ID' ...
- 莺尾花数据集--kNN分类
Step1: 库函数导入 import numpy as np # 加载莺尾花数据集 from sklearn import datasets # 导入KNN分类器 from sklearn.neig ...
- 笔记——机器学习入门
文章目录 1.机器学习概述 1.1什么是机器学习 1.2机器学习算法分类 1.3机器学习开发流程 1.4机器学习框架 1.5数据集获取 1.5.1获取sklearn自带数据集的方法 1.6数据集划分 ...
- 【机器学习入门】(13) 实战:心脏病预测,补充: ROC曲线、精确率--召回率曲线,附python完整代码和数据集
各位同学好,经过前几章python机器学习的探索,想必大家对各种预测方法也有了一定的认识.今天我们来进行一次实战,心脏病病例预测,本文对一些基础方法就不进行详细解释,有疑问的同学可以看我前几篇机器学习 ...
- 【机器学习入门】(10) 特征工程:特征抽取,字典特征抽取、文本特征抽取,附完整python代码
各位同学好,今天和大家介绍一下python机器学习中的特征工程.在将数据放入模型之前,需要对数据的一些特征进行特征抽取,方法有: (1) 字典特征抽取 DictVectorizer(),(2) 文本特 ...
最新文章
- 免费开源!新学期必收藏的AI学习资源,从课件、工具到源码都齐了
- linux shell 缺少 ps 命令
- jvm系列(五):Java GC 分析
- SAP Spartacus Customizing CMS Components
- H.264学习--1
- Google 资深软件工程师 LeetCode 刷题笔记首次公开
- source insight 深色主题配置文件
- DOS批处理删除重复行
- .net中前台javascript与c#后台代码调用
- 利用Mircosoft URLRewriter.dll实现页面伪静态[转]
- 出差一个多星期,买了个肥皂,把衬衫全部洗了一遍
- 3D变形tranform(附实例、图解)
- 他山之石:加载图片的一个小问题
- 字典哈希表的实现原理_字典哈希表的实现原理
- 【活动】完整的Java学习路径《深入理解Java核心技术》(文末送书)
- unity如何实现图片透视_unity 中是如何实现游戏人物换装的
- nero incd V4.3.23.3 序列号
- 半正定矩阵的对角元素不小于该矩阵的最小特征值
- 千年3 『自动杀猪·无限挂』千年3脚本 千年3外挂
- c语言入门自学课件ppt,C语言入门教程ppt(434页)免费版[精品课件]
热门文章
- Ubuntu下连接红米2无法找到设备解决方案
- python 地形图_Python-Evoked地形图可视化
- 深圳首届“金口碑”颁奖典礼暨诚信者公益基金启动仪式在深举办
- CE修改器入门:查找多级指针
- angular.js使用路由时,子控制器监听不到父级$boardcast的事件
- 欧拉计划22--Names score
- 我的北漂在路上--------时不时的停下脚步思考
- Hash函数经典用法
- Redis 作者 Antirez 讲如何实现分布式锁?Redis 实现分布式锁天然的缺陷分析Redis分布式锁的正确使用姿势!...
- Unity得到屏幕宽度