当前位置: 首页 > news >正文

岳阳网站建设一站式服务seo顾问服务四川

岳阳网站建设一站式服务,seo顾问服务四川,wordpress简约下载站模板,wordpress 添加地图文章目录 数据准备阶段KNN预测的过程1.计算新样本与已知样本点的距离2.按照举例排序3.确定k值4.距离最近的k个点投票 scikit-learn中的KNN算法 数据准备阶段 import matplotlib.pyplot as plt import numpy as np# 样本特征 data_X [[0.5, 2],[1.8, 3],[3.9, 1],[4.7, 4],[6.…

文章目录

  • 数据准备阶段
  • KNN预测的过程
    • 1.计算新样本与已知样本点的距离
    • 2.按照举例排序
    • 3.确定k值
    • 4.距离最近的k个点投票
  • scikit-learn中的KNN算法

数据准备阶段

import matplotlib.pyplot as plt
import numpy as np
# 样本特征
data_X = [[0.5, 2],[1.8, 3],[3.9, 1],[4.7, 4],[6.2, 6],[7.5, 5],[8.3, 3.5],[9.1, 7],[9.8, 4.5]
]# 样本标记
data_y = [0, 0, 0, 1, 1, 1, 1, 1, 1]
X_train = np.array(data_X)
y_train = np.array(data_y)
X_train
array([[0.5, 2. ],[1.8, 3. ],[3.9, 1. ],[4.7, 4. ],[6.2, 6. ],[7.5, 5. ],[8.3, 3.5],[9.1, 7. ],[9.8, 4.5]])
y_train
array([0, 0, 0, 1, 1, 1, 1, 1, 1])

选出样本标记为0的样本特征

y_train == 0
array([ True,  True,  True, False, False, False, False, False, False])
X_train[y_train==0]
array([[0.5, 2. ],[1.8, 3. ],[3.9, 1. ]])
X_train[y_train==0, 0]
array([0.5, 1.8, 3.9])
X_train[y_train==0, 1]
array([2., 3., 1.])
X_train[y_train==1, 0].shape
(6,)
X_train[y_train==1, 1].shape
(6,)
plt.scatter(X_train[y_train==0, 0], X_train[y_train==0, 1], color='red', marker='x')
plt.scatter(X_train[y_train==1, 0], X_train[y_train==1, 1], color='black', marker='o')
plt.show()

在这里插入图片描述

增加新的样本点

data_new = np.array([4, 5])
plt.scatter(X_train[y_train==0, 0], X_train[y_train==0, 1], color='red', marker='x')
plt.scatter(X_train[y_train==1, 0], X_train[y_train==1, 1],color='black', marker='o')
plt.scatter(data_new[0], data_new[1], color='b', marker='^')
plt.show()

在这里插入图片描述

KNN预测的过程

1.计算新样本与已知样本点的距离

for data in X_train:print(np.sqrt(np.sum((data - data_new) ** 2)))
4.6097722286464435
2.973213749463701
4.001249804748512
1.2206555615733703
2.4166091947189146
3.5
4.5541190146942805
5.478138369920935
5.821511831131154
distances = [np.sqrt(np.sum((data - data_new) ** 2)) for data in X_train]
distances
[4.6097722286464435,2.973213749463701,4.001249804748512,1.2206555615733703,2.4166091947189146,3.5,4.5541190146942805,5.478138369920935,5.821511831131154]

2.按照举例排序

np.sort(distances)
array([1.22065556, 2.41660919, 2.97321375, 3.5       , 4.0012498 ,4.55411901, 4.60977223, 5.47813837, 5.82151183])
sort_index = np.argsort(distances)
sort_index
array([3, 4, 1, 5, 2, 6, 0, 7, 8], dtype=int64)

3.确定k值

k = 5

4.距离最近的k个点投票

first_k = [y_train[i] for i in sort_index[:k]]
first_k
[1, 1, 0, 1, 0]
from collections import Counter
Counter(first_k)
Counter({1: 3, 0: 2})
Counter(first_k).most_common()
[(1, 3), (0, 2)]
Counter(first_k).most_common(1)
[(1, 3)]
predict_y = Counter(first_k).most_common(1)[0][0]
predict_y
1

得到结果为1,KNN判断新加入的点data_y的标记应该为1,从图中也可以看到,新加入的点更靠近标记为1的点群。

scikit-learn中的KNN算法

 from sklearn.neighbors import KNeighborsClassifier
kNN_classifier = KNeighborsClassifier(n_neighbors=5)
kNN_classifier.fit(X_train, y_train)
data_new.reshape(1, -1)
array([[4, 5]])
predict_y = kNN_classifier.predict(data_new.reshape(1, -1))
predict_y
array([1])

与手写KNN得到的结果相同,皆判断为1。

http://www.yidumall.com/news/46627.html

相关文章:

  • 网站开发到上线淄博网站优化
  • 网站建设费的摊销病毒式营销
  • 站建设培训学校济南竞价托管
  • 常用的建站软件有哪些竞价托管外包服务
  • 项目计划书范文免费淘宝seo推广优化
  • 和小孩做的网站武汉seo招聘网
  • 网站后台改变图片尺寸优化seo搜索
  • 中国建设电工网站谷歌seo工具
  • 长沙市网站设计公司信息流广告推广
  • 做网站需要登录什么软件百度竞价ocpc
  • 软件公司logo图标大全百度seo关键词优化排名
  • 太原网站建设公司排名公司网站设计制作
  • 网页网站公司如何做备份自助建站系统个人网站
  • 网站服务器环境不支持mysql数据库软文新闻发布平台
  • 做视频解析网站要什么服务器交换链接名词解释
  • 网站源码下载教程短视频seo营销
  • 中国风手机网站模板网络宣传渠道
  • 网站开发是编程吗一个网站推广
  • 2018企业网站优化应该怎么做国外媒体报道
  • web前端开发框架百度搜索网站优化
  • wordpress 文章保存在哪里专业的seo排名优化
  • 嘉祥网站建设哪家便宜2021搜索引擎排名
  • 天猫店铺转让aso优化运营
  • 京东网站建设框架图seo监控
  • 网站开发的调研内容今日广州新闻最新消息
  • 做360网站官网还是百度知道店铺100个关键词
  • 在什么网站做外贸申请百度账号注册
  • 杭州建设企业网站在线网站建设
  • 没网站怎么做cpa事件营销
  • 淘宝客网站哪里可以做餐饮品牌全案策划