前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数据从txt文本导入python

数据从txt文本导入python

作者头像
py3study
发布于 2020-01-06 08:32:52
发布于 2020-01-06 08:32:52
2.4K0
举报
文章被收录于专栏:python3python3

机器学习实战 p21

源代码:

def file2matrix(filename):     fr = open(filename)     numberOfLines = len(fr.readlines())         #get the number of lines in the file     returnMat = zeros((numberOfLines,3))        #prepare matrix to return     classLabelVector = []                       #prepare labels return        fr = open(filename)     index = 0     for line in fr.readlines():         line = line.strip()         listFromLine = line.split('\t')         returnMat[index,:] = listFromLine[0:3]         classLabelVector.append(int(listFromLine[-1]))  此句报错         index += 1     return returnMat,classLabelVector

报错如下:

>>> mat,label = kNN.file2matrix('datingTestSet.txt') Traceback (most recent call last):   File "<stdin>", line 1, in <module>   File "kNN.py", line 50, in file2matrix     classLabelVector.append(int(listFromLine[-1])) ValueError: could not convert string to int: largeDoses

解决方法:

listFromLine[-1]的值形似如下格式,带有回车换行符

largeDoses\r\n

smallDoses\r\n

didntLike\r\n

didntLike\r\n

didntLike\r\n

要将字母字符串转换为int类型是不可能的。

作者定义largeDoses 为3,smallDoses 为2,didntLike为1

于是笔者增加了一个字典类型

d = {'didntLike': 1, 'smallDoses': 2, 'largeDoses': 3}

通过d[listFromLine[-1]]得到对应的label

更改后的代码如下:

rf.py

from numpy import * import operator from os import listdir def rf(filename):     fr = open(filename)     numberOfLines = len(fr.readlines())         #get the number of lines in the file     returnMat = zeros((numberOfLines,3))        #prepare matrix to return d = {'didntLike': 1, 'smallDoses': 2, 'largeDoses': 3}     classLabelVector = []     index = 0     fr = open(filename)     for line in fr.readlines():         listFromLine = line.split('\t')         returnMat[index,:] = listFromLine[0:3]         listFromLine[-1] = listFromLine[-1][0:-2]        #去除尾端的回车换行符         classLabelVector.append(d[listFromLine[-1]])   #取到字典中对应的label值         index += 1     return returnMat,classLabelVector

画图:

