计算机科学与Python编程导论 14次作业(机器学习)

一、基本概念
1.通过线性回归(参见第18章)可以学习一条曲线,作为一组实例的模型,然后使用这个模型对未知实例进行预测。基本范式
如下:
(1) 观察一组实例,通常称为训练数据,它们可以表示某种统计现象的不完整信息;
(2) 对观测到的实例进行扩展,并使用推断技术对扩展过程建模;
(3) 使用这个模型对未知实例进行预测。

2.机器学习的方法数不胜数,但所有方法都试图建立一个模型来对现有实例进行归纳。所有方
法都具有以下3个部分:
(1)模型的表示;
(2)用于评估模型优度的目标函数;
(3)一种优化方法,可以通过学习找出一个模型,使目标函数值最小化或最大化。

3.机器学习算法可以分为监督式学习方法和无监督式学习方法。
监督式学习中,我们先从一组成对的特征向量和值开始。目标是从这些特征向量和值中推导出某种规则,以预测与未知的特征向量所对应的值。回归模型为每个特征向量关联一个实数。分类模型为每个特征向量关联一组数量有限的标签。
在非监督式学习中,我们被给定一个没有标注的特征向量集合。非监督式学习的目标就是发现特征向量集合中的隐含模式。。一般来说,非监督式机器学习方法可以分为两种,一种是聚类方法,另一种是隐变量模型学习方法。

4.特征向量
特征工程的目的就是将现有数据中可以作为信号的特征与那些仅是噪声的特征区分开来。特征工程的失败会导致糟糕的模型。当数据的维度(即特征的数量)相对于样本量来说比较大时,特征工程就具有较高的失败风险。
成功的特征工程是一个抽象过程,它可以将大量的可用信息缩减为可以用于归纳的信息。

5.距离度量
曼哈顿距离:在曼哈顿街区要从一个十字路口开车到另一个十字路口,驾驶距离显然不是两点间的直线距离。这个实际驾驶距离就是“曼哈顿距离”。曼哈顿距离也称为“城市街区距离”。
不同类型的特征有不同的取值范围。

6.分类方法
最常见的监督式学习应用就是建立分类模型。分类模型也称为分类器,用于对样本进行标注,标明这个样本属于一个有限的类别集合中的哪个类。

7.分类器

将数据分为两个集合,训练集和测试集。使用训练集学习一个模型,使用测试集对这个模型进行评价。对分类器进行训练时,我们试图在满足一定的约束条件的情况下,最小化训练误差,即对训练集中的样本进行分类时产生的误差。设计约束条件的目的就是为了提高模型预测未知数据的准确率。
准确度.png

灵敏度(某些领域称为召回率)即真阳性率,也就是正确识别的阳性数量与实际阳性数量的比例。特异度(某些领域称为精确度)即真阴性率,也就是正确识别的阴性数量与实际阴性数量的比例。阳性预测值是一个被分类为阳性的样本确实是阳性的概率。阴性预测值是一个被分类为阴性的样本确实是阴性的概率。

8.KNN算法
KNN,即K近邻法(k-nearst neighbors),所谓的k最近邻,就是指最接近的k个邻居(数据),即每个样本都可以由它的K个邻居来表达。kNN算法的核心思想是,在一个含未知样本的空间,可以根据离这个样本最邻近的k个样本的数据类型来确定样本的数据类型。
在scikit-learn 中,与近邻法这一大类相关的类库都在sklearn.neighbors包之中。其中分类器有KNN分类树KNeighborsClassifier、限定半径最近邻分类树的类RadiusNeighborsClassifier以及最近质心分类算法NearestCentroid等等。
前两种分类算法中,scikit-learn实现两个不同的最近邻分类器:KNeighborsClassifier基于每个查询点的k个最近邻点实现学习,其中k是用户指定的最近邻数量。 RadiusNeighborsClassifier基于每个训练点的固定半径r内的最近邻搜索实现学习,其中r是用户指定的半径浮点值。

二、练习总结
1.辨别性别
import numpy as np
from math import sqrt
import operator as opt

def normData(dataSet):
maxVals = dataSet.max(axis=0)
minVals = dataSet.min(axis=0)
ranges = maxVals - minVals
retData = (dataSet - minVals) / ranges
return retData, ranges, minVals

def kNN(dataSet, labels, testData, k):
distSquareMat = (dataSet - testData) ** 2 # 计算差值的平方
distSquareSums = distSquareMat.sum(axis=1) # 求每一行的差值平方和
distances = distSquareSums ** 0.5 # 开根号,得出每个样本到测试点的距离
sortedIndices = distances.argsort() # 排序,得到排序后的下标
indices = sortedIndices[:k] # 取最小的k个
labelCount = {} # 存储每个label的出现次数
for i in indices:
label = labels[i]
labelCount[label] = labelCount.get(label, 0) + 1 # 次数加一
sortedCount = sorted(labelCount.items(), key=opt.itemgetter(1), reverse=True) # 对label出现的次数从大到小进行排序
return sortedCount[0][0] # 返回出现次数最大的label

if name == "main":
dataSet = np.array([[2, 3], [6, 8]])
normDataSet, ranges, minVals = normData(dataSet)
labels = ['a', 'b']
testData = np.array([3.9, 5.5])
normTestData = (testData - minVals) / ranges
result = kNN(normDataSet, labels, normTestData, 1)
print(result)

2.错题


错题1.png
错题2.png
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,294评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,780评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,001评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,593评论 1 289
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,687评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,679评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,667评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,426评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,872评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,180评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,346评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,019评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,658评论 3 323
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,268评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,495评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,275评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,207评论 2 352

推荐阅读更多精彩内容