数据的回归和分类分析

目录

一、线性回归

1、父亲-孩子x-y线性回归方程

数据的回归和分类分析
2)、之后在数据分析中选择回归,并勾选一下选项
数据的回归和分类分析
3)、结果
数据的回归和分类分析

方程为y=0.2978x+49.15。其中决定系数为1,说明有极高的相关性。
如果父亲身高75,孩子身高为71.485英寸
同理,母亲的回归方程:

数据的回归和分类分析
数据的回归和分类分析
方程为y=0.3334x+48.472。其中决定系数为1,说明有极高的相关性。
由此可知,”父亲高则儿子高,父亲矮则儿子矮”(即父亲与儿子身高相关,且为正相关)、”母高高一窝,父高高一个”(即母亲的身高比父亲的身高对子女的影响更大)的习俗传说是有相关依据的。

; 二、线性回归方法的有效性判别

数据的回归和分类分析
表1
从图中可以看出线性并不是很能够表现原始数据的一个变化趋势,所有该线性回归方程不成立。
数据的回归和分类分析
表2
从图中可以看出线性并不是很能够表现原始数据的一个变化趋势,所有该线性回归方程不成立。通过采用其他的回归曲线来测试,发现对于2次的多项式的回归方程来说,会比线性回归方程更好表现数据的变化趋势。
数据的回归和分类分析
表3
该线性回归方程基本能够体现该数据集的一个变化情况。
数据的回归和分类分析
表4
该线性回归方程不成立。

三、python和Anaconda的安装

参考这个视频

数据的回归和分类分析
如图创建虚拟环境之后等待即可。

; 四、鸢尾花数据集使用SVM线性分类

导入需要使用的包


import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
from sklearn.preprocessing import StandardScaler
from sklearn.svm import LinearSVC

得到数据


iris=datasets.load_iris()

X=iris.data

Y=iris.target

处理数据


X=X[:,:2]

Y1=Y[Y<2]
y1=len(Y1)

Y2=Y[Y<1]
y2=len(Y2)
X=X[:y1,:2]

原始数据绘图


plt.scatter(X[0:y2,0],X[0:y2,1],color='red')
plt.scatter(X[y2+1:y1,0],X[y2+1:y1,1],color='blue')
plt.show()

数据的回归和分类分析
数据归一化

standardScaler=StandardScaler()
standardScaler.fit(X)

X_standard=standardScaler.transform(X)

svc=LinearSVC(C=1e9)
svc.fit(X_standard,Y1)

画出决策边界

def plot_decision_boundary(model, axis):
    x0, x1 = np.meshgrid(
        np.linspace(axis[0], axis[1], int((axis[1]-axis[0])*100)).reshape(-1, 1),
        np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100)).reshape(-1, 1),
    )

    X_new = np.c_[x0.ravel(), x1.ravel()]

    y_predict = model.predict(X_new)
    zz = y_predict.reshape(x0.shape)
    from matplotlib.colors import ListedColormap
    custom_cmap = ListedColormap(['#EF9A9A','#FFF59D','#90CAF9'])
    plt.contourf(x0, x1, zz, linewidth=5, cmap=custom_cmap)

plot_decision_boundary(svc, axis=[-3, 3, -3, 3])
plt.scatter(X_standard[0:y2,0], X_standard[0:y2,1],color='red')
plt.scatter(X_standard[y2:y1,0], X_standard[y2:y1,1],color='blue')
plt.show()

数据的回归和分类分析
例化一个svc2
svc2=LinearSVC(C=0.01)
svc2.fit(X_standard,Y1)
print(svc2.coef_)
print(svc2.intercept_)
plot_decision_boundary(svc2, axis=[-3, 3, -3, 3])
plt.scatter(X_standard[0:y2,0], X_standard[0:y2,1],color='red')
plt.scatter(X_standard[y2:y1,0], X_standard[y2:y1,1],color='blue')
plt.show()

数据的回归和分类分析
可知,C越大容错越小。
分类后的内容基础上添加上下边界
def plot_svc_decision_boundary(model, axis):
    x0, x1 = np.meshgrid(
        np.linspace(axis[0], axis[1], int((axis[1]-axis[0])*100)).reshape(-1, 1),
        np.linspace(axis[2], axis[3], int((axis[3]-axis[2])*100)).reshape(-1, 1),
    )

    X_new = np.c_[x0.ravel(), x1.ravel()]

    y_predict = model.predict(X_new)
    zz = y_predict.reshape(x0.shape)

    from matplotlib.colors import ListedColormap
    custom_cmap = ListedColormap(['#EF9A9A','#FFF59D','#90CAF9'])

    plt.contourf(x0, x1, zz, linewidth=5, cmap=custom_cmap)

    w = model.coef_[0]
    b = model.intercept_[0]

    index_x = np.linspace(axis[0], axis[1], 100)

    y_up = (1-w[0]*index_x - b) / w[1]
    y_down = (-1-w[0]*index_x - b) / w[1]

    x_index_up = index_x[(y_upaxis[3])  & (y_up>=axis[2])]
    x_index_down = index_x[(y_downaxis[3]) & (y_down>=axis[2])]

    y_up = y_up[(y_upaxis[3])  & (y_up>=axis[2])]
    y_down = y_down[(y_downaxis[3]) & (y_down>=axis[2])]

    plt.plot(x_index_up, y_up, color="black")
    plt.plot(x_index_down, y_down, color="black")

plot_svc_decision_boundary(svc, axis=[-3, 3, -3, 3])
plt.scatter(X_standard[0:y2,0], X_standard[0:y2,1],color='red')
plt.scatter(X_standard[y2:y1,0], X_standard[y2:y1,1],color='blue')
plt.show()

