线性回归算法之鸢尾花特征分类【机器学习】
文章目录
- 一.前言
- 1.1 本文原理
- 1.1 本文目的
- 二.实验过程
- 2.1使用scikit-learn机器学习包的算法,对鸢尾花进行分类
- 2.2 使用scikit-learn机器学习包的线性回归算法,选择一个特征对鸢尾花进行分类
- 2.3 使用scikit-learn机器学习包的线性回归算法,选择两个特征对鸢尾花进行分类
- 2.4 使用scikit-learn机器学习包的线性回归算法,选择三个特征对鸢尾花进行分类;
- 2.5 结合上一个数据分析和可视化实验,根据对鸢尾花数据的特征两两对比可视化图,分析特征可视化对特征选择及相关分类计算结果的影响
一.前言
1.1 本文原理
线性回归就是用一条直线来准确描述数据之间的关系,这样当新数据出现时,就可以预测一个简单的值。一般来说,就是将真实数据映射到坐标轴上,坐标轴上的数据呈线性形状,然后构建一个函数,使函数对应的数据尽可能接近真实数据,使函数在坐标轴上绘制的图像尽可能通过真实数据中的所有点,并尝试最小化我们构建的函数所表示的坐标轴上所有点和线之间的距离。
1.1 本文目的
- 使用scikit-learn机器学习包的线性回归算法,对鸢尾花进行分类;
- 使用scikit-learn机器学习包的线性回归算法,选择一个特征对鸢尾花进行分类;
- 使用scikit-learn机器学习包的线性回归算法,选择两个特征对鸢尾花进行分类;
- 使用scikit-learn机器学习包的线性回归算法,选择三个特征对鸢尾花进行分类;
结合上一个数据分析和可视化实验,根据对鸢尾花数据的特征两两对比可视化图,分析特征可视化对特征选择及相关分类计算结果的影响; - 熟悉机器学习线性回归算法
- 使用线性回归算法解决问题
二.实验过程
2.1使用scikit-learn机器学习包的算法,对鸢尾花进行分类
相信各位,经过上文的学习,我们已经安装了scikit-learn机器学习包。
我们先导入鸢尾花特征数据包如下:
load_iris模块里有150组鸢尾花特征数据供我们学习使用。
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
print(X.shape, X)
y = iris.target
print(y.shape, y)
下面我们对对鸢尾花进行分类。
使用plt.scatter绘制散点图,我们看一下里面的参数。
看一下他的文档:
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None,
vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, hold=None, data=None, **kwargs)
feature = 1
feature_other = 2
plt.scatter(X[0:50,feature], X[0:50,feature_other], color='red', marker='o', label='setosa') #前50个样本
plt.scatter(X[50:100,feature], X[50:100,feature_other], color='blue', marker='x', label='versicolor') #中间50个
plt.scatter(X[100:,feature], X[100:,feature_other],color='green', marker='+', label='Virginica') #后50个样本
plt.show()
上述代码解释:
feature为1,feature_other为2,使用scatter绘制散点图,我们分别使用它的前50个样本,中间50个,后50个样本,采用第二个特征和第三个特征。
plt.show()显示散点图:
2.2 使用scikit-learn机器学习包的线性回归算法,选择一个特征对鸢尾花进行分类
导入numpy模块,拟合运算需要;
import numpy as np
我们需要先导入linear_model模块,之后再创建一个线性模型。
from sklearn import linear_model
最小二乘法线性回归
linear_model.LinearRegression(fit_intercept=True, normalize=False,copy_X=True, n_jobs=1)
根据第一个特征进行拟合:
linear.fit(X[:,:1],y)
输出线性回归一个特征拟合得分:
print("线性回归 training score: ",linear.score(X[:,:1],y))
可视化看一下;
plt.scatter(X[:,:1],y)
plt.scatter(X[:,:1],np.dot(X[:,:1],linear.coef_)+linear.intercept_)
plt.plot(X[:,:1],np.dot(X[:,:1],linear.coef_)+linear.intercept_)
plt.show()
可视化结果为:
2.3 使用scikit-learn机器学习包的线性回归算法,选择两个特征对鸢尾花进行分类
使用循环取出两个不同特征进行训练。
循环训练得分如下:
for j in range(4):if i<j:x_slice = X[:,[i,j]]predict_slice = predict_data[:,[i,j]]features.append([i,j])func_linear(x_slice,y,scores)
x_slice = X[:,[0,1,2,3]]
predict_slice = predict_data[:,[0,1,2,3]]
features.append([0,1,2,3])
func_linear(x_slice,y,scores)
print(features)
print(scores)
print(predict_results)
2.4 使用scikit-learn机器学习包的线性回归算法,选择三个特征对鸢尾花进行分类;
写第4项代码,循环取出三个不同特征进行训练。
循环训练得分如下:
for j in range(4):
if i<j:
x_slice = X[:,[i,j]]
predict_slice = predict_data[:,[i,j]]
features.append([i,j])
func_linear(x_slice,y,scores)
for k in range(4):
if i<j and j<k:
x_slice = X[:,[i,j,k]]
predict_slice =predict_data[:,[i,j,k]]
features.append([i,j,k])
func_linear(x_slice,y,scores)
2.5 结合上一个数据分析和可视化实验,根据对鸢尾花数据的特征两两对比可视化图,分析特征可视化对特征选择及相关分类计算结果的影响
在俩个特征分析是最高为0.925,说明花瓣长度,花瓣宽度属性特征选择比重较大。
在三个特征分析是最高为0.93说明花萼长度,花瓣长度,花瓣宽度属性特征选择比重较大。
,其次为0.928,说明花萼宽度,花瓣长度,花瓣宽度这三个属性特征对计算结果的影响较大。
线性回归算法之鸢尾花特征分类【机器学习】相关推荐
- 支持向量机算法之鸢尾花特征分类【机器学习】
文章目录 一.前言 1.1 本文原理 1.2 本文目的 二.实验过程 2.1 支持向量机算法SVM 2.2List item使用scikit-learn机器学习包的支持向量机算法,使用全部特征对鸢尾花 ...
- 朴素贝叶斯算法之鸢尾花特征分类【机器学习】【伯努利分布,多项式分布,高斯分布】
文章目录 一.前言 1.1 本文原理 1.2 本文目的 二.实验过程 2.1使用BernoulliNB(伯努利分布)给鸢尾花分类,写出代码,对运行结果截图并对分类结果进行分析: 2.2 使用Multi ...
- 决策树算法之鸢尾花特征分类可视化详解【机器学习】
文章目录 一.前言 1.1 本文原理 1.2 本文目的 二.实验过程 2.1 使用scikit-learn机器学习包的决策树算法,使用4个特征对鸢尾花进行分类: 2.2使用ID3算法对天气与踢球数据集 ...
- KNN算法实现鸢尾花数据集分类
KNN算法实现鸢尾花数据集分类 作者介绍 数据集介绍 KNN算法介绍 用KNN实现鸢尾花分类 作者介绍 乔冠华,女,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课题组. 研究方向:机 ...
- java基础巩固-宇宙第一AiYWM:为了维持生计,编程语言番外篇之机器学习(项目预测模块总结:线性回归算法、逻辑回归分类算法)~整起
机器学习 一.机器学习常见算法(未完待续...) 1.算法一:线性回归算法:找一条完美的直线,完美拟合所有的点,使得直线与点的误差最小 2.算法二:逻辑回归分类算法 3.算法三:贝叶斯分类算法 4.算 ...
- KNN算法实现鸢尾花的分类
题目 原生python实现knn分类算法,用鸢尾花数据集. 题目分析 KNN算法: 准备数据:来源百度下载鸢尾花数据集,共150组数据,将数据分为训练数据和测试数据,训练数据为120组,测试数据为30 ...
- 线性回归算法模型与线性分类算法模型联系与区别初探
1. 线性算法模型 0x1:线性回归和线性分类中的"线性"指的是什么 线性(linear),指量与量之间按比例.成直线的关系,在数学上可以理解为一阶导数为常数的函数: 非线性(no ...
- python鸢尾花案例_BP算法实例—鸢尾花的分类(Python)
首先了解下Iris鸢尾花数据集: Iris数据集(https://en.wikipedia.org/wiki/Iris_flower_data_set)是常用的分类实验数据集,由Fisher,1936 ...
- BP算法实例—鸢尾花的分类(Python)
首先了解下Iris鸢尾花数据集: Iris数据集(https://en.wikipedia.org/wiki/Iris_flower_data_set)是常用的分类实验数据集,由Fisher,1936 ...
最新文章
- Android Studio 全面教程
- 倾向得分匹配的stata命令_计量方法的适用条件汇总(二):倾向得分匹配
- Android 充电LED控制
- Python 3.9.0 首个迭代版本发布了
- spark RDD的理解
- 堆栈用数组和用链表实现
- 【水果蔬菜识别】基于matlab GUI灰度+二值化+腐蚀+直方图处理水果蔬菜识别【含Matlab源码 1052期】
- DSP28335学习记录(一)
- 发那科机器人寄存器Ar_发那科机器人数据寄存器和位置寄存器的运用介绍
- Linux阅码场原创精华文章汇总
- spark-streaming 编程(二) word count单词计数统计
- VUE中根据文件后缀名显示对应的图标
- 西门子s7-1200博图v16灌装机PLC程序+西门子KTP1200触摸屏程序 1200plc和3台v90伺服pn通讯
- vue基于promise可以用于浏览器和node.js的网络请求库【axios封装-收藏版】
- plt.imshow()无法显示两站图片?
- 心田花开:中学生心理状态分析
- HDOJ1495 非常可乐(bfs)
- 恶魔的奶爸英语 初级教程
- 中移动收购米雷康姆在巴基斯坦子公司剩余股份
- larvel 5.7命令行cmd常用命令
热门文章
- python 手机编程termux_Python新手入门教程_在手机上就能学习编程的软件
- C++的Static函数
- 全球及中国办公家具行业品牌竞争分析与销售前景研究报告2022版
- java 多线程 变慢_java多线程并发程序执行慢有什么原因?该怎么解决?
- android 使用vitamio播放mkv文件实现音轨切换
- Axure rp9实现进度条
- 网络营销新人应该掌握的6大通关方法
- 2022-2028年中国AI 3D装箱拣选系统市场现状研究分析与发展前景预测报告
- Wireshark 常用过滤使用方法
- Mac版 Android Studio 手动导入插件plugins方法