机器学习 数据的采集和清洗

2023-11-14

本人找到了一条路(不知道对错的路),采集训练的 数据和清理数据。

第一步  采集

          涉及到如何利用爬虫采集网页csv文件

           数据是在UCI 上的  UCI官网如下http://archive.ics.uci.edu/ml/index.php  。就拿里面最热门的Iris数据来说。进入数据的下载页http://archive.ics.uci.edu/ml/machine-learning-databases/iris/,可以将iris.data右键另存为本地文件。当然还有另外一种方法,就是利用爬虫进行在http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data采集代码如下

import os
from bokeh.models import pd
#百度到的代码,正确是正确,但是
def ReadAndSaveDataByPandas(target_url = None,save=False):
    wine = pd.read_csv(target_url, header=0, sep=",")
    if save == True:
        '''  
        import os
        os.getcwd() #获取当前工作路径
        '''
      #  dt.to_csv('Result.csv')  # 相对位置,保存在getwcd()获得的路径下
      #  dt.to_csv('C:/Users/think/Desktop/Result.csv')  # 绝对位置
       #这里是绝对路径 不建议如此,但是我就想保存到这 wine.to_csv("C:/Users/Administrator/Desktop/Iris.csv",
                    index=0,header=1)
target_url = "http://archive.ics.uci.edu/ml/machine-learning-databases/iris/iris.data"
ReadAndSaveDataByPandas(target_url,True)

第二步 清洗

           如何利用read_csv读取文件,并转化为字典形式

          利用panda库的read_csv读取文件然后再转换为我们想要的格式

import numpy as np
import pandas as pd

def getIrisData(path):
    names=['1','2','3','4','target_names','target']
    read=pd.read_csv(path,names=names,sep=',')
    for i in range(len(read)):
        if (read['target_names'][i] == 'Iris-setosa' ):
            read['target'][i]=0
        elif (read['target_names'][i] == 'Iris-versicolor'):
            read['target'][i]= 1
        else:
            read['target'][i]= 2
    '''
    #read['target'] = pd.Categorical(read['target_names']).codes 这种写法才是完美的
    #这种写法好像更好
    read['target'][read['target_names']== 'Iris-setosa']=0
    read['target'][read['target_names'] == 'Iris-versicolor'] = 1
    read['target'][read['target_names'] == 'Iris-virginica'] = 2
    '''
#   print(read)
    #还有这种写法啊
    '''  array=read.values
         X = array[:, 0:4]
    '''
    X = np.array(read[['1','2','3','4']])
    print(X)
   
    Y=np.array(read['target'])
    print(Y)
    #获得花中的种类
    list2=[]
    for i in range(len(read['target_names'])):
        if read['target_names'][i] not in list2:
            list2.append(read['target_names'][i])
   # print(list2)
   
    list1=dict([('data',X),('target',Y),('feature_names',list2)])
    print (list1)
    return list1
#我调试的时候用的是这个路径,第一步不是的,所以要注意位置甚至是文件名。
#getIrisData('../../Data/iris.csv')



至于为什么 将数据搞成这个形式 。因为from sklearn.datasets import load_iris  里的数据也是这个形式。弄不弄弄成其他形式,暂时不知道。

第三步   处理

处理是《机器学习系统设计》第二章的第一个代码,如下。

from  matplotlib import pyplot as plt
from sklearn.datasets import load_iris
#此路径不一定是你的路径
from MLDownding.loadIris.handleIris import getIrisData

#这里是利用load_iris的数据,如果利用自己的数据,就把这段注释掉用下面那个data=。。。
data=load_iris()
#data=getIrisData('../../Data/iris.data')

features=data['data']
print(data)
feature_names=data['feature_names']
target=data['target']

pairs=[(0,1),(0,2),(0,3),(1,2),(1,3),(2,3)]
for i,(p0,p1) in enumerate (pairs):
    plt.subplot(2,3,i+1)
    for t,marker,c in zip(range(3),">ox","rgb"):
        plt.scatter(features[target==t,p0],features[target==t,p1],marker=marker,c=c)
        plt.xlabel(feature_names[p0])
        plt.ylabel(feature_names[p1])
    plt.xticks([])
    plt.yticks([])
plt.show()

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

机器学习 数据的采集和清洗 的相关文章

  • 服务器简单的命令操作系统,服务器操作系统常用命令

    服务器操作系统常用命令 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 当您发现云服务器的运行速度变慢或云服务器突然出现网
  • 一、django错误集合

    1 django core exceptions ImproperlyConfigured WSGI application LARS wsgi application could not be loaded Error importing

