头歌:K最近邻算法(机器学习)
·
第1关:使用K近邻算法进行分类
# -*- coding: utf-8 -*-
from sklearn.datasets import make_blobs
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
samples=int(input())
random_state=int(input())
# 请在此添加代码 完成本关任务
#
# ********** Begin *********#
# 生成数据集
X, y = make_blobs(n_samples=samples, random_state=random_state)
# 创建并训练K近邻分类器
knn = KNeighborsClassifier()
knn.fit(X, y)
# 读取测试点特征
x1 = float(input())
x2 = float(input())
test_point = [[x1, x2]]
# 预测并输出结果
prediction = knn.predict(test_point)
print(prediction)
# ********** End **********#
第2关:使用K最近邻算法进行多分类
# -*- coding: utf-8 -*-
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
import numpy as np
from sklearn.neighbors import KNeighborsClassifier
samples=int(input())
classNum=int(input())
noise=float(input())
# 请在此添加代码 完成本关任务
#
# ********** Begin *********#
# 生成分类数据集
X, y = make_classification(
n_samples=samples,
n_classes=classNum,
flip_y=noise,
n_informative=20,
n_redundant=0,
random_state=1
)
# 分割训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=1)
# 创建并训练KNN分类器
knn = KNeighborsClassifier()
knn.fit(X_train, y_train)
# 预测并计算正确数量
y_pred = knn.predict(X_test)
correct = (y_pred == y_test).sum()
print(correct)
# ********** End **********#
第3关:使用K最近邻算法进行回归分析
# -*- coding: utf-8 -*-
import numpy as np
from sklearn.neighbors import KNeighborsRegressor
def getRegressor(X, y):
# 请在此添加代码 完成本关任务
#
# ********** Begin *********#
knn_regressor=KNeighborsRegressor(n_neighbors=1)
#使用训练数据训练回归器
knn_regressor.fit(X,y)
return knn_regressor
# ********** End **********#
更多推荐

所有评论(0)