【-(k–1)】^2

当前位置: &
5,077 次阅读 -
(一)KNN依然是一种监督学习算法
KNN(K Nearest Neighbors,K近邻 )算法是机器学习所有算法中理论最简单,最好理解的。KNN是一种基于实例的学习,通过计算新数据与训练数据特征值之间的距离,然后选取K(K&=1)个距离最近的邻居进行分类判断(投票法)或者回归。如果K=1,那么新数据被简单分配给其近邻的类。KNN算法算是监督学习还是无监督学习呢?首先来看一下监督学习和无监督学习的定义。对于监督学习,数据都有明确的label(分类针对离散分布,回归针对连续分布),根据机器学习产生的模型可以将新数据分到一个明确的类或得到一个预测值。对于非监督学习,数据没有label,机器学习出的模型是从数据中提取出来的pattern(提取决定性特征或者聚类等)。例如聚类是机器根据学习得到的模型来判断新数据“更像”哪些原数据集合。KNN算法用于分类时,每个训练数据都有明确的label,也可以明确的判断出新数据的label,KNN用于回归时也会根据邻居的值预测出一个明确的值,因此KNN属于监督学习。
KNN算法的过程为:
选择一种距离计算方式, 通过数据所有的特征计算新数据与已知类别数据集中的数据点的距离
按照距离递增次序进行排序,选取与当前距离最小的k个点
对于离散分类,返回k个点出现频率最多的类别作预测分类;对于回归则返回k个点的加权值作为预测值
(二)KNN算法关键
KNN算法的理论和过程就是那么简单,为了使其获得更好的学习效果,有下面几个需要注意的地方。
1、数据的所有特征都要做可比较的量化。
若是数据特征中存在非数值的类型,必须采取手段将其量化为数值。举个例子,若样本特征中包含颜色(红黑蓝)一项,颜色之间是没有距离可言的,可通过将颜色转换为灰度值来实现距离计算。另外,样本有多个参数,每一个参数都有自己的定义域和取值范围,他们对distance计算的影响也就不一样,如取值较大的影响力会盖过取值较小的参数。为了公平,样本参数必须做一些scale处理,最简单的方式就是所有特征的数值都采取归一化处置。
2、需要一个distance函数以计算两个样本之间的距离。
距离的定义有很多,如欧氏距离、余弦距离、汉明距离、曼哈顿距离等等,关于相似性度量的方法可参考‘’。一般情况下,选欧氏距离作为距离度量,但是这是只适用于连续变量。在文本分类这种非连续变量情况下,汉明距离可以用来作为度量。通常情况下,如果运用一些特殊的算法来计算度量的话,K近邻分类精度可显著提高,如运用大边缘最近邻法或者近邻成分分析法。
3,确定K的值
K是一个自定义的常数,K的值也直接影响最后的估计,一种选择K值得方法是使用 cross-validate(交叉验证)误差统计选择法。交叉验证的概念之前提过,就是数据样本的一部分作为训练样本,一部分作为测试样本,比如选择95%作为训练样本,剩下的用作测试样本。通过训练数据训练一个机器学习模型,然后利用测试数据测试其误差率。 cross-validate(交叉验证)误差统计选择法就是比较不同K值时的交叉验证平均误差率,选择误差率最小的那个K值。例如选择K=1,2,3,… ,
对每个K=i做100次交叉验证,计算出平均误差,然后比较、选出最小的那个。
(三)KNN分类
训练样本是多维特征空间向量,其中每个训练样本带有一个类别标签(喜欢或者不喜欢、保留或者删除)。分类算法常采用“多数表决”决定,即k个邻居中出现次数最多的那个类作为预测类。“多数表决”分类的一个缺点是出现频率较多的样本将会主导测试点的预测结果,那是因为他们比较大可能出现在测试点的K邻域而测试点的属性又是通过K领域内的样本计算出来的。解决这个缺点的方法之一是在进行分类时将K个邻居到测试点的距离考虑进去。例如,若样本到测试点距离为d,则选1/d为该邻居的权重(也就是得到了该邻居所属类的权重),接下来统计统计k个邻居所有类标签的权重和,值最大的那个就是新数据点的预测类标签。
举例,K=5,计算出新数据点到最近的五个邻居的举例是(1,3,3,4,5),五个邻居的类标签是(yes,no,no,yes,no)
若是按照多数表决法,则新数据点类别为no(3个no,2个yes);若考虑距离权重类别则为yes(no:2/3+1/5,yes:1+1/4)。
下面的Python程序是采用KNN算法的实例(计算欧氏距离,多数表决法决断):一个是采用KNN算法改进约会网站配对效果,另一个是采用KNN算法进行手写识别。
约会网站配对效果改进的例子是根据男子的每年的飞行里程、视频游戏时间比和每周冰激凌耗量三个特征来判断其是否是海伦姑娘喜欢的类型(类别为很喜欢、一般和讨厌),决策采用多数表决法。由于三个特征的取值范围不同,这里采用的scale策略为归一化。
使用KNN分类器的手写识别系统 只能识别数字0到9。需要识别的数字使用图形处理软件,处理成具有相同的色 彩和大小 :宽髙是32像素X32像素的黑白图像。尽管采用文本格式存储图像不能有效地利用内存空间,为了方便理解,这里已经将将图像转换为文本格式。训练数据中每个数字大概有200个样本,程序中将图像样本格式化处理为向量,即一个把一个32×32的二进制图像矩阵转换为一个1×1024的向量。
from numpy import *
import operator
from os import listdir
import matplotlib
import matplotlib.pyplot as plt
import pdb
def classify0(inX, dataSet, labels, k=3):
dataSetSize = dataSet.shape[0]
diffMat = tile(inX, (dataSetSize,1)) – dataSet
sqDiffMat = diffMat**2
sqDistances = sqDiffMat.sum(axis=1)
distances = sqDistances**0.5
sortedDistIndicies = distances.argsort()
classCount={}
for i in range(k):
voteIlabel = labels[sortedDistIndicies[i]]
classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1
sortedClassCount = sorted(classCount.iteritems(), key=operator.itemgetter(1), reverse=True)
return sortedClassCount[0][0]
def file2matrix(filename):
fr = open(filename)
L = fr.readlines()
numberOfLines = len(L)
returnMat = zeros((numberOfLines,3))
classLabelVector = []
for line in L:
line = line.strip()
listFromLine = line.split(‘\t’)
returnMat[index,:] = listFromLine[0:3]
classLabelVector.append(int(listFromLine[-1]))
index += 1
fr.close()
return returnMat,classLabelVector
def plotscattter():
datingDataMat,datingLabels = file2matrix(‘datingTestSet2.txt’)
fig = plt.figure()
ax1 = fig.add_subplot(111)
ax2 = fig.add_subplot(111)
ax3 = fig.add_subplot(111)
ax1.scatter(datingDataMat[:,0],datingDataMat[:,1],15.0*array(datingLabels),15.0*array(datingLabels))
plt.show()
def autoNorm(dataSet):
minVals = dataSet.min(0)
maxVals = dataSet.max(0)
ranges = maxVals – minVals
normDataSet = zeros(shape(dataSet))
m = dataSet.shape[0]
normDataSet = dataSet – tile(minVals, (m,1))
normDataSet = normDataSet/tile(ranges, (m,1))
return normDataSet, ranges, minVals
def datingClassTest(hoRatio = 0.20):
datingDataMat,datingLabels = file2matrix(‘datingTestSet2.txt’)
normMat, ranges, minVals = autoNorm(datingDataMat)
m = normMat.shape[0]
numTestVecs = int(m*hoRatio)
errorCount = 0.0
for i in range(numTestVecs):
classifierResult = classify0(normMat[i,:],normMat[numTestVecs:m,:],datingLabels[numTestVecs:m],3)
print “the classifier came back with: %d, the real answer is: %d” % (classifierResult, datingLabels[i])
if (classifierResult != datingLabels[i]): errorCount += 1.0
print “the total error rate is: %.2f%%” % (100*errorCount/float(numTestVecs))
print ‘testcount is %s, errorCount is %s’ %(numTestVecs,errorCount)
def classifyPerson():
resultlist = [‘not at all’,‘little doses’,‘large doses’]
percentTats = float(raw_input(‘input the person\’ percentage of time playing video games:’))
ffMiles = float(raw_input(‘flier miles in a year:’))
iceCream = float(raw_input(‘amount of iceCream consumed per year:’))
datingDataMat,datingLabels = file2matrix(‘datingTestSet2.txt’)
normMat, ranges, minVals = autoNorm(datingDataMat)
normPerson = (array([ffMiles,percentTats,iceCream])-minVals)/ranges
result = classify0(normPerson, normMat, datingLabels, 3)
print ‘you will probably like this guy in:’, resultlist[result –1]
print ‘update dating DB’
tmp = ‘\t’.join([repr(ffMiles),repr(percentTats),repr(iceCream),repr(result)])+‘\n’
with open(‘datingTestSet2.txt’,‘a’) as fr:
fr.write(tmp)
def img2file(filename):
with open(filename) as fr:
L=fr.readlines()
vector =[int(L[i][j]) for i in range(32) for j in range(32)]
return array(vector,dtype = float)
def handwritingClassTest():
hwLabels = []
trainingFileList = listdir(‘trainingDigits’)
m = len(trainingFileList)
trainingMat = zeros((m,1024))
for i in range(m):
fileNameStr = trainingFileList[i]
fileStr = fileNameStr.split(‘.’)[0]
classNumStr = int(fileStr.split(‘_’)[0])
hwLabels.append(classNumStr)
trainingMat[i,:] = img2vector(‘trainingDigits/%s’ % fileNameStr)
testFileList = listdir(‘testDigits’)
errorCount = 0.0
mTest = len(testFileList)
for i in range(mTest):
fileNameStr = testFileList[i]
fileStr = fileNameStr.split(‘.’)[0]
classNumStr = int(fileStr.split(‘_’)[0])
vectorUnderTest = img2vector(‘testDigits/%s’ % fileNameStr)
classifierResult = classify0(vectorUnderTest, trainingMat, hwLabels, 3)
print “the classifier came back with: %d, the real answer is: %d” % (classifierResult, classNumStr)
if (classifierResult != classNumStr): errorCount += 1.0
print “\nthe total number of errors is: %d” % errorCount
print “\nthe total error rate is: %f” % (errorCount/float(mTest))
if __name__ == ‘__main__’:
datingClassTest()
(四)KNN回归
数据点的类别标签是连续值时应用KNN算法就是回归,与KNN分类算法过程相同,区别在于对K个邻居的处理上。KNN回归是取K个邻居类标签值得加权作为新数据点的预测值。加权方法有:K个近邻的属性值的平均值(最差)、1/d为权重(有效的衡量邻居的权重,使较近邻居的权重比较远邻居的权重大)、高斯函数(或者其他适当的减函数)计算权重= gaussian(distance) (距离越远得到的值就越小,加权得到更为准确的估计。
(五)总结
K-近邻算法是分类数据最简单最有效的算法,其学习基于实例,使用算法时我们必须有接近实际数据的训练样本数据。K-近邻算法必须保存全部数据集,如果训练数据集的很大,必须使用大量的存储空间。此外,由于必须对数据集中的每个数据计算距离值,实际使用时可能非常耗时。k-近邻算法的另一个缺陷是它无法给出任何数据的基础结构信息,因此我们也无法知晓平均实例样本和典型实例样本具有什么特征。
文章出处:
注:转载文章均来自于公开网络,仅供学习使用,不会用于任何商业用途,如果侵犯到原作者的权益,请您与我们联系删除或者授权事宜,联系邮箱:contact@dataunion.org。转载数盟网站文章请注明原文章作者,否则产生的任何版权纠纷与数盟无关。
相关文章!
不用想啦,马上 发表自已的想法.
做最棒的数据科学社区
扫描二维码,加微信公众号
联系我们:(1–x)(K_(0.48)Na_(0.48)Li_(0.04))NbO_3–x(Na_(0.8)K_(0.2))_(0.5)Bi_(0.5)TiO_3无铅压电陶瓷的相变行为及其压电性能--《硅酸盐学报》2012年10期
(1–x)(K_(0.48)Na_(0.48)Li_(0.04))NbO_3–x(Na_(0.8)K_(0.2))_(0.5)Bi_(0.5)TiO_3无铅压电陶瓷的相变行为及其压电性能
【摘要】:采用固相法应法制备了(1–x)(K0.48Na0.48Li0.04)NbO3–x(Na0.8K0.2)0.5Bi0.5TiO3无铅压电陶瓷,研究了不同x(0,0.5%,1.0%,1.5%,2.0%,3.0%)对材料的相结构、介电性能以及压电性能的影响。结果表明:随着x增加,样品的Curie温度TC与正交到四方相变温度TO–T均逐渐降低,而压电常数d33与机电耦合系数kp均先升高后降低;该体系在0.5%x1.5%形成了典型的多晶型相变(polymorphic phase transition,PPT),当x=1.0%的样品不仅具有最佳的压电性能(d33=226 pC/N,kp=0.41),而且其Curie温度TC(437℃)保持在较高水平,在PPT附近样品的压电性能对温度非常敏感。
【作者单位】:
【关键词】:
【基金】:
【分类号】:TM282【正文快照】:
2004年日本学者报道了采用反应模板法制备(K0.44Na0.52Li0.04)(Nb0.86Ta0.10Sb0.04)O3(简称LF4)固溶体,使得其压电常数高达416pC/N,此性能可与传统的铅基压电材料相媲美,该报道在世界范围内掀起了研究铌酸钾钠(K0.5Na0.5NbO3,KNN)基无铅压电陶瓷的热潮[1–14],但需要指出的是,
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【参考文献】
中国期刊全文数据库
沈宗洋;李敬锋;;[J];硅酸盐学报;2010年03期
江向平;余祖灯;杨庆;陈超;涂娜;李月明;;[J];硅酸盐学报;2010年05期
江向平;易文斌;陈超;涂娜;李小红;展红全;;[J];硅酸盐学报;2012年04期
江向平;胡晓萍;江福兰;刘晓冬;殷庆瑞;;[J];无机材料学报;2007年03期
【共引文献】
中国期刊全文数据库
曹洋;朱孔军;裘进浩;庞旭明;顾洪汇;郑红娟;季宏丽;;[J];材料导报;2011年09期
江向平;余祖灯;杨庆;陈超;涂娜;李月明;;[J];硅酸盐学报;2010年05期
李月明;刘虎;沈宗洋;王竹梅;洪燕;李润润;;[J];硅酸盐学报;2011年12期
赵金秋;刘艳改;高广智;黄朝晖;房明浩;;[J];硅酸盐学报;2012年03期
江向平;易文斌;陈超;涂娜;李小红;展红全;;[J];硅酸盐学报;2012年04期
翟霞;王华;许积文;赵霞妍;杨玲;;[J];电工材料;2012年02期
陈燕;江向平;涂娜;冯子义;陈超;李月明;;[J];人工晶体学报;2009年05期
吕会芹;武丽明;王淑婷;迟庆斌;刘泳;初瑞清;徐志军;;[J];聊城大学学报(自然科学版);2012年02期
翟霞;王华;崔业让;袁昌来;许积文;张小文;周昌荣;江民红;刘心宇;;[J];人工晶体学报;2012年04期
骆雯琴;沈宗洋;李月明;王竹梅;顾幸勇;;[J];中国陶瓷;2012年09期
中国硕士学位论文全文数据库
李照;[D];陕西师范大学;2011年
柏林;[D];南京航空航天大学;2011年
罗政军;[D];哈尔滨工业大学;2011年
余祖灯;[D];景德镇陶瓷学院;2010年
易文斌;[D];景德镇陶瓷学院;2012年
【二级参考文献】
中国期刊全文数据库
张利民;张波萍;李敬锋;丁晓年;张海龙;;[J];稀有金属材料与工程;2007年S1期
赁敦敏,肖定全,朱建国,余萍,鄢洪建;[J];功能材料;2003年06期
吴浪;肖定全;赁敦敏;朱建国;余萍;李香;孙勇;庄严;魏群;;[J];功能材料;2007年11期
郝俊杰,李龙土,王晓慧,桂治轮;[J];硅酸盐学报;2004年02期
张利民;张波萍;李敬锋;王轲;张海龙;;[J];硅酸盐学报;2007年01期
沈宗洋;李敬锋;;[J];硅酸盐学报;2010年03期
江向平;余祖灯;杨庆;陈超;涂娜;李月明;;[J];硅酸盐学报;2010年05期
胡晓萍;刘晓东;曾敏;李龙珠;江向平;;[J];陶瓷学报;2005年04期
唐福生;杜红亮;刘代军;罗发;周万城;;[J];无机材料学报;2007年02期
江向平;胡晓萍;江福兰;刘晓冬;殷庆瑞;;[J];无机材料学报;2007年03期
【相似文献】
中国期刊全文数据库
赵静波;杜红亮;屈绍波;张红梅;徐卓;;[J];科学通报;2011年10期
刘代军;杜红亮;唐福生;罗发;周万城;;[J];硅酸盐学报;2007年09期
何航;李珍;刘立峰;;[J];中国陶瓷;2011年05期
江向平;卫巍;陈超;涂娜;余祖灯;李小红;;[J];硅酸盐学报;2011年07期
江向平;余祖灯;杨庆;陈超;涂娜;李月明;;[J];硅酸盐学报;2010年05期
江民红;刘心宇;陈国华;龚晓斌;周昌荣;;[J];硅酸盐学报;2011年07期
尹奇异;肖定全;王一琳;田长安;吴浪;;[J];硅酸盐学报;2009年03期
范桂芬;吕文中;饶源源;;[J];无机材料学报;2009年03期
陈书涛,徐庆,陈文,周静,金福熙,李仲熙;[J];人工晶体学报;2005年01期
侯育冬,朱满康,王春娟,汪浩,田长生,严辉;[J];压电与声光;2005年01期
中国重要会议论文全文数据库
盖志刚;王矜奉;苏文斌;亓鹏;杜鹃;明保全;郑立梅;;[A];第六届中国功能材料及其应用学术会议论文集(2)[C];2007年
李伟;徐志军;初瑞清;;[A];第六届中国功能材料及其应用学术会议论文集(2)[C];2007年
徐志军;初瑞清;;[A];第六届中国功能材料及其应用学术会议论文集(2)[C];2007年
郝继功;徐志军;初瑞清;;[A];第六届中国功能材料及其应用学术会议论文集(2)[C];2007年
陈彩凤;韩霄丽;刘军;骆英;;[A];Proceedings of the 2010 Symposium on Piezoelectricity,Acoustic Waves and Device Applications[C];2010年
孔海宽;陈建军;郑燕青;忻隽;陈辉;;[A];中国光学学会2006年学术大会论文摘要集[C];2006年
周昌荣;刘心宇;;[A];第六届中国功能材料及其应用学术会议论文集(2)[C];2007年
庄志强;黄浩源;莫卿具;;[A];中国电子学会第十五届电子元件学术年会论文集[C];2008年
姜胜林;王筱珍;张绪礼;;[A];第二届中国功能材料及其应用学术会议论文集[C];1995年
王道利;裘进浩;朱孔军;季宏丽;谢实辉;;[A];第三届全国压电和声波理论及器件技术研讨会论文集[C];2008年
中国重要报纸全文数据库
鸣琦;[N];陕西日报;2009年
中国博士学位论文全文数据库
郑立梅;[D];山东大学;2010年
杜鹃;[D];山东大学;2009年
吴玲;[D];山东大学;2008年
黎慧;[D];华中科技大学;2008年
江民红;[D];中南大学;2010年
范桂芬;[D];华中科技大学;2007年
周昌荣;[D];中南大学;2008年
陈建国;[D];上海大学;2010年
亓鹏;[D];山东大学;2008年
晏伯武;[D];华中科技大学;2007年
中国硕士学位论文全文数据库
钮效鹍;[D];山东大学;2008年
杨莉莉;[D];陕西师范大学;2008年
吕应刚;[D];山东大学;2008年
沈文轶;[D];华中科技大学;2007年
周起;[D];哈尔滨工业大学;2010年
刘培祥;[D];天津大学;2007年
陈宏;[D];陕西师范大学;2009年
孟兆磊;[D];南京航空航天大学;2008年
徐孝刚;[D];山东大学;2009年
吴素娟;[D];武汉理工大学;2005年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
同方知网数字出版技术股份有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
订购热线:400-819-82499
服务热线:010--
在线咨询:
传真:010-
京公网安备75号已知二次函数y=x2–kx+k–1(k>2).(1)求证:抛物线y=x2–kx+k-1(k>2)与x轴必有两个交点;(2)抛物线与x轴交于A、B两点(点A在点B的左侧),与y轴交于点C,若,求抛物线的表达式;(3)以(2)中的抛物线上一点P(m,n)为圆心,1为半径作圆,直接写出:当m取何值时,x轴与相离、相切、相交.
(1)证明见解析;(2)抛物线的表达式为;(3)当或时,x轴与相离.当或或时,x轴与相切. 当或时,x轴与相交.
试题分析:(1)要证明二次函数的图象与x轴都有两个交点,证明二次函数的判别式是正数即可解决问题;(2)根据函数解析式求出A、B、C点坐标,再由,求出函数解析式;(3)先求出当或或时,x轴与相切,再写出相离与相交.试题解析:(1)∵,又∵,∴.∴即.∴抛物线y=x2–kx+k-1与x轴必有两个交点;(2)∵抛物线y=x2–kx+k-1与x轴交于A、B两点,∴令,有.解得:.∵,点A在点B的左侧,∴. ∵抛物线与y轴交于点C,∴.∵在Rt中,,∴,解得.∴抛物线的表达式为;(3)解:当或时,x轴与相离.当或或时,x轴与相切.当或时,x轴与相交.
下列说法“①任意两个正方形必相似;②如果两个相似三角形对应高的比为4:5,那么它们的面积比为4:5;③抛物线y=-(x-1)2+3对称轴是直线x=1,当x<1时,y随x的增大而增大;④若
;⑤一元二次方程x2-x=4的一次项系数是-1;⑥
不是同类二次根式”中,正确的个数有(  )个
已知关于x的一元二次方程x2+kx-2=0,(1)求证:方程总有两个不相等的实数根;(2)设方程两实数根分别为x1,x2,且满足x1+x2=x1x2,求k的值;(3)若方程两根互为相反数,求这两个根.
(1)已知x,y为实数,y=
,则3x+4y为多少?(2)当x=
-1时,求x2+2x+2的值.
高考全年学习规划
该知识易错题
该知识点相似题
高考英语全年学习规划讲师:李辉
更多高考学习规划:
客服电话:400-676-2300
京ICP证050421号&京ICP备号 &京公安备110-1081940& 网络视听许可证0110531号
旗下成员公司}

我要回帖

更多关于 k'k 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信