随机推荐

  • 强迫自己学习Jquery三

    元素定位问题 offset 和 position必须要好好看一下 转载于 https www cnblogs com jamesldj p 3323707 html
  • 前端系列之jQuery(jQuery选择的艺术)

    一 jQuery是什么 是一款JavaScript库 方便地处理HTML 事件 动画等 html 处理HTML文档中的DOM节点 如添加 删除等 事件 通过jQuery对页面上的事件进行处理 动画 通过jQuery实现淡入 淡出 滑动等动画
  • node中文件的上传与下载

    一 node基于Express项目实现文件的上传 1 FormData对象 以对象的方式来表示页面中的表单 又称为表单对象 以key value的方式来保存数据 XMLHttpRequest对象可以轻松的表单对象发送的服务器端 1 使用构造
  • HJ9 提取不重复的整数

    描述 输入一个 int 型整数 按照从右向左的阅读顺序 返回一个不含重复数字的新的整数 保证输入的整数最后一位不是 0 数据范围 1 n 10 8 输入描述 输入一个int型整数 输出描述 按照从右向左的阅读顺序 返回一个不含重复数字的新的
  • 理解virt res shr之间的关系 - linux

    转自 https www orchome com 298 想必在linux上写过程序的同学都有分析进程占用多少内存的经历 或者被问到这样的问题 你的程序在运行时占用了多少内存 物理内存 通常我们可以通过top命令查看进程占用了多少内存 这里
  • Kafka权威指南

    第一章 初识Kafka kafka是一款发布订阅的消息系统 具体结构从大向下可以列举为 1个Kafka集群种有N个broker 一个broker有N个主题分区 broker指的是一个独立的Kafka服务器 主题指的是消息的分类 为什么要选用
  • SQLI-Labs(18-22关)请求头注入

    十八关 这里这个提示就是一些浏览器会记录我们的IP信息 那么记录了就会被存储到数据库中就有可能存在SQL注入 这里需要引入几个数据头信息 User agent 浏览器的身份识别字符串 简单来说就是根据这个字段来判断是通过PC端还是手机端访问
  • CentOS一键配置rsync服务器脚本

    1 保存下面的代码为一个文件 上传到服务器端 名称为rsync sh bin bash rsync Written by zhumaohai For more information please visit http www centos
  • JavaSE的复习:Java基本语法

    1 变量 变量的分类 按数据类型 对于每一种数据都定义了明确的具体数据类型 强类型语言 在内存中分配了不同大小的内存空间 弱类型语言则不用明确指明数据类型 例如js var 变量的分类 按声明的位置的不同 在方法体外 类体内声明的变量称为成
  • Oracle安装 在注册表中没有找到指定的主目录名 的解决方案

    在安装数据库的时候 报了个错 在注册表中没有找到指定的主目录名 解决方案就是 忽略 此错误并不影响Oracle的正常使用 亲测可行 也不排除不可用的情况 如果谁遇到了请告知 我将继续补充
  • vue-cli3配置proxy解决前后端域名/端口不一致引起的跨域问题

    错误代码 前端 import axios from axios import VueAxios from vue axios Vue use VueAxios axios this axios post http localhost 808
  • (一)JMeter性能测试,完整入门篇:性能测试操作步骤

    原文转自 https blog csdn net lovesoo article details 78579547 1 Jmeter简介 Apache JMeter是一款纯java编写负载功能测试和性能测试开源工具软件 相比Loadrunn
  • sentinel

    文章目录 1 sentinel简介 1 1 sentinel解决的问题 1 2 服务保护技术对比 2 微服务整合sentinel 2 1 引入sentinel依赖 2 2 配置控制台地址 3 限流规则 3 1 流控模式 3 2 流控效果 4
  • 华为路由交换学习篇-ACL

    目录 ACL访问控制列表 基本ACL 高级ACL 实验一 ACL访问控制列表 ACL的分类 按照功能来分 可以分为基本ACL 高级ACL 基于接口的ACL 二层ACL 自定义的ACL 基于MPLS的ACL 基本ACL6 高级ACL6 基本A
  • 考研:研究生考试(十五天学完)之研究生学霸重点知识点总结之考研必知(考研时间/科目/必备物件)、【考研政治】/【考研英语】/【考研数学】经验总结(历年规律分析、技巧总结、经验分享)

    考研 研究生考试 十五天学完 之研究生学霸重点知识点总结之考研必知 考研时间 科目 必备物件 考研政治 考研英语 考研数学 经验总结 历年规律分析 技巧总结 经验分享 文章转自 考研 研究生考试 十五天学完 之研究生学霸重点知识点总结之考研
  • Guava学习笔记之Maps(1):Maps.uniqueIndex(Iterable, Function)

    Guava官方文档 https github com google guava wiki CollectionUtilitiesExplained 官方文档这样描述 Maps uniqueIndex Iterable Function ht
  • 【JavaWeb】四个Scope

    英文科普 scope 范围 域 1 page里的变量没法从index jsp传递到test jsp 只要页面跳转了 它们就不见了 以页面为单位 2 request里的变量可以跨越forward前后的两页 但是只要刷新页面 它们就重新计算了
  • Java中对象的比较

    目录 一 基本数据类型的比较 二 引用数据类型比较 1 equals 方法 1 实现Comparable接口 2 传比较器 一 基本数据类型的比较 我们在比较基本类型的数据时 通常用 来判断 也比较简单 int a 3 int b 5 Sy
  • 谈谈我对服务熔断、服务降级的理解

    伴随着微服务架构被宣传得如火如荼 一些概念也被推到了我们面前 管你接受不接受 其实大多数概念以前就有 但很少被提的这么频繁 现在好像不提及都不好意思交流了 想起有人总结的一句话 微服务架构的特点就是 一解释就懂 一问就不知 一讨论就吵架 其
  • 机器学习 数据的采集和清洗

    本人找到了一条路 不知道对错的路 采集训练的 数据和清理数据 第一步 采集 涉及到如何利用爬虫采集网页csv文件 数据是在UCI 上的 UCI官网如下http archive ics uci edu ml index php 就拿里面最热门