头歌平台-机器学习-5.K近邻

EduCoder平台:机器学习—K近邻

第1关:KNN原理

头歌平台-机器学习-5.K近邻

第2关:K近邻再识

头歌平台-机器学习-5.K近邻
头歌平台-机器学习-5.K近邻

第3关:K近邻小试

编程要求:
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,计算并输出数字的类型以及数字各属于两类的概率。其中 X 为样本点,y 为其类别(二分类问题),参数 k 的值设置为 3。

代码如下:

#引入KNeighborsClassifier模块
from sklearn.neighbors import KNeighborsClassifier

X = [[0], [1], [2], [3]]
n = int(input())
if n == 0:
   y = [1,1,0,0]
else:
   y = [0,0,1,1]

#使用KNeighborsClassifier函数以及fit函数填空
# ********** Begin ********** #
neigh=KNeighborsClassifier(n_neighbors=3)
neigh.fit(X,y)

# ********** End ********** #

#输出数字1.1的类型以及数字0.9各属于两类的概率
print(neigh.predict([[1.1]]))
print(neigh.predict_proba([[0.9]]))
    

第4关:K近邻实战

编程要求:
请仔细阅读右侧代码,结合相关知识,在 Begin-End 区域内进行代码补充,实现面向鸢尾花数据集的 k 近邻分类方法。
除补充完整代码之外,还应逐行理解右边示例代码,学习各函数及参数的用法,并举一反三,运用到其他的分类问题之中。

代码如下:

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import ListedColormap
from sklearn import neighbors, svm, tree, ensemble 
from sklearn import datasets
from sklearn.neighbors import KNeighborsClassifier
import warnings
warnings.filterwarnings("ignore")   #忽略警告
with warnings.catch_warnings():
    warnings.filterwarnings("ignore",category=DeprecationWarning)
    from numpy.core.umath_tests import inner1d


# set the number of neighbors
n_neighbors = 15

# import the iris dataset
#------------------begin--------------------

# only take the first two features

#-------------------end---------------------

h = .02  # step size in the mesh

# Create color maps
cmap_light = ListedColormap(['#FFAAAA', '#AAFFAA', '#AAAAFF'])
cmap_bold = ListedColormap(['#FF0000', '#00FF00', '#0000FF'])

#基于K近邻分类结果描绘分类边界
#------------------begin--------------------


#-------------------end---------------------

    # Put the result into a color plot
    Z = Z.reshape(xx.shape)
    plt.figure()
    plt.pcolormesh(xx, yy, Z, cmap=cmap_light)

    # Plot also the training points
    plt.scatter(X[:, 0], X[:, 1], c=y, cmap=cmap_bold,
                edgecolor='k', s=20)
    plt.xlim(xx.min(), xx.max())
    plt.ylim(yy.min(), yy.max())
    plt.title("3-Class classification (k = %i, weights = '%s')"
              % (n_neighbors, weights))

plt.savefig("step3/结果/result.png")

from sklearn.ensemble import RandomForestClassifier

X, y = datasets.make_classification(n_samples=1000, n_features=4,
                           n_informative=2, n_redundant=0,
                           random_state=0, shuffle=False)
clf_rf = RandomForestClassifier(n_estimators=100, max_depth=2,
                             random_state=0)
clf_rf.fit(X, y)

#输出clf_rf的各特征权重以及预测[0,0,0,0]的类别
#------------------begin--------------------


#-------------------end---------------------
上一篇:Go语言核心36讲(Go语言实战与应用十三)--学习笔记


下一篇:tensorflow 学习