k-近邻算法(kNN)准备数据:归一化数值
#准备数据:归一化数值
def autoNorm(dataSet): #autoNorm()函数可以自动将数字特征值转换为0到1的区间
minVals = dataSet.min(0)
maxVals = dataSet.max(0) #ddataSet.max(0)中的参数0使得函数可以从列中选取最小值
ranges = maxVals - minVals
normDataSet = zeros(shape(dataSet))
m = dataSet.shape[0]
#newValue = (oldValue-min)/(max-min),该公式可以将任意取值范围的特征值转换为0到1区间内的值
#tile()函数将变量内容复制成输入矩阵同样大小的矩阵(具体特征值相除)
#在numpy库中,矩阵除法需要使用函数linalg.solve(matA,matB)
normDataSet = dataSet - tile(minVals, (m,1))
normDataSet = normDataSet/tile(ranges, (m,1))
return normDataSet, ranges, minVals
运行结果:
>>>normMat, ranges, minVals = kNN.autoNorm(datingDataMat)
>>>normMat
array([[1., 1., 1.],
[0., 0., 0.],
[0., 0., 0.],
...,
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
>>>ranges
array([4.092000e+04, 8.326976e+00, 9.539520e-01])
>>>minVals
array([0., 0., 0.])
出现的错误:
>>>normMat, ranges, minVals = kNN.autoNorm(datingDataMat)
Traceback (most recent call last):
File "<input>", line 1, in <module>
NameError: name 'kNN' is not defined >>>normMat, ranges, minVals = kNN.autoNorm(datingDataMat)
Traceback (most recent call last):
File "<input>", line 1, in <module>
AttributeError: module 'kNN' has no attribute 'autoNorm'
解决办法:
个人解决办法:重启PyCharm,运行kNN.py,重新完整的输入运行命令,问题就解决了
>>>from numpy import *
>>>random.rand(4,4)
>>>randMat = mat(random.rand(4,4))
>>>randMat.I
>>>invRandMat = randMat.I
>>>myEye = randMat*invRandMat
>>>myEye - eye(4)
>>>group,labels = kNN.createDataSet()
>>>group
>>>labels
>>>kNN.classify0([0,0], group, labels, 3)
>>>datingDataMat,datingLabels = kNN.file2matrix('datingTestSet.txt')
>>>datingDataMat
>>>datingLabels[0:16]
>>>import matplotlib
>>>import matplotlib.pyplot as plt
>>>fig = plt.figure()
>>>ax = fig.add_subplot(111)
>>>ax.scatter(datingDataMat[:,1], datingDataMat[:,2])
>>>plt.show()
>>>normMat, ranges, minVals = kNN.autoNorm(datingDataMat)
>>>normMat
array([[1., 1., 1.],
[0., 0., 0.],
[0., 0., 0.],
...,
[0., 0., 0.],
[0., 0., 0.],
[0., 0., 0.]])
>>>ranges
array([4.092000e+04, 8.326976e+00, 9.539520e-01])
>>>minVals
array([0., 0., 0.])
k-近邻算法(kNN)准备数据:归一化数值的更多相关文章
- k近邻算法(KNN)
k近邻算法(KNN) 定义:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. from sklearn.model_selection ...
- 机器学习(四) 分类算法--K近邻算法 KNN (上)
一.K近邻算法基础 KNN------- K近邻算法--------K-Nearest Neighbors 思想极度简单 应用数学知识少 (近乎为零) 效果好(缺点?) 可以解释机器学习算法使用过程中 ...
- 一看就懂的K近邻算法(KNN),K-D树,并实现手写数字识别!
1. 什么是KNN 1.1 KNN的通俗解释 何谓K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法,单从名字来猜想,可以简单粗暴的认为是:K个最近的邻居,当K=1 ...
- 机器学习(四) 机器学习(四) 分类算法--K近邻算法 KNN (下)
六.网格搜索与 K 邻近算法中更多的超参数 七.数据归一化 Feature Scaling 解决方案:将所有的数据映射到同一尺度 八.scikit-learn 中的 Scaler preprocess ...
- k近邻算法(knn)的c语言实现
最近在看knn算法,顺便敲敲代码. knn属于数据挖掘的分类算法.基本思想是在距离空间里,如果一个样本的最接近的k个邻居里,绝大多数属于某个类别,则该样本也属于这个类别.俗话叫,"随大流&q ...
- 《机器学习实战》---第二章 k近邻算法 kNN
下面的代码是在python3中运行, # -*- coding: utf-8 -*- """ Created on Tue Jul 3 17:29:27 2018 @au ...
- 最基础的分类算法-k近邻算法 kNN简介及Jupyter基础实现及Python实现
k-Nearest Neighbors简介 对于该图来说,x轴对应的是肿瘤的大小,y轴对应的是时间,蓝色样本表示恶性肿瘤,红色样本表示良性肿瘤,我们先假设k=3,这个k先不考虑怎么得到,先假设这个k是 ...
- 07.k近邻算法kNN
1.将数据分为测试数据和预测数据 2.数据分为data和target,data是矩阵,target是向量 3.将每条data(向量)绘制在坐标系中,就得到了一系列的点 4.根据每条data的targe ...
- 机器学习实战python3 K近邻(KNN)算法实现
台大机器技法跟基石都看完了,但是没有编程一直,现在打算结合周志华的<机器学习>,撸一遍机器学习实战, 原书是python2 的,但是本人感觉python3更好用一些,所以打算用python ...
- 机器学习(1)——K近邻算法
KNN的函数写法 import numpy as np from math import sqrt from collections import Counter def KNN_classify(k ...
随机推荐
- day38—JavaScript的运动基础-匀速运动
转行学开发,代码100天——2018-04-23 一.运动基础框架 JavaScript的运动可以广义理解为渐变效果,直接移动效果等,图网页上常见的“分享到”,banner,透明度变化等.其实现的基本 ...
- day31—CSS Reset 与页面居中布局
转行学开发,代码100天——2018-04-16 报名的网易前端开发课程今天正式开课了,这也是毕业后首次付费进行的正式培训课程学习.以此,记录每天学习内容. 今天学了两个方面的知识: 1. CSS ...
- day28-Javascript定时器的应用案例
转行学开发,代码100天——2018-04-13 上篇文章中记录了定时器的用法,本篇通过两个常用案例进一步巩固定时器的应用. 案例一:消息框延时,如QQ中鼠标移动到头像,弹出一个信息框:移出后,消息框 ...
- DbWrench001--简介
DbWrench--简介 mac下载地址:http://www.dbwrench.com/ DbWrench 工具等价于powerdesigner 均为数据库原型设计工具 DbWrench 详细介绍 ...
- python学习第十六天集合的关系测试
在做数据分析的时候,要对一个集合分析,而且分析多个集合的之间的关系分析,那么用传统的循环的比较麻烦,集合提供很多方法,很容易比较多个集合的关系,并集,交集,差集,对称差集等. n1={1,2,4,6} ...
- python学习第十五天集合的创建和基本操作方法
集合是python独有的数据列表,集合可以做数据分析,集合是一个无序的,唯一的的数据类型,可以确定列表的唯一性,说一下集合的创建和基本常见操作方法 1,集合的创建 s={1,2,4} 也可以用set( ...
- harbar仓库的接口测试
一.接口测试命令 api接口文档:https://github.com/goharbor/harbor/blob/release-1.7.0/docs/swagger.yaml 1)查看所属项目的信息 ...
- 道路模型--linear-parabolic model
读过很多道路追踪的论文,经常都需要道路模型的建模.我不知道是不是因为自己太笨还是怎样,好多人建的模型我实在无法理解他的用意何在,而且我真的深刻怀疑他们那些模型的参数是不是真的可以求出来.就比如这篇文章 ...
- JS中 [] == ![]结果为true,而 {} == !{}却为false
为什么? 先转换再比较 (==) 仅比较而不转换 (===) ==转换规则? ==比较运算符会先转换操作数(强制转换),然后再进行比较 ①如果有一个操作数是布尔值,则在比较相等性之前 ...
- A Tutorial on Using the ALSA Audio API
A Tutorial on Using the ALSA Audio API This document attempts to provide an introduction to the ALSA ...