当前位置: 首页 > news >正文

池州做网站的公司动漫设计自考大专

池州做网站的公司,动漫设计自考大专,做网站公司的年终总结,wordpress 杂志主题需求背景#xff1a; XX一直使用约会网站寻找适合自己的约会对象#xff0c;ta会把人分为3种类型#xff1a; 不喜欢、魅力一般、非常有魅力 对人分类轴#xff0c;发现了对象样本的以下3种特征#xff1a; 1、每年获得的飞行里程数 2、玩视频游戏所耗时间百分比 3、…需求背景 XX一直使用约会网站寻找适合自己的约会对象ta会把人分为3种类型 不喜欢、魅力一般、非常有魅力 对人分类轴发现了对象样本的以下3种特征 1、每年获得的飞行里程数 2、玩视频游戏所耗时间百分比 3、每周消费的冰淇淋数量 数据初始化 将上述特征输入到分类器之前必须将待处理数据的格式处理成分类器可以接受的格式。因为源数据存在txt文件中所以要创建一个函数处理数据 def file2matrix(filename):fropen(filename)arrayOlinesfr.readlines()numberOfLineslen(arrayOlines)returnMatzeros((numberOfLines,3))classLabelVector[]index0for line in arrayOlines:lineline.strip()listFromLineline.split(\t)returnMat[index,:]listFromLine[0:3]classLabelVector.append(int(listFromLine[-1]))index 1return returnMat,classLabelVector 从上面的代码可以看到Python处理文本文件非常容易。 处理顺序 1、获得文件的行数 2、创建以0填充的矩阵NumPy 3、循环处理文件中的每行数据使用函数line.strip()截取掉所有的回车字符 分析数据 使用Matplotlib制作原始数据的散点图 datingDataMat,datingLabelsfile2matrix(datingTestSet2.txt) figplt.figure() axfig.add_subplot(111) ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*array(datingLabels),15.0*array(datingLabels)) plt.show() 可以看到由于没有使用样本分类的特征值很难从图中看出任何有用的数据模式信息所以调试代码利用scatter函数进行个性化标记散点图上的点 ax.scatter(datingDataMat[:,1],datingDataMat[:,2],15.0*array(datingLabels),15.0*array(datingLabels)) 现在就可以看出每种分类人群的特征 准备数据归一化数值 从数据上可以看出每年飞行里程数对于计算结果的影响远远大于另外两个特征的影响。而产生这种线性的原因仅仅是因为飞行里程数远大于其他特征但因为用户认为这三种特征是同等重要的所以作为特征之一里程数不应该如此严重的影响到计算结果。 处理这种不同取值范围的特征值时我们通常采用的方法是将数值归一化比如将取值范围处理为0到1或者-1到1之间。下面的公式可以将任意取值范围转化为0到1区间内的值 newValue(oldValue-min)/(max-min) 其中min和max分别是数据集中的最小特征值和最大特征值。 归一化函数 def autoNorm(dataSet):minValsdataSet.min(0)maxValsdataSet.max(0)rangesmaxVals-minValsnormDataSetzeros(shape(dataSet))mdataSet.shape[0]normDataSetdataSet-tile(minVals,(m,1))normDataSetnormDataSet/tile(ranges,(m,1))return normDataSet,ranges,minVals 在这个函数中我们将每列的最小值放在变量minVals中将最大值放在变量maxVals中其中dataSet.min(0)中的参数0使得函数可以从列中选取最小值而不是选取当前行的最小值。然后函数计算可能的取值范围并创建新的返回矩阵。为了归一化特征值我们必须使用当前值减去最小值然后除以取值范围。需要注意的是特征矩阵由1000*3个值而minVals和range的值都是1*3.为了解决这个问题使用NumPy库中的tile()函数将变量内容复制乘输入矩阵同样大小的矩阵。这是具体特征值相处。 测试算法作为完整程序验证分类器 机器学习算法一个很重要的工作就是评估算法的正确率通常我们只提供90%的数据作为训练样本而使用剩余的10%作为测试数据。其中10%的测试数据应该是随机选择的。 完美分类器的错误量为0而错误率为1.0的分类器不会给出任何正确的分类 为了测试分类器效果我们创建以下函数 def datingClassTest():hoRatio0.10datingDataMatdatingLabelsfile2matrix(datingTestSet2.txt)normMat,ranges,minValsautoNorm(datingDataMat)mnormMat.shape[0]errorCount0.0numTestVecsint(m*hoRatio)for i in range(numTestVecs):classifierResultclassify0(normMat[i,:],normMat[numTestVecs:m,],datingLabels[numTestVecs:m],3)print(classifierResult,datingLabels[i])if (classifierResult!datingLabels[i]):errorCount1.0print(errorCount/float(numTestVecs)) 函数datingClassTest首先使用了file2matrix和autoNorm函数从文件中读取数据并将其转化为归一化特征值。接着计算测试向量的数量这一步决定了normMat向量中哪些数据用于测试那些数据用于训练然后将这两部分数据输入到原始kNN分类器函数classify0.最后函数计算错误率并输出结果。 需要注意此处我们使用原始分类器。 分类器处理数据集的错误率为5%这是一个还不错的结果。我们可以改变函数中hoRatio和变量k的值检测错误率是否会随着变量值的变换而增加 使用算法构建完整可用系统 上面已经在数据上对分类器进行了测试现在可以用这个分类器对人员进行分类 def classifyPerson():resultList[完全不喜欢,一般魅力,很有魅力]percentTatsfloat(input(每年玩视频游戏的时间比例?))ffMilesfloat(input(每年的飞行里程数?))iceCreamfloat(input(每年吃冰激凌的数量?))datingDataMat,datingLabelsfile2matrix(datingTestSet2.txt)normMat,ranges,minValsautoNorm(datingDataMat)inArrarray([ffMiles,percentTats,iceCream])classifierResultclassify0((inArr-minVals)/ranges,normMat,datingLabels,3)print(你对于这个人的感受:,resultList[classifierResult-1])
http://www.w-s-a.com/news/635545/

