c语言如何判断数据是否符合正态分布_如何判断机器学习数据集是否是线性的?...
首先,線性和非線性函數(shù)之間的區(qū)別:
(左)線性函數(shù)(右)非線性函數(shù)
線性函數(shù):可以簡單定義為始終遵循以下原則的函數(shù):
輸入/輸出=常數(shù)。
線性方程總是1次多項式(例如x+2y+3=0)。在二維情況下,它們總是形成直線;在其他維度中,它們也可以形成平面、點或超平面。它們的“形狀”總是筆直的,沒有任何曲線。這就是為什么我們叫它們線性方程。
非線性函數(shù):即函數(shù)圖像不是一條直線的函數(shù)。高階多項式是非線性的。三角函數(shù)(如sin或cos)是非線性的。平方根是非線性的。
我們如何找到機器學習數(shù)據(jù)集是否是線性呢?如果我們只有一個維度,那么圖形很簡單,但是如何處理多維機器學習數(shù)據(jù)集呢?
生成一個線性數(shù)據(jù)集
數(shù)據(jù)集的圖形
正如我們在上面的圖中所看到的,從圖中得到一個函數(shù)是否是線性的并不總是那么簡單。
問:我們如何解決呢?
因此,我們的想法是將簡單的線性回歸應用于數(shù)據(jù)集,然后檢查最小平方誤差。如果最小平方誤差顯示高準確度,則意味著機器學習數(shù)據(jù)集本質上是線性的,否則數(shù)據(jù)集是非線性的。
好吧,讓我們來看看Python代碼:
從線性機器學習數(shù)據(jù)集開始:
# 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%
非線性機器學習數(shù)據(jù)集:
# 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%
不用說,這是非常不理想的準確度得分。雖然整個代碼幾乎相同,但我們可以看到非線性的增加對準確度得分有非常深遠的影響。
在開始使用機器學習數(shù)據(jù)集之前,在小型驗證集上使用簡單Python代碼來檢查機器學習數(shù)據(jù)集是否為線性,可以節(jié)省大量的時間。
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的c语言如何判断数据是否符合正态分布_如何判断机器学习数据集是否是线性的?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python 判断线程状态_Python
- 下一篇: python实时定位_selenium