第一周:机器学习的敲门砖kNN算法

学习目标:

  • 了解监督学习和非监督学习的概念
  • 了解kNN算法的思想及其原理
  • kNN算法实战

监督学习

《统计学习方法》一书中概括,统计机器学习包括监督学习、非监督学习、半监督学习以及强化学习。

  • 监督学习

通俗来说,就是给定的数据集中既包含特征,又包含标签的一类统计机器学习方式。一般来说,由于标签已知,且在学习之前从输入到输出的映射关系已知,此类方法通常具有较高的准确率。监督学习的主要应用有两大类,分类和回归。分类是对离散数据的预测,回归则是对连续数据的预测。常见的算法有kNN、决策树、逻辑回归等。

  • 非监督学习

参照监督学习的定义,我们不难得出,就是给定的数据集中只有特征,没有标签,需要自行学习从输入到输出的映射关系,此类方式便是非监督学习。常见的应用主要有关联规则和聚类,相应的算法有Apriori算法和k-means算法。

  • 半监督学习

顾名思义,半监督学习就是部分标签已知。通常情况下,未知标签的样本量要远远大于已知标签的样本量。比如,在风控业务中,明确的恶意用户往往占总体的比例极低,如何根据此类用户抽象出的风险特征去挖掘出潜藏在正常用户中的灰色用户,有效地降低潜在风险,这便是半监督学习方法的一个应用场景。

  • 强化学习

强化学习不依赖大量的已知标签,具有“自学”的意识。根据自己以往的经验,加上一个行为奖励机制——“好”的行为给予奖励,今后继续发扬,“坏”的行为得到惩罚,今后尽可能避免。从这个过程可以看出,强化学习是一个时序过程,反馈有一定的滞后性。常见的算法有马尔可夫链等。

kNN算法的思想及其原理

  • 算法简介

kNN(k-nearest neighbor)是一种基本分类与回归方法。kNN法假设给定的一个训练数据集,其中实例的类别已定。分类时,对于新的实例,根据其k个最近邻的训练实例的类别,通过多数表决等方式进行预测。因此,kNN不具有显式的学习过程。kNN实际上是利用训练集对特征向量空间进行划分,并作为其分类的“模型”。k值的选择、距离的度量以及分类决策规则是kNN的三个基本要素。

  • 算法原理

西瓜书P225

kNN算法实战`

  • 读取相应的库

from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
import numpy as np
 - ### 读取数据 X, y
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=20)
  • 构建KNN模型, K值为3、 并做训练

clf = KNeighborsClassifier(n_neighbors=3)
clf.fit(X_train, y_train)
  • 计算准确率

from sklearn.metrics import accuracy_score
correct = np.count_nonzero((clf.predict(X_test)==y_test)==True)
#accuracy_score(y_test, clf.predict(X_test))
print ("Accuracy is: %.3f" %(correct/len(X_test)))`
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值