knn算法

1. 定义:

如果一个样本在特征空间中的 k个最相似(即特征空间中最邻近)的样本中大多数都是

属于一个类别,那么我就认为我也是属于这个类别的.

a. 语音识别

2. 欧式距离公式:

a (a1, a2, a3)

b (b1, b2, b3)

__________________________________________

d = √ (a1 - b1)^2 + (a2 - b2)^ 2 + (a3 - b3)^2

3. api接口:

from sklearn.neighbors import KNeighborsClassifier

KNeighborsClassifier: 初始化参数:

n_neighbors=5 : 选取K个最相近的点, 选取奇数

实例方法:

fit(x_train, y_train) : 拟合数据 制作模型

score(x_test, y_test) : 计算模型准确率

predict([]): 通过特征值预测结果

demo:

[[3.5 , 1.5 , 2.5, 3.6]] 预测结果

# 导入鸢尾花数据集
from sklearn.datasets import load_iris

# 导入划分数据集的函数
from sklearn.model_selection import train_test_split

# 导入估计器的类
from sklearn.neighbors import KNeighborsClassifier


def knncls():
    """
    KNN 算法预测鸢尾花数据集
    :return: 
    """

    # 1.获取鸢尾花数据集
    lr = load_iris()

    # 2.确认好特征值与目标值
    x = lr.data
    y = lr.target

    # 3. 划分数据集
    x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3)

    # 4. 实例化出估计器
    knn = KNeighborsClassifier(n_neighbors=3)

    # 5. 拟合数据
    knn.fit(x_train, y_train)

    # 6. 计算模型准确率
    score = knn.score(x_test, y_test)

    if score > 0.9:
        print("模型合格 准确率:", score)

        predict_x = [[3.5 , 1.5 , 2.5, 3.6]] #杂色的,斑驳的,色彩变换的;

        y_predict = knn.predict(predict_x)

        print("预测结果:", lr.target_names[int(y_predict)])
    else:
        print("模型不合格,准确率: ", score)


    return None


knncls()

# 假设我的每年里程数 [[40000, 10.525, 0.753]]
# 任务:书写代码
import pandas as pd
#导入分割数据集的函数
from sklearn.model_selection import train_test_split
# 导入估计器
from sklearn.neighbors import KNeighborsClassifier
# 导入归一化对应的类
from sklearn.preprocessing import MinMaxScaler


def knncls():
    """
        使用 K-近邻算法对约会数据进行分类
    :return: 
    """

    # 1.获取数据集
    dating = pd.read_csv("./dating.txt")

    # 2.确定特征值与目标值
    x = dating[["milage", "Liters", "Consumtime"]]
    y = dating["target"]

    # 2.5 添加特征工程
    mm = MinMaxScaler(feature_range=(0,1))

    x = mm.fit_transform(x)

    # 3.分割数据集
    x_train,x_test,y_train, y_test = train_test_split(x, y, test_size=0.3)

    # 4.实例化估计器对象
    knn = KNeighborsClassifier(n_neighbors=7)

    # 5.拟合数据
    knn.fit(x_train, y_train)

    # 6.计算准确度
    score = knn.score(x_test, y_test)
    print("score : ", score)

    # 7.对数据结果进行预测
    y_predict = knn.predict([[20000, 10.525, 0.753]])

    # 8. 打印预测结果
    print("y_predict : ",y_predict)

    return None

knncls()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小徐的记事本

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值