绿盟实习点滴【1】

来源:互联网 发布:高通一键刷基带软件apk 编辑:程序博客网 时间:2024/03/29 13:41

前言

实习阶段正式开启啦,职位是绿盟的数据挖掘/机器学习/数据分析工程师,我就是头衔多,过来打我哈。不闹,现在项目需要和公司靠拢了,所以没有太多时间搞自己的东西,而且还有两篇英文论文毛思路还没有,,,,不知道能不能毕业。。。不说了,一周一记录吧。

1.了解Elasticsearch基本使用。

Elasticsearch基础教程
Elasticsearch是什么以及核心概念

Elasticsearch是什么?

Elasticsearch是一个高度可扩展的开源全文搜索和分析引擎。它可以在很短的时间内存储,搜索和分析大量的数据。它通常作为具有复杂搜索场景情况下的核心发动机。

Elasticsearch是准实时搜索平台。这意味着有轻微的延迟(通常为1秒)就可以从入库建索引文件到已经进行关键字搜索。

Elasticsearch核心概念

  • 准实时索引(Near Realtime)
  • 集群(cluster)
    • 集群是由一个或多个节点组成,对外提供服务,对外提供索引和搜索功能。
    • 每个节点只能是群集的一部分,当该节点被设置为相同的名称时,就会自动加入群集。
    • 一个节点只能加入一个集群,可以拥有多个独立的集群,每个集群都有其不同的集群名称
  • 节点(node)
    • 一个节点是一个逻辑上独立的服务,它是群集的一部分,可以存储数据,并参与集群的索引和搜索功能。
    • 节点名字在管理中很重要,在网络中Elasticsearch群集通过节点名称进行管理和通信。
  • 索引(index)
    • 索引是有点结构的文档集合。
    • 一个索引是一个名称(必须是全部小写),这个名字是用来指在执行索引、搜索、更新和删除操作时对文档的索引。
  • 类型(type)
    • 在一般情况下,一种类型被定义为具有一组公共字段的文档。比如博客平台所有数据都存在一个索引中,那么这个索引中可以定义各种类型,比如评论类型。
  • 文档(document)
    • 文档是以JSON(JavaScript Object Notation)格式存储的。在一个索引中,您可以存储多个的文档。
  • 分片(shards)
    • 用于解决一个索引占用超多的数据,单独存在一个节点搜索太慢,需要将其分片在不同的物理机上,提高效率和解决单台物理机存储大小问题。
    • 允许你水平分割扩展你的数据,允许分配和并行操作(可能在多个节点上)从而提高性能和吞吐量

Elasticsearch目前使用

目前用于对数据库中的网页数据进行检索,返回title,banner等关键信息。


2.了解SecureCRT和WinSCP的基本使用

SecureCRT的详细使用教程

什么是SecureCRT?

是一款SSH的终端仿真程序,简单说就是Windows下登录Linux/Unix服务器主机的软件


SecureCRT目前使用

现在用得最多就是把自己本机的python脚本发送到服务器上跑,命令行很简单,和在shell上保持一致。如果只是想运行下写好的python脚本,只需要$ python testdemo.py 就可以运行自己写的py文件了。值得注意的是,如果你的程序中需要有关联包或者需要读取文件,则需要把包和文件也同步到服务器上,至于怎么同步文件到服务器上,我们使用WinSCP


什么是WinSCP?

WinSCP是一个Windows环境下使用SSH的开源图形化SFTP客户端。同时支持SCP协议。它的主要功能就是在本地与远程计算机间安全的复制文件。

WinSCP目前使用

服务器上和本地之间的同步文件,我一般和SecureCRT搭配使用,因为在服务器上跑程序,数据还是需要加载到服务器上的,SecureCRT相当于一个shell。


3.Model的保存的读取

上传服务器的时候想直接把训练好的Model同步过去(其实应该是放到服务器上去做Model的训练的,训练时间有时候会是几个小时,这样自己的物理机还可以自由操作。)

首先是在本地的Model训练和存储,在服务器端其实一样的操作,就是把输入的数据路径修改下就可以,如果服务器上的python包版本低,更新下就好了。

from sklearn.externals import joblibjoblib.dump(GBDTModel, "GBDTModel_test.m",compress=3)

其中GBDTModel是训练的Model,注意的是compress=3参数必须加,不然会出现问题的,具体感谢一位CSDN哥们@mach_learn我才得以解决问题。然后我需要读取存着的那个Model怎么办呢?

from sklearn.externals import joblibclf = joblib.load("GBDTModel_test.m")

这样就可以不重复训练Model了,尤其是花了好多个小时训练的Model直接存在硬盘中拿来用就可以了。


一周总结

周一实习报道,当天就配置各种实验环境,实习是导师制的,我跟着一个清华博士后老师,待我很好,我的两个显示屏要求都满足我啦,还帮我搬机箱(没错,女博士后),还是非常感动的,而且,第二天就给我的座位上贴上了我的名牌,座机开通,内网邮箱外网邮箱开通,效率非常高。第三天,开了个内部会议,主要介绍了我们做过的项目,看和公司是否接轨和安排工作,这点我也觉得很棒,现在做着自己课题相关的,自己热爱的工作,觉得累点真的没什么。这里氛围非常好,大家休息时间讨论的都是技术相关的,什么APT攻击啦,流量蠕虫啦,反正小白的我就这样听着,大家都好有爱。这周也熟悉了一下环境,然后了解了日后的工作方向,什么Hadoop和Spark这种在这里就是工具而已,和我以前理解的不一样,让我理解到,我们才是主体,工具很多,不能单一评价工具好坏,只有何时用怎么用才能决定工具的好坏。今晚提早下班,明天再接再厉

致谢

  • Elasticsearch基础教程
  • Elasticsearch是什么以及核心概念
  • SecureCRT的详细使用教程
  • @mach_learn–scikit-learn使用joblib持久化模型过程中的问题详解
0 0
原创粉丝点击