数据的回归和分类分析
修改C值
plot_svc_decision_boundary(svc2, axis=[-3, 3, -3, 3])
plt.scatter(X_standard[0:y2,0], X_standard[0:y2,1],color='red')
plt.scatter(X_standard[y2:y1,0], X_standard[y2:y1,1],color='blue')
plt.show()

数据的回归和分类分析

五、总结

有些回归函数不能用P值R值来说明好坏,具体情况要具体分析,常数C越大,容错空间越小,上下边界较近;常数C越小,容错空间越大,上下边界越远。

Original: https://blog.csdn.net/weixin_48547489/article/details/115027246
Author: wensea
Title: 数据的回归和分类分析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/635430/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • pytorch 写模型 tensor 常用的操作

    某个维度上做扩张 自身重复 tensor 定义数据类型 避免模型训练出错 增加一个1维度.unsqueeze(0) 删除一个1维度squeeze(0) tensor 拼接 cat …

    人工智能 2023年5月27日
    073
  • KNN算法实现鸢尾花数据集分类

    KNN算法实现鸢尾花数据集分类 作者介绍 数据集介绍 KNN算法介绍 用KNN实现鸢尾花分类 作者介绍 乔冠华,女,西安工程大学电子信息学院,2020级硕士研究生,张宏伟人工智能课…

    人工智能 2023年6月24日
    073
  • 中的卷积操作是如何实现的

    卷积操作的详细解释与实现 在深度学习中,卷积操作是一种非常重要的运算,特别是在图像处理和计算机视觉领域。这一操作可以有效地提取图像的特征并用于分类、目标检测、图像生成等任务。本文将…

    人工智能 2023年12月31日
    041
  • Matlab:正则表达式

    本主题说明什么是正则表达式以及如何使用它们来搜索文本。正则表达式灵活而强大,尽管它们使用复杂的语法。正则表达式的一种替代选择是pattern(自 R2020b 开始提供),它更易于…

    人工智能 2023年6月27日
    069
  • Pytorch 使用多块GPU训练模型

    1. 先确定几个概念:①分布式、并行:分布式是指多台服务器的多块GPU(多机多卡),而并行一般指的是一台服务器的多个GPU(单机多卡)。②模型并行、数据并行:当模型很大,单张卡放不…

    人工智能 2023年6月25日
    0102
  • 图解 Pytorch 中 nn.Conv2d 的 groups 参数

    文章目录 普通卷积复习 Groups是如何改变卷积方式的 实验验证 参考资料 普通卷积复习 首先我们先来简单复习一下普通的卷积行为。 从上图可以看到,输入特征图为3,经过4个fil…

    人工智能 2023年7月14日
    044
  • python使用yaml文件

    使用yaml目的:复杂代码可以实现仅修改yaml文件,重新运行打开yaml文件的python命令后参数就可以更新。不需要在python文件中找需要修改的参数位置。 一、新建yaml…

    人工智能 2023年7月6日
    051
  • 回归系数只能取正值_NCL回归-回归系数为正值的大值区域基本不通过95%显著性检验…

    登录后查看更多精彩内容~ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 首先谢谢大家的帮助,新人第一次发帖如有不当请大家指出。 我在做SFW系数和32年间的5月份月平均降…

    人工智能 2023年6月18日
    065
  • 对比学习(contrastive learning)

    什么是自监督学习? 举个通俗的例子:即使不记得物体究竟是什么样子,我们也可以在野外识别物体。 我们通过记住高阶特征并忽略微观层面的细节来做到这一点。那么,现在的问题是,我们能否构建…

    人工智能 2023年5月26日
    063
  • opencv (三十四)边缘提取(拉普拉斯算子、Canny算法)

    小白学视觉,笔记,扩展 Sobel 和Scharr,当对X方向求边缘,实际得到的是垂直方向的边缘信息;当对Y方向求边缘,实际得到的是水平方向的边缘信息; 斜方向的边缘,X,Y方向都…

    人工智能 2023年5月26日
    098
  • BERT和GPT模型简介

    引言 从现在的大趋势来看,使用某种模型预训练一个语言模型看起来是一种比较靠谱的方法。从之前 AI2 的 ELMo,到 OpenAI 的 fine-tune transformer,…

    人工智能 2023年5月31日
    068
  • 【无标题】

    SUM1 读论文 MGraphDTA: deep multiscale graph neural network for explainable drug–target bindi…

    人工智能 2023年7月13日
    048
  • mmdetection里进行特征图可视化

    文章目录 * – @[TOC](文章目录)* 前言* 1.特征可视化* 2.为了在mmdetection使用可视化* 效果图 前言 在mmdetection里实现简单的…

    人工智能 2023年6月19日
    062
  • 【youcans的OpenCV例程300篇】总目录

    版权声明:转载本系列作品时必须标注以下版权内容:【youcans@qq.com, youcans的OpenCV 例程300篇, https://blog.csdn.net/youc…

    人工智能 2023年6月18日
    069
  • FLASH安全介绍—攻击示例以及解决方案

    不允许添加 ,这样会导致客户端可能自己加载自定义策略文件。 2 、客户端嵌入flash 文件的安全配置: 1 )禁止设置 flash 的 allowscriptaccess 为 a…

    人工智能 2023年6月27日
    060
  • Ubuntu22.04 下安装驱动、CUDA、cudnn以及TensorRT

    CUDA驱动和CUDA Toolkit对应版本 可查阅官方文档。驱动是向下兼容的,其决定了可安装的CUDA Toolkit的最高版本。 安装与CUDA Toolkit对应的pyto…

    人工智能 2023年6月23日
    056
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球