Python |
import numpy as np;
from sklearn.neighbors import KNeighborsClassifier;
from sklearn import datasets;
Iris_ds = datasets.load_iris();
X = Iris_ds.data;
y = Iris_ds.target;
print(y);
m = KNeighborsClassifier(n_neighbors = 3); #设置邻居数量
m.fit(X, y);
pred = m.predict(X);
print(pred);
newX = np.matrix([[4.8, 3.3, 1.5, 0.3],[5.6, 2.9, 3.5, 1.3], [6.8, 3.2, 4.6, 1.4], [6.9, 3.1, 5.2, 2.3]]);
print(m.predict(newX)); |
C++ |
#include "orsci.h"
#include "orsci_dm.h"
using namespace orsci;
using namespace dm;
mdouble X = dmt::dataset::iris::iris_X(); //支持数据库直接装载4个输入属性。
vint y = dmt::dataset::iris::iris_y();
dmt::classifier::TkNN m; //定义kNN模型
m.train(y, X);
measure_dist mDist;
mDist.set_euclid();
colint pred = m.predict(X, mDist, 3, 5, 0.5);
cout << pred.T() << endl;
cout << "errorCount = " << (pred - y).count() << endl;
//方式一:定义测试集矩阵
mdouble newX = "[4.8, 3.3, 1.5, 0.3; 5.6, 2.9, 3.5, 1.3; 6.8, 3.2, 4.6, 1.4; 6.9, 3.1, 5.2, 2.3]";
cout << m.predict(newX, mDist, 3, 5, 0.5) << endl;
|
Python |
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score, precision_score, recall_score, f1_score
from sklearn.datasets import load_iris
# kNN分类器
ds = load_iris();
X = ds.data; #特征值
y = ds.target #目标值
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X_train, y_train)
y_pred = knn.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
precision = precision_score(y_test, y_pred, average='macro')
recall = recall_score(y_test, y_pred, average='macro')
f1 = f1_score(y_test, y_pred, average='macro')
print("kNN分类器评价:")
print("准确率:", accuracy)
print("精确率:", precision)
print("召回率:", recall)
print("F1量度:", f1) |