首先,线性和非线性函数之间的区别:

(左)线性函数(右)非线性函数

线性函数:可以简单定义为始终遵循以下原则的函数:

输入/输出=常数。

线性方程总是1次多项式(例如x+2y+3=0)。在二维情况下,它们总是形成直线;在其他维度中,它们也可以形成平面、点或超平面。它们的“形状”总是笔直的,没有任何曲线。这就是为什么我们叫它们线性方程。

非线性函数:即函数图像不是一条直线的函数。高阶多项式是非线性的。三角函数(如sin或cos)是非线性的。平方根是非线性的。

我们如何找到机器学习数据集是否是线性呢?如果我们只有一个维度,那么图形很简单,但是如何处理多维机器学习数据集呢?

生成一个线性数据集

数据集的图形

正如我们在上面的图中所看到的,从图中得到一个函数是否是线性的并不总是那么简单。

问:我们如何解决呢?

因此,我们的想法是将简单的线性回归应用于数据集,然后检查最小平方误差。如果最小平方误差显示高准确度,则意味着机器学习数据集本质上是线性的,否则数据集是非线性的。

好吧,让我们来看看Python代码:

从线性机器学习数据集开始:

# General importsimport numpy as npimport pandas as pdimport matplotlib.pyplot as plt# Generating dataX = np.random.randn(100,1)c = np.random.uniform(-10,10,(100,))# adding another linear columnX = np.hstack((X, 4*X))Y = (4*X[:,1] + c)plt.scatter(X[:, 0], Y)plt.show()plt.scatter(X[:, 1], Y)plt.show()# Applying linear regfrom sklearn.linear_model import LinearRegressionregressor = LinearRegression().fit(X, Y)# Checking the accuracyfrom sklearn.metrics import r2_scoreprint(r2_score(regressor.predict(X), Y))

输出:

Graph of the first column with y

Graph of the second column with y

R2准确度得分约为84%

非线性机器学习数据集:

# General importsimport numpy as npimport pandas as pdimport matplotlib.pyplot as plt# Generating dataX = np.random.randn(100,1)c = np.random.uniform(-10,10,(100,))# adding another non-linear columnX = np.hstack((X, X*X))Y = (4*X[:,1] + c)plt.scatter(X[:, 0], Y)plt.show()plt.scatter(X[:, 1], Y)plt.show()# Applying linear regfrom sklearn.linear_model import LinearRegressionregressor = LinearRegression().fit(X, Y)# Checking the accuracyfrom sklearn.metrics import r2_scoreprint(r2_score(regressor.predict(X), Y))

输出:

Graph of the first column with y

Graph of the second column with y

R2准确度得分约为-122%

不用说,这是非常不理想的准确度得分。虽然整个代码几乎相同,但我们可以看到非线性的增加对准确度得分有非常深远的影响。

在开始使用机器学习数据集之前,在小型验证集上使用简单Python代码来检查机器学习数据集是否为线性,可以节省大量的时间。

