机器-机器学习的基本概念-KNN近邻算法

机器学习的基本概念

  • 数据分析的4个层次
    描述性分析(Descriptive当前的业务现状如何?)
    诊断性分析(Diagnostic某些问题为什么会发生?)
    预测性分析(Predictive我们的业务未来会咋样?预测分析会用到机器学习算法,帮助预
    测产品的销量如何?)
    规范性分析(Prescriptive我们要采取何种对策?机器学习算法可以帮助我们进行预测/规范性分析)

  • 机器学习能解决什么问题

    • 预测分析
    • 利用历史的数据, 结合统计学的知识, 发现规律
    • 找到规律之后, 利用跟这个规律来预测未来
  • 本阶段我们的学习重点是机器学习算法的使用

    • 利用已有机器学习算法解决业务问题, 而不是去创造新算法
    • 相关三方库都有算法相关实现
    • 着重学习三类算法:聚类分析,回归分析,分类分析

机器学习中的数据集

  • 样本 sample
    • 用来训练模型的数据中, 每一行就是一个样本
  • 特征 feature
    • 每一列就是一个特征(除了目标之外)
  • 目标 label target
    • 训练模型之后, 要预测的数据列
  • 特征工程(机器学习建模过程中最重要的部分) feature engineering
    • 就是数据处理 用到Pandas
    • 缺失值处理, 重复值处理 ,异常值处理
    • 特征提取 把文本信息转换成数值信息( one-hot编码)
    • 特征变换 归一化 minmaxScaler
    • 特征衍生( 机器学习问题中, 特征衍生是决定最终模型效果最关键步骤)
      • 原始的数据集上, 通过一些分组聚合的套路, 创建出一些新的特征列
      • 特征交叉 性别 和职业 相乘
    • 特征筛选 特征降维
      • 把重要的特征筛选出来
  • 特征处理完 就可以交给算法训练模型

数据集划分: 当数据量不是很大的前提下 7:3 ~ 8:2

  • 训练集 多一些
  • 测试集 少一些 工作场景下 一份测试数据只能用一次

机器学习算法分类

  • 监督 有标签, 有目标
    • 回归 目标值是数值,取值范围连续值
      • 预测房价
      • 预测下个月的销售额
    • 分类 鸢尾花 三种鸢尾花
      • 二分类 会不会违约 会不会点击 会不会流失
  • 无监督 没有标签, 没有目标
    • KMeans 聚类
    • 反欺诈

机器学习工作流程

  • 获取数据与基本数据处理
  • 特征工程
  • 模型训练
  • 模型评估

模型选择

  • 结合不同的算法详细介绍

过拟合/欠拟合概念

  • 模型过于简单 预测的时候会出错 欠拟合
  • 过拟合 模型过于复杂, 在自己训练的时候, 训练集表现好, 测试集表现差
    • 训练集 测试集都可以, 但是上线之后表现差

在sklearn中KNN算法的API

from sklearn.neighbors import KNeighborsClassifier
#创建knn算法的分类器实例
knn_classifier = KNeighborsClassifier(n_neighbors=指定邻居数量)
#拟合训练数据
knn_classifier.fit(训练集特征值,训练集目标值)
#利用knn算法进行预测
y_predict = knn_classifier.predict(测试数据)
#得出预测结果
y_predict[0]

代码实现

# 导包
import numpy as np
from sklearn import datasets

# 设置忽略警告
import warnings
warnings.filterwarnings

# 加载鸢尾花数据
iris = datasets.load_iris()
# 把特征数据和目标数据传给x和y
x=iris.data
y= iris.target

# 使用SKlearn的KNeighborsClassifier进行分类预测
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier

#训练集 测试集划分
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.2)

# 创建KNN分类器对象 近邻数为6
knn_clf = KNeighborsClassifier(n_neighbors=6)

#训练集训练模型
knn_clf.fit(x_train, y_train)

#使用训练好的模型进行预测
y_predict = knn_clf.predict(x_test)

# 计算准确率:
sum(y_predict == y_test)/len(y_test)


# 第二种计算准确率的方法
from sklearn.metrics import accuracy_scorec

# 方式一:
accuracy_score(y_test, y_predict)
# 方式二:
knn_classifier.score(x_test, y_test)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值