Pythonの開始-2

のみ使用することを学びます

練習9

描きます

高さX、Yの重量

高さ 重量
152 51
156 53
160 54
164 55
168 57
172 60
176 62
180 65
184 69
188 72
import matplotlib.pyplot as plt
import numpy as np

data = np.array([
    [152, 51],
    [156, 53],
    [160, 54],
    [164, 55],
    [168, 57],
    [172, 60],
    [176, 62],
    [180, 65],
    [184, 69],
    [188, 72]
])

print(data.shape)

x, y = data[:, 0], data[:, 1]
plt.scatter(x, y)
plt.xlabel('height(cm)')
plt.ylabel('weight(kg)')
plt.show()
plt.figure()
(10, 2)

練習10

このコードは下のサイトからコピーされた
KNN分類器を使用した虹彩データセットに

from sklearn import datasets
from collections import Counter  # 为了做投票
from sklearn.model_selection import train_test_split
import numpy as np

# 导入iris数据
iris = datasets.load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=2003)

import math

def euc_dis(instance1, instance2):
    """
    计算两个样本instance1和instance2之间的欧式距离
    instance1: 第一个样本, array型
    instance2: 第二个样本, array型
    """
    dist = math.sqrt(sum(instance1-instance2)**2)
    return dist

def knn_classify(X, y, testInstance, k):
    """
    给定一个测试数据testInstance, 通过KNN算法来预测它的标签。
    X: 训练数据的特征
    y: 训练数据的标签
    testInstance: 测试数据,这里假定一个测试数据 array型
    k: 选择多少个neighbors?
    """
    distances = [euc_dis(x,testInstance) for x in X]
    kneighbors = np.argsort(distances)[:k]
    count = Counter(y[kneighbors])
    return count.most_common()[0][0]

predictions = [knn_classify(X_train, y_train, data, 3) for data in X_test]
correct = np.count_nonzero((predictions == y_test) == True)
print("Accuracy is: %.3f" % (correct / len(X_test)))
Accuracy is: 0.816

おすすめ

転載: www.cnblogs.com/xuehuiping/p/11695059.html