c语言如何判断数据是否符合正态分布_如何判断机器学习数据集是否是线性的?...相关推荐

  1. c语言如何判断数据是否符合正态分布_统计学里的数据正态性检验

    在前面的文章中讲过,很多模型的假设条件都是数据是服从正态分布的.这篇文章主要讲讲如何判断数据是否符合正态分布.主要分为两种方法:描述统计方法和统计检验方法. 01.描述统计方法 描述统计就是用描述的数 ...

  2. R语言使用epiDisplay包的shapiro.qqnorm函数执行Shapiro-Wilk检验并可视化QQ图、整合假设检验和可视化结果判断数据是否符合正态分布(图中包含假设检验的p值)

    R语言使用epiDisplay包的shapiro.qqnorm函数执行Shapiro-Wilk检验并可视化QQ图.整合假设检验和可视化结果判断数据是否符合正态分布(图中包含假设检验的p值) 目录

  3. R语言使用epiDisplay包shapiro.qqnorm函数执行Shapiro-Wilk检验并可视化QQ图、整合假设检验和可视化结果判断数据是否符合正态分布、pch参数在可视化图中显示数据点标签

    R语言使用epiDisplay包的shapiro.qqnorm函数执行Shapiro-Wilk检验并可视化QQ图.整合假设检验和可视化结果判断数据是否符合正态分布.配置pch参数在可视化图中显示数据点 ...

  4. ks检验正态分布结果_如何判断数据是否符合正态分布?

    原标题:如何判断数据是否符合正态分布? 在前面的文章中讲过,很多模型的假设条件都是数据是服从正态分布的.这篇文章主要讲讲如何判断数据是否符合正态分布.主要分为两种方法:描述统计方法和统计检验方法. 描 ...

  5. 如何判断数据是否符合正态分布

    用到了就记一下= =太多了时间长了慢慢忘了. 目录 1.Q-Q图 2.直方图 3.shapiro检验 1.Q-Q图 我们先看看标准的正态分布图: stats.probplot(df1['3#3temp ...

  6. 如何判断一组数据是否符合正态分布呢?

    在很多模型及假设检验中都需要满足一个假设条件:数据需服从正态分布.这篇文章主要讲讲如何判断数据是否符合正态分布.主要分为两种方法:描述统计方法和统计检验方法. 判断一组数据是否为正态分布的方法 描述统 ...

  7. python编写一个简单的程序、验证数据是否符合正态分布_Python检验数据是否正态分布...

    判断数据是否符合正态分布,比如使用3-sigma判断数据异常前,首先需要确定的是数据是否符合正态分布.今天一起梳理下检测正态分布的方法. Shapiro-Wilk test Shapiro-Wilk ...

  8. 正态分布检验:检验序列数据是否符合正态分布

    正态分布检验 雅克-贝拉检验(Jarque-Bera-test)(JB检验) 介绍 JB检验主要适用于样本数量大于30,而且样本数越多,JB检验效果越准确. JB检验主要用于判断数据是否符合总体正态分 ...

  9. matlab 数据是否符合正态分布的判断方法

    一.问题描述 给定序列X=(x1,x2,x3,...,xn),判断是否该数据序列X符合正态分布. 二.方法 常见已知分布的检验方法:kstest.jbtest.lillietest.chi2gof等, ...

最新文章

  1. java socket 工具_java+socket 简易聊天工具
  2. MySQL查询的进阶操作--排序查询
  3. 记一次在LAMP中遇到的问题
  4. windows下揪出java程序占用cpu很高的线程
  5. 深入理解Golang之context
  6. 经典机器学习系列(十)【变分推断】
  7. thinkphp学习笔记1—目录结构和命名规则
  8. 第五章 APP元素定位
  9. STM8L152的LCD模块原理及驱动
  10. IE Adobe Flash Player版本已是最新,界面仍然提示版本过旧原因
  11. PAT --- 1055.集体照 (25 分)
  12. 全球首个中文PaaS支撑平台----天翎myApps快速开发平台
  13. Glide导致的RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap
  14. 史上最纯净的Win7专业版系统
  15. 使用ssh关联github
  16. 性能优化:线程快照获取与分析
  17. 教你三种照片风格处理教程,秒变女神
  18. 领域驱动设计在美团点评业务系统的实践
  19. 给iOS开发者的Sketch入门教程
  20. rpg游戏发展史计算机网络,PC Gamer盘点史上最经典RPG游戏TOP15

热门文章

  1. 如何多快好省的建设企业级呼叫中心(一)
  2. Windows Server 2016 TP5下载及测试序列号
  3. 剑指offer47 不用加减乘除做加法
  4. 探究platform_driver中“多态”思想
  5. OpenMP 线程互斥锁
  6. 1.1节 Buck Converter--降压转换器 part1
  7. Android 中intent传递序列化信息(传递类)
  8. Mybatis运行原理及源码解析
  9. reactjs npm start运行报错:Error: ENOSPC: System limit for number of file watchers reached
  10. linux fedora升级操作