import rf mat,label = rf.rf('datingTestSet.txt') import matplotlib import matplotlib.pyplot as plt fig = plt.figure() >>> ax1 = fig.add_subplot(2, 2, 1) >>> ax1.scatter(mat[:,0],mat[:,1]) >>> ax2 = fig.add_subplot(2, 2, 2) >>> ax2.scatter(mat[:,1],mat[:,2]) from numpy import array #需要自己导入array,否则会报错 >>> ax3 = fig.add_subplot(2, 2, 3) >>> ax3.scatter(mat[:,0],mat[:,1],15.0*array(label),15.0*array(label)) ax4 = fig.add_subplot(2, 2, 4) ax4.scatter(mat[:,1],mat[:,2],15.0*array(label),15.0*array(label)) plt.show()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
KNN算法实战-改进约会网站配对效果
kNN实战之改进约会网站配对效果 引言 简单的说,KNN算法采用测量不同特征值之间的距离方法进行分类。工作原理:存在一个样本数据集,即训练数据集,并且样本集中每个样本数据都存在标签,即我们知道样本数据集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据的每个特征与样本集中数据对应的特征进行比较,然后算法提取样本集中特征最相似数据(最近邻)的分类标签。一般来说,只选择样本数据集中前K个最相似的数据,这就是KNN算法中的k的出处,通常K是大于20的整数。最后,选择k个最相似的数据中出现次数最多的分
昱良
2018/04/08
1.3K0
KNN算法实战-改进约会网站配对效果
机器学习实战-KNN算法实战-网站约会配对
海伦女士一直在使用约会网站来寻找适合自己的约会对象。尽管约会网站会推荐不同的人选,但是海伦不是喜欢每个人。经过一番的总结,她发现自己喜欢过3个类型的人:
皮大大
2021/02/28
1.5K0
机器学习实战-KNN算法实战-网站约会配对
python机器学习实战(一)
原文链接:www.cnblogs.com/fydeblog/p/7140974.html
圆方圆PYTHON学院
2018/12/25
9110
python机器学习实战(一)
使用k-近邻算法改进约会网站的配对效果
(1) 收集数据: 提供文本文件。 (2) 准备数据: 使用python解析文本文件。 (3) 分析数据: 使用 Matplotlib画二维扩散图 。 (4) 训练算法: 此步驟不适用于k-近邻算法。 (5) 测试算法: 使用海伦提供的部分数据作为测试样本。 测试样本和非测试样本的区别在于:测试样本是已经完成分类的数据,如果预测分类与实际类别不同,则标记为一个错误。 (6) 使用算法: 产生简单的命令行程序,然后可以输入一些特征数据以判断对方是否为自己喜欢的类型。
benym
2022/07/14
4540
使用k-近邻算法改进约会网站的配对效果
python机器学习实战(一)
这篇notebook是关于机器学习中监督学习的k近邻算法,将介绍2个实例,分别是使用k-近邻算法改进约会网站的效果和手写识别系统. 操作系统:ubuntu14.04    运行环境:anaconda-python2.7-notebook    参考书籍:机器学习实战      notebook  writer ----方阳 
努力努力再努力F
2018/09/11
9350
python机器学习实战(一)
机器学习(一)——K-近邻(KNN)算法
最近在看《机器学习实战》这本书,因为自己本身很想深入的了解机器学习算法,加之想学python,就在朋友的推荐之下选择了这本书进行学习。
oYabea
2020/09/07
1K0
Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)
本文介绍了k-近邻算法(kNN)的原理、优缺点,并通过实例讲解了k-近邻算法的具体实现和应用场景。
Jack_Cui
2018/01/08
3.3K0
Python3《机器学习实战》学习笔记(一):k-近邻算法(史诗级干货长文)
使用k-近邻算法改进约会网站的配对效果--学习笔记(python3版本)
本文取自《机器学习实战》第二章,原始为python2实现,现将代码移植到python3,且原始代码非常整洁,所以这本书的代码很值得学习一下。
松鼠先生
2022/02/22
5580
使用k-近邻算法改进约会网站的配对效果--学习笔记(python3版本)
【机器学习实战】第2章 K-近邻算法(k-NearestNeighbor,KNN)
文章主要介绍了如何利用KNN算法对手写数字进行分类,通过获取数据集,提取特征,训练模型,测试算法,并给出了具体的代码实现。同时,还介绍了一个基于KNN算法的简单邮件分类系统,用于区分垃圾邮件和正常邮件。
片刻
2018/01/05
8690
【机器学习实战】第2章 K-近邻算法(k-NearestNeighbor,KNN)
机器学习之K近邻算法
---- 概述 AI不断的火起来了,作为工程化的码农,也得奔向国际化轨道了。至于机器学习是什么,不知道找百科。现在大多数机器学习都是采用监督学习形式。我们学习一下KNN算法。 KNN KNN(K近邻)算法属于监督学习的分类问题,采用不同feature之间的距离方法进行分类。 1.优点:精度高、对异常值不敏感、无数据输入规定,不需要训练算法。 2.缺点:计算复杂度和空间复杂度高。 3.原理:依据训练样本集中的每个数据对应一个标签,每个数据集中每一个数据与分类一一对应关系,输入没有标签的数据后KNN算法将新数据
吕海峰
2018/04/03
5210
机器学习 学习笔记(14)k近邻学习
k近邻是一种常用的监督学习方法,其工作机制非常简单:给定测试样本,基于某种距离度量找出训练集中与其最靠近的k个训练样本,然后基于这k个邻居的信息来进行预测。通常在分类任务中可以使用投票法,即选择这k个样本中出现最多的类别标记作为预测结果,在回归任务中可以使用平均法,即将这个k个样本的实值输出标记的平均值作为预测结构,还可以基于距离远近进行加权平均或加权投票,距离越近的样本权重越大。
2018/09/04
3750
机器学习 学习笔记(14)k近邻学习
机器学习实战之KNN算法
本系列教程为《机器学习实战》的读书笔记。首先,讲讲写本系列教程的原因:第一,《机器学习实战》的代码由Python2编写,有些代码在Python3上运行已会报错,本教程基于Python3进行代码的修订;第二:之前看了一些机器学习的书籍,没有进行记录,很快就忘记掉了,通过编写教程也是一种复习的过程;第三,机器学习相对于爬虫和数据分析而言,学习难度更大,希望通过本系列文字教程,让读者在学习机器学习的路上少走弯路。
罗罗攀
2018/06/24
6520
机器学习实战之KNN算法
kNN分类算法实例1:用kNN改进约会网
海伦女士一直使用在线约会网站寻找适合自己的约会对象。尽管约会网站会推荐不同的人选,但她并不是喜欢每一个人。经过一番总结,她发现自己交往过的人可以进行如下分类:
py3study
2020/01/16
2K0
kNN分类算法实例1:用kNN改进约会网
机器学习实战之KNN算法
本系列教程为《机器学习实战》的读书笔记。首先,讲讲写本系列教程的原因:第一,《机器学习实战》的代码由Python2编写,有些代码在Python3上运行已会报错,本教程基于Python3进行代码的修订;第二:之前看了一些机器学习的书籍,没有进行记录,很快就忘记掉了,通过编写教程也是一种复习的过程;第三,机器学习相对于爬虫和数据分析而言,学习难度更大,希望通过本系列文字教程,让读者在学习机器学习的路上少走弯路。
Python中文社区
2018/07/26
4290
机器学习实战之KNN算法
机器学习-14:MachineLN之kNN源码
其实你坚持的东西都是有意义的,就好比给代码加注释,你真去做了就知道了;另外建议大家建立一个自己的工具箱,就像我建立一个MachineLP_tools,里面放可以复用的代码,然后支持大家开源,你手上现有的代码可能很快就会过时,希望能够在有效期内发挥最大的功效;最后建议自己搭建一个自己的机器学习训练框架,用着顺手、用着舒服、用着放心,比起相信别人,相信大家更相信自己。
MachineLP
2022/05/09
3120
k-近邻算法
从今天开始,与大家分享我学习《Machine Learning In Action》这本书的笔记与心得。我会将源码加以详细的注释,这是我自己学习的一个过程,也是想通过这种方式帮助需要学习的童鞋的一种方式。
卡尔曼和玻尔兹曼谁曼
2019/01/22
7940
局部加权线性回归(LWLR)
线性回归的一个问题是很可能出现欠拟合现象。局部加权线性回归可以解决线性回归中的欠拟合现象。在该算法中,我们对更靠近待预测点的点赋予更高的权重。权重类型可以自由选择,最常用的是使用高斯核:W是一个对角矩阵,其中第i项表达式为
用户6021899
2019/08/14
1.2K0
Python&kNN近邻:玩家流失预测
作者:Fish http://www.gamedas.com 流失分析,是游戏数据分析中一个老生常谈的问题了,一般情况下,运营人员及数据分析师都会从下载-点击-注册-创角-加载-新手教程-…-流失,这样一系列的过程的转化率来一步步研究和细分来寻找玩家流失点,进而改进产品本身,或是变化其中的运营方式。这种方式在游戏测试或者前期留存震荡期及淘汰期是有显著效果的,可以细分分析到每个环节所出现的问题和痛点。当游戏进入留存稳定期时,真正目标用户的流失用这种环节转化率,等级流失,等级停滞的方法来研究便显得十分捉急了,毕
机器学习AI算法工程
2018/03/13
2K0
基于逻辑回归的趋势预测 | LR | 机器智能
回归就是发现变量之间的关系,也就是求回归系数,是分类和预测算法中的一种。通过历史数据的表现对未来结果发生的概率进行预测。经常用回归来预测目标值。回归和 分类同属于监督学习,所不同的是回归的目标变量必须是连续数值型。 logistic 回归的主要思想是根据现有的数据对分类边界线建立回归公式,以此进行分类。
用户7623498
2020/08/04
8450
基于逻辑回归的趋势预测 | LR | 机器智能
【说站】python中PCA的处理过程
以上就是python中PCA的处理过程,希望对大家有所帮助。更多Python学习指路:python基础教程
很酷的站长
2022/11/24
4550
相关推荐
KNN算法实战-改进约会网站配对效果
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档