Scikit Learn - RadiusNeighborsClassifier



此分類器名稱中的半徑代表指定半徑 r 內的最近鄰域,其中 r 由使用者指定的浮點值。因此,顧名思義,此分類器根據每個訓練點的固定半徑 r 內的鄰居數目實現基於學習。讓我們透過一個實現示例進一步瞭解它 −

實現示例

此示例中,我們將透過使用 scikit-learn RadiusNeighborsClassifier 對名為鳶尾花的資料集實施 KNN −

首先,匯入鳶尾花資料集,如下所示 −

from sklearn.datasets import load_iris
iris = load_iris()

現在,需要將資料分割成訓練資料和測試資料。我們將使用 Sklearn train_test_split 函式將資料分割為 70(訓練資料)和 20(測試資料)的比率 −

X = iris.data[:, :4]
y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20)

接下來,我們將使用 Sklearn 預處理模組執行資料縮放,如下所示 −

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

接下來,從 Sklearn 匯入 RadiusneighborsClassifier 類並提供半徑值,如下所示 −

from sklearn.neighbors import RadiusNeighborsClassifier
rnc = RadiusNeighborsClassifier(radius = 5)
rnc.fit(X_train, y_train)

示例

現在,建立並預測兩個觀察值的類別,如下所示 −

classes = {0:'setosa',1:'versicolor',2:'virginicia'}
x_new = [[1,1,1,1]]
y_predict = rnc.predict(x_new)
print(classes[y_predict[0]])

輸出

versicolor

完整的工作/可執行程式

from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data[:, :4]

y = iris.target
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.20)

from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X_train)
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)

from sklearn.neighbors import RadiusNeighborsClassifier
rnc = RadiusNeighborsClassifier(radius = 5)
rnc.fit(X_train, y_train)

classes = {0:'setosa',1:'versicolor',2:'virginicia'}
x_new = [[1,1,1,1]]
y_predict = rnc.predict(x_new)
print(classes[y_predict[0]])
廣告