Python中的超平面是指一個n維空間中的一個(n-1)維平面,所有的點都在這個平面的同一側。用于機器學習中的分類算法就可以利用超平面將不同類別的點分開。
#創(chuàng)建一個二維超平面 import numpy as np points = np.array([[1, 2], [2, 1], [2, 3], [5, 8], [6, 7], [7, 5]]) #獲得前兩列數(shù)據(jù),即x和y x = points[:, 0] y = points[:, 1] #使用擬合函數(shù)求解超平面方程 fit = np.polyfit(x, y, 1) fit_fn = np.poly1d(fit) #繪制散點圖和擬合直線 import matplotlib.pyplot as plt plt.scatter(x, y) plt.plot(x, fit_fn(x), color='red') plt.show()
通過擬合函數(shù)可以求出超平面的方程,比如上述代碼中返回的fit就是超平面方程的系數(shù),fit_fn就是方程。這個例子創(chuàng)建的是一個二維超平面,變量points為二維點坐標數(shù)組。若需要創(chuàng)建更高維度的超平面,只需將點坐標的維度增加,算法不用改變。