日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何判断机器学习数据集是否是线性的?

發布時間:2023/12/31 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何判断机器学习数据集是否是线性的? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

https://www.toutiao.com/a6643756436406944259/

?

2019-01-07 22:08:07

首先,線性和非線性函數之間的區別:

(左)線性函數(右)非線性函數

線性函數:可以簡單定義為始終遵循以下原則的函數:

輸入/輸出=常數。

線性方程總是1次多項式(例如x+2y+3=0)。在二維情況下,它們總是形成直線;在其他維度中,它們也可以形成平面、點或超平面。它們的“形狀”總是筆直的,沒有任何曲線。這就是為什么我們叫它們線性方程。

非線性函數:即函數圖像不是一條直線的函數。高階多項式是非線性的。三角函數(如sin或cos)是非線性的。平方根是非線性的。

我們如何找到機器學習數據集是否是線性呢?如果我們只有一個維度,那么圖形很簡單,但是如何處理多維機器學習數據集呢?

生成一個線性數據集

數據集的圖形

正如我們在上面的圖中所看到的,從圖中得到一個函數是否是線性的并不總是那么簡單。

問:我們如何解決呢?

因此,我們的想法是將簡單的線性回歸應用于數據集,然后檢查最小平方誤差。如果最小平方誤差顯示高準確度,則意味著機器學習數據集本質上是線性的,否則數據集是非線性的。

好吧,讓我們來看看Python代碼:

從線性機器學習數據集開始:

# General imports import numpy as np import pandas as pd import matplotlib.pyplot as plt # Generating data X = np.random.randn(100,1) c = np.random.uniform(-10,10,(100,)) # adding another linear column X = 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 reg from sklearn.linear_model import LinearRegression regressor = LinearRegression().fit(X, Y) # Checking the accuracy from sklearn.metrics import r2_score print(r2_score(regressor.predict(X), Y))

?

輸出:

Graph of the first column with y

Graph of the second column with y

R2準確度得分約為84%

非線性機器學習數據集:

# General imports import numpy as np import pandas as pd import matplotlib.pyplot as plt # Generating data X = np.random.randn(100,1) c = np.random.uniform(-10,10,(100,)) # adding another non-linear column X = 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 reg from sklearn.linear_model import LinearRegression regressor = LinearRegression().fit(X, Y) # Checking the accuracy from sklearn.metrics import r2_score print(r2_score(regressor.predict(X), Y))

?

輸出:

Graph of the first column with y

Graph of the second column with y

R2準確度得分約為-122%

不用說,這是非常不理想的準確度得分。雖然整個代碼幾乎相同,但我們可以看到非線性的增加對準確度得分有非常深遠的影響。

在開始使用機器學習數據集之前,在小型驗證集上使用簡單Python代碼來檢查機器學習數據集是否為線性,可以節省大量的時間。

總結

以上是生活随笔為你收集整理的如何判断机器学习数据集是否是线性的?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。