pythonk分类模型KNN原理

1.机器学习算法体系
机器学习的方法基于数据产生的模型的算法,成为学习算法,包括有监督学习,半监督学习,无监督学习,强化学习

有监督学习:

数据集样本是否有学习对象标签y,有的话就是有监督学习,反之

尝试找一个模型学习特征值x与目标值y之间的关系

可分为分类问题和回归问题

分类任务中标签y都是离散值(类别型变量)

回归任务中标签y都是连续值

无监督学习:

不带任何标签数据特征进行建模,数据自己学习自己,

聚类任务和降维任务

半监督学习:

标签y有一部分是空值

强化学习:

将学习看成是试探评价的过程,以试错的方式进行学习,并与环境进行交互,已获得奖惩指导行为,以及作为评价

奖惩机制就是预测正确加分,预测错误减分boosting

2.k临近算法
k-NN(k-Neareat Neighbor)

学会k-NN算法三步(远亲不如紧邻):

1.了解k-NN算法思想(最靠近的几个点特征)

将测试点同样本数据(训练集)中所有点距离都计算出,取最临近的几个点提取类别(少数服从多数投票选取)

2.掌握背后的数学原理

3.python代码实现

训练集搭建模型和测试集验证模型

算法模型:算距离(欧式距离),找邻居,做分类

找出离当前测试点最近的几个样本,少数服从多数进行预测

3.函数解析
sklearn.datasets中的make_blobs函数在机器学习生成数据集以自建模型中应用广泛,此文就其格式及参数设置说明如下:

函数格式及默认参数设置

sklearn.datasets.make_blobs(n_samples=100, n_features=2, centers=None, cluster_std=1.0, center_box=(-10.0, 10.0), shuffle=True, random_state=None)

函数功能

生成各向同性的高斯斑点以进行聚类。

参数

n_samples:int或数组类,可选参数(默认值= 100)

如果为int,则为在簇之间平均分配的点总数。 如果是数组,则序列中的每个元素表示每个簇的样本数。

n_features:int,可选(默认值= 2)

每个样本的特征数量。

centers:int或形状数组[n_centers,n_features],可选

(默认= None)要生成的中心数或固定的中心位置。 如果n_samples是一个int且center为None,则将生成3个中心。 如果n_samples是数组类,则中心必须为None或长度等于n_samples长度的数组。

cluster_std: 浮点数或浮点数序列,可选(默认值为1.0)

聚类的标准偏差。

center_box: 一对浮点数(最小,最大),可选(默认=(-10.0,10.0))

随机生成中心时每个聚类中心的边界框。

shuffle:布尔值,可选(默认= True)

样本洗牌

random_state:int,RandomState实例或无(默认)

确定用于创建数据集的随机数生成。 为多个函数调用传递可重复输出的int值。

返回值

形状为[n_samples,n_features]的X数组

形状为[n_samples]的y数组

import numpy as np
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
from sklearn.datasets import make_blobs

#生成数据
r =4 #随机数种子
k=3 #k临近3个
x,y = make_blobs(
    n_samples=50,#随机点数
    cluster_std
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值