相关文章:

  • 专业论坛网站有哪些如何制作h5页面视频
  • 南京整站优化网站备案负责人一定要法人
  • 北京正规网站建设公司php网站开发实训感想
  • 织梦网站地图怎么做腾讯网站开发语言
  • 站长之家alexa排名wordpress html 标签
  • WordPress建站主机推荐工程公司的经营范围
  • 做网站要注意哪一点网站需求分析的重要
  • 设计作品网站怎么开网站
  • 上海网站开发制作建设网站的建设费用包括
  • 上海网站建设网站开发亚洲杯篮球直播在什么网站
  • 网站做seo第一步h5制作公司
  • 软件外包产业网络优化工程师是干嘛的
  • 怎么用服务器做局域网网站河西网站建设
  • 工业企业网站建设企业门户网站解决方案
  • 网站运营与管理论文网上商城都有哪些
  • 常德网站制作建设毕设电商网站设计
  • 西安企业模板建站福州+网站建设+医疗
  • 邹城市住房和建设局网站仙居网站建设贴吧
  • 为什么要用CGI做网站网站手机优化显示
  • 做袜子娃娃的网站做网站要学的东西
  • 类qq留言网站建设企业做网站公司
  • 如何查到网站建设三足鼎立小程序开发公司
  • 交互网站怎么做的wordpress ssl 错位
  • 公司宣传 如何做公司网站郑州做网站那
  • 衡阳市城乡建设协会官方网站免费游戏网站模板
  • 小程序怎么做优惠券网站合肥建站网站平台
  • 民制作网站价格株洲企业seo优化
  • 网站建设 岗位职责网站建设百度索引
  • 网站建设的内容下拉网站导航用ps怎么做
  • 怎样做p2p网站海口免费自助建站模板