自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 手把手教你搭建SpringBoot项目

目录概述构建项目项目运行总结最近在研究thingsboard这个项目,采用的是SpringBoot框架,作为一个APP的开发者,需要先了解下这个框架,然后再去研究thingsboard这个项目。所以简单的总结下自己在搭建SpringBoot项目时遇到的问题概述SpringBoot基于Spring Framework,用来快速搭建Spring应用。SpringBoot整合很多框架,所以说是库的集合。相对于Maven来说,Maven是jar包的集合。SpringBoot设计的目的

2020-07-22 16:32:18 38

原创 Thingsboard从配置到运行成功小白级别的步骤以及踩过的坑

最近在研究开源的ThingsBoard相关源码的内容,作为一个移动端APP的开发者,第一次接触这种后端项目,真的是无从下手。只能根据网上的步骤一点点的进行操作,项目好不容易编译成功了、数据库也安装成功了,但是就是项目运行不起来。把自己遇到的问题在一些QQ群中咨询,可能是自己的问题比较低级,也没有人回复,在网上也没有找到立即对症下药的帖子,自己一遍又一遍的换关键字搜索,功夫不负有心人,终于可以让项目运行起来,顺便把我遇到的问题记录下,相比较与网上有一些比较好的博客,更适合像我这种从前端看后端项目的人,里面的有

2020-07-16 17:27:25 565

原创 小白级别的thingsboard数据库安装

最近在研究开源的ThingsBoard相关源码的内容,作为一个移动端APP的开发者,第一次接触这种后端项目,真的是无从下手,后端的一些概念也搞不明白,像数据库、表、表空间等这些概念把自己搞的一塌糊涂。根据网上的步骤进行配置环境的时候,特别是到了数据库安装这一步的时候,把自己卡了一段时间,也没有找到一个小白级别的数据库安装教程,虽然加了一个论坛,也不好意思问这么简单的问题。多亏自己有耐心,不放弃,今天终于把数据库安装成功了,记录下小白级别的数据库安装的过程,希望帮助像我一样从前端去研究后端的同行们。这几天

2020-07-15 17:20:46 124

原创 OPC 协议一点点总结

目录一、OPC协议规范二、OPC服务器三、OPC服务器之间的通信四、OPC三类对象OPC基于微软的COM/DCOM技术来进行数据交换。只能安装在Windows系统。采用的是客户端/服务器模式。通信的发起端是客户端,可以读写服务器数据。硬件厂商只需要提供硬件设备的驱动程序,并且提供标准的OPC协议规范的OPC服务器让客户端来通过软件的方式来访问硬件,实现软件和硬件的通信。一、OPC协议规范DA(Data Access)规范:实时数据。访问数据主要采用的协议规范A&amp

2020-06-29 14:43:14 63

原创 Modbus网关方案

一、Modbus协议Modbus协议是一种串行通信协议,是一个主/从架构的协议,该架构中只有一个节点是主节点,其他与该主节点的通信的节点均为从节点,每一个从节点的设备都有一个唯一的地址,所有的通信都是有从节点发出。主节点初始化传输,其他从节点根据主节点提供的数据作出相应的反应。主节点可以和从节点单独通信,也可以以广播的方式和从节点通信,如果单独通信,从节点返回一消息作为回应;如果以广播的方式查询,则不作为任何回应。Modbus协议包括RTU、TCP、ASCII等。TCP是基于以太网和TCP/IP

2020-06-24 09:48:07 120

原创 物联网的一点点认知总结

正好接触一个智慧园区的项目,一点点在了解物联网相关的内容,看了一段时间,简单总结下,好分析下自己哪些内容还没有理解清楚。一、物联网架构物联网的架构一般分为感知层、网络层和应用层。感知层由各种传感器以及传感器网关构成,主要是硬件采集信息;网络层由各种私有网络、互联网、有线或无线通信网络等组成,主要是利用网络技术来传递和处理感知层获取的信息;应用层是业务数据的来源,物联网平台都是建立在该层上。二、物联网协议物联网协议通常有两种类型的协议:一种是接入协议,一种是通讯协议。1.接入协议接入协

2020-06-22 18:10:44 162

原创 机器学习入门研究(十八)—聚类的模型评估

目录轮廓系数sklearn中的API在机器学习入门研究(十七)— Instacart Market用户分类中我们通过sklearn中的KMeans来将用户分成了三类人,那么我们怎么评估这个模型的好与不好呢?轮廓系数从上图中,我们知道聚类最后将这些点分成了2类,聚类最后的结果就是:内部的距离最小化,外部的距离最大化。我们使用轮廓系数来描述,其中公式如下:其中里面的bi...

2020-02-24 15:47:41 100

原创 机器学习入门研究(十六)—K-means

无监督学习相对于前面学习的各种监督学习的算法,都是既有特征又有目标值的学习;而无监督学习就是没有目标值,只有特征值,要根据这些特征值自行训练,然后在进行分类预测。分类聚类:K-means(K均值)、均值漂移聚类、基于密度的聚类方法(DBSCAN)、用高斯混合模型(GMM)的最大期望(EM)聚类、凝聚层次聚类、图团体检测(Graph Community Detection)降维:PC...

2020-02-21 18:20:16 131

原创 机器学习入门研究(十七)— Instacart Market用户分类

Instacart Market Basket Analysis是一个经典的顾客行为预测案例。通过分析开源大约三百万的订单数据来预测用户的购买商品类别的行为。1.获取数据我们从官网中下载到对应的数据,放到本地目录之后,读取到数据如下:(1)order_products__prior.csv:订单与商品信息。对应的字段有:order_id,product_id, add_to_cart...

2020-02-21 18:17:28 187

原创 机器学习入门研究(十五)-模型保存与加载

之前我们在使用模型进行预测的时候,都是需要重新训练,那经过一段时间模型训练的准确率已经可以达到一定的标准,那么我们可以通过保存模型和加载模型的方式来完成预测,不需要每次都去训练模型。1.模型的保存在sklearn中提供了API来实现该功能。...

2020-02-17 14:59:03 108

原创 机器学习入门研究(十四)-逻辑回归

目录概述Sigmoid函数损失函数优化损失对应的sklearn的API实例数据集特征总结概述分类模型,用于估计某种事物的可能性,常用于以下场景:广告点击率:是否被点击垃圾邮件:是否为垃圾邮件是否患病金融诈骗:是否是金融诈骗虚假账号:是否是虚假账号上述场景中的共同点:都是二分类问题,存在一个正例和一个反例。逻辑回归的原理就是将...

2020-01-21 17:15:06 65

原创 机器学习入门研究(十三)-岭回归

目录前言欠拟合和过拟合正则化L1正则化L2正则化岭回归前言前段时间在忙项目合同的事情,这个学习耽误了一段时间,趁着年前不忙的时候,抓紧时间学完。欠拟合和过拟合欠拟合定义:一个假设在训练集上不能得到更好的拟合,并且在测试集中也不能得到很好的拟合数据。原因:模型过于简单,学习数据的特征少解决办法:增加数据的特征数量过拟合定义:一个假设在训练...

2020-01-09 17:26:41 212

原创 机器学习入门研究(十二)-线性回归

目录回归线性回归定义广义的线性模型线性模型之线性关系线性模型之非线性关系线性回归模型的求解损失函数正规方程PS几个数学知识:求解过程梯度下降PS数学小知识求解过程区分两个概念梯度下降分类sklearn中对应的API线性回归实例1.正规方程回归性能评估sklearn中的API对应上述实例的计算总结回归...

2020-01-09 13:20:54 64

原创 机器学习入门研究(十一)-随机森林分析泰坦尼克生存的情况

目录随机森林集成学习方法随机森林原理sklearn的API实例分析总结在机器学习入门研究(九)-决策树知道决策树缺点在于容易出现多度拟合,在解决这个问题的时候有一种方案就是随机森林。随机森林是一个集成学习方法。集成学习方法集成学习方法就是建立几个模型组合来解决单一预测问题。工作原理:生成多个分类器/模型,各自独立的学习和作出预测。这些预测最后组...

2019-12-05 16:19:39 132

原创 机器学习入门研究(十)-决策树分析泰坦尼克生存的情况

目录需要分析的问题流程分析总结需要分析的问题有一些泰坦尼克的数据集,里面的数据的特征包括了姓名、票的类别、存活、乘坐班、年龄、登录、目的地、房间、票、船和性别。我们看下大体的数据集内容如下:pclass :社会阶层的代表:(1st,2 st,3 st)其中这些数据集中年龄数据存在缺失。我们在分析该问题的时候,首要的第一步就是要选好特征值和目标值,我们要挑选...

2019-12-04 13:18:23 172

原创 机器学习入门研究(九)-决策树

目录认识决策树信息熵1.信息2.信息熵ID3算法C4.5算法GARTsklearn的API鸢尾花实例决策树的可视化的API总结认识决策树其实就是程序的if-else结果。我们看一下这个例子,已知年龄、工作、房子、信贷情况来判断是否把贷款给个人。我们通过这些样本内容进行学习,来预测如果已知某个人的这些特征对应的特征值的时候,就可以判断是否...

2019-12-03 11:51:09 59

原创 机器学习入门研究(八)-朴素贝叶斯算法

目录贝叶斯公式朴素贝叶斯算法1.定义2.应用场景3.实例分析实例多项式模型伯努利模型对比多项式模型和伯努利模型在Sklearn中的API多项式分布模型伯努利模型高斯模型实例总结贝叶斯公式如果交换条件概率中的条件与结果,即已知P(x|h)怎么去求解P(h|x)(1)P(h|x)在事件x发生之后,h事件发生的概率。称为后...

2019-11-27 16:47:13 66

原创 机器学习入门研究(七)-模型选择与调优

目录1.超参数搜索2.超参数调优过程3.网络搜索原理交叉验证对应的sklearn 的API实例4.随机搜索原理对应的sklearn的API实例5.贝叶斯优化算法主要思想PS先验分布、后验分布、似然估计两个过程与网格搜索、随机搜索区别可以做贝叶斯优化的API实例总结在上次KNN算法中,其中有个K值,只是随机取了一个数值来...

2019-11-21 14:22:28 218

原创 机器学习入门研究目录

最近在看机器学习的一些内容,将自己看的内容总结一下,一方面加深自己的理解,另一方面享受这个学习的过程。会持续更新,如果有问题的地方,很希望大家一起讨论学习。机器学习之入门研究(一)机器学习入门研究(二)机器学习入门研究(三)-PyCharm创建第一个工程(Mac)机器学习入门研究(四)-评价指标-自我感觉总结的还不错的机器学习入门研究(四)-评价指标-回归和聚类机器学习入门...

2019-11-15 11:33:28 43

原创 机器学习入门研究(六)-KNN算法

目录转换器和预估器转换器预估器KNN算法定义算法伪代码描述k值的选择几个距离计算实例sklearn中的API实例优缺点转换器和预估器转换器主要用于特征工程。我们之前在特征工程中介绍了好几个转换器,像DictVectorizer、StandardScaler等。这些转换器类都是继承Transformer。在使用的过程中我们的一般步骤如下...

2019-11-15 11:29:56 44

原创 机器学习入门研究(六)-特征工程之特征预处理

目录1.定义2.为什么要有特征的预处理归一化1.定义2.API标准化1.定义2.API总结上一篇文章机器学习入门研究(五)-特征工程之特征提取提到了特征工程的特征提取,本文将总结特征工程中的另外一个特征预处理。1.定义特征预处理就是通过一些转换函数将特征数据转换成适合算法模型的特征数据的处理过程。也就是将数据值数据进行无量纲化。2.为什么要有特征...

2019-11-12 12:05:48 122

原创 机器学习入门研究(五)-特征工程之特征提取

目录为什么要用特征工程特征提取(Feature Extraction)1.目的2.对应的工具3.三种方法4.对应的sklearn的API(1)字典特征提取(2)文本特征提取总结特征是从数据中抽取出来的对结果有预测有用的信息,可以是文本或者数据。Feature Engineer。特征工程就是把原始数据转换成特征的过程。特征工程对数据进行处理,使得特征在机器...

2019-11-09 13:29:31 213

原创 机器学习入门研究(四)-评价指标-回归和聚类

目录一、回归1.均方误差MSE2.均方根误差(RMSE)3.平均绝对误差MAE4.确定性系数R2二、聚类1.ARI2.轮廓系数三、总结上一篇机器学习入门研究(三)-评价指标-自我感觉总结的还不错的介绍了关于分类模型中的评价指标,这篇主要介绍回归和聚类模型中的评价指标。一、回归1.均方误差MSEMean Squared Error,也称为L2损失,...

2019-10-30 10:34:01 73

原创 机器学习入门研究(四)-评价指标-自我感觉总结的还不错的

目录一、评价指标二、混淆矩阵(Confusion Matrix)1.简单介绍2.二分类混淆矩阵3.多类别混淆矩阵三、准确率(Accuracy)1.二分类的混淆矩阵2.多分类混淆矩阵四、精确率(Precision)1.二分类的混淆矩阵2.多分类混淆矩阵五、召回率 (Recall)1.二分类的混淆矩阵2.多分类混淆矩阵3.对比精确率和...

2019-10-29 13:42:36 100

原创 机器学习入门研究(三)-PyCharm创建第一个工程(Mac)

看了一段时间的机器学习,就想着跑一个实例来看看到底是怎么回事记录下从配置环境开始,到成功的运行第一个实例,这个过程有一些自己也不理解的东西,希望等着在深入学习之后,再回过来看下。1.安装PyCharm在pycharm官网上下载对应的dmg文件,进行安装2.安装python参考网站:https://blog.csdn.net/timtian008/article/details/...

2019-10-16 14:11:29 190

原创 机器学习入门研究(二)

目录一、十大算法二、不同的分类标准三、如何选择算法四、关键术语一、十大算法下面的图列举了最常用的机器学习算法,大部分的问题都可以通过它们解决二、不同的分类标准机器学习的算法根据不同的分类标准,有不同的分类,下图简单的给出了几种分类标准三、如何选择算法四、关键术语主要通过思维导图的方式进行简单说明下面四个概念:标签、特征、模型和样本,等...

2019-10-11 10:50:49 32

原创 机器学习之入门研究(一)

目录一、AI &机器学习 &深度学习二、机器学习的概述概念适合情况四种领域目前应用一些场景三、机器是如何学习四、机器学习发展的五大流派五大流派演化阶段五、机器学习的要素模型策略算法三者直接的联系六、总结一、AI &机器学习 &深度学习在刚开始接触机器学习这个概念的时候,自己对AI、机器学习和深度...

2019-10-11 10:28:28 66

原创 Retrofit的源码解读之Get请求

目录简单的Http请求的几个步骤Retrofit的实现过程创建Retrofit对象1)设置了Http请求依赖的架构默认的为OkHttp,实例化OkHttpClient对象2)根据不同的平台返回默认的回调执行器和Call执行器3)设置数据转换器创建请求网络1)创建自定义的网络接口2)通过动态代理解析出对应的请求,得到网络接口类3)发送请求总结简单的H...

2019-09-11 11:08:35 39

原创 LinkedHashMap源码(JDK1.7)解读

上一篇主要HashMap的源码解读。这次在研究下LinkedHashMap。LinkedHashMap继承HashMap,增加一个双向链表来进行解决哈希冲突。一、构造函数构造函数同HashMap,调用的HashMap的构造函数,增加了一个accessOrder变量,根据调用不同的构造函数来进行设置true或者false。同时复写了init()方法, @Override ...

2019-08-12 13:32:37 24

原创 HashMap源码(JDK1.7)解读

目录一、构造函数二、添加元素put()1.链表2.存放数据put()二、取元素get()三、其他方法和知识点四、与HashTable的区别HashMap其实就是存储一系列的链表数组,用链表来解决哈希冲突。一、构造函数有四种构造函数,最终调用到可以设置初始化容量initialCapacity和负载因子loadFactor的构造函数 public ...

2019-08-09 14:30:56 33

原创 Android 解决新浪分享之后回调出现两个icon进行选择

目录问题起源第一次尝试源码分析1.实例化WbShareHandler2.发送消息3.处理发送到微博SDK上的消息4.另外一个icon第二次尝试总结问题起源这几天翻看了项目中以前添加的新浪分享功能,发现有个问题是虽然添加了WbShareCallback,但是并没有真正的实现回调,而只是放了代码而已,所以就想着把新浪分享之后的回调给加进去。结果就开始各种踩坑...

2019-05-30 15:15:19 437 1

原创 Support v4 24.0.0的在初始化中setUserVisibleHint中获取Context为null

目录问题追溯实现Fragment的延迟请求接口的解决方案升级到24.0.0版本的变化Debug查看setUserVisibleHint()1)在ViewPager中初始化Item,加载Fragment时,第一次调用setUserVisibleHint()2)设置ViewPager的第一个Fragment可见时,即在初始化时第二次调用到setUserVisibleHin...

2019-05-08 09:46:50 319

原创 OkHttp的源码解读

最近这几天在研究OkHttp的源码,就顺便整理了一些文档。Retrofit-OkHttpCall源码解读OkHttp之DispatcherOkHttp之getResponseWithInterceptorChain(一)OkHttp之getResponseWithInterceptorChain(二)OkHttp的Okio在CacheInterceptor中的应用经过一段时...

2019-03-29 13:57:28 133

原创 OkHttp之getResponseWithInterceptorChain(一)

目录前言拦截器的加入RealInterceptorChainRetryAndFollowUpInterceptor1)创建StreamAllocation2)其他几个步骤3)总结BridgeInterceptor前言前面介绍了OkHttp之Dispatcher,Dispatcher主要就是对异步请求进行分发和执行,那么对于OkHttp到底是怎么进行完...

2019-03-29 13:12:14 202

原创 OkHttp之getResponseWithInterceptorChain(二)

接上篇OkHttp之getResponseWithInterceptorChain(一)继续目录CacheInterceptor构造方法CacheCacheStrategyCacheInterceptor的具体逻辑总结ConnectInterceptorStreamAllocation总结CallServerInterceptorOkio在Cac...

2019-03-29 13:11:58 143

原创 OkHttp的Okio在CacheInterceptor中的应用

目录Okio的诞生OKio的简单介绍缓存模块超时机制几个重要的类简单的读写操作一个简单的java+socket来实现请求服务器在CacheInterceptor的运用1)写请求的头部header2)写请求体body的数据3)向服务器发送数据4)接收服务器的返回的头部header5)读取服务器返回的response的body数据总结Okio...

2019-03-29 11:34:18 93

原创 OkHttp之Dispatcher

目录成员变量1)最大值2)空闲回调3)线程池4)三个队列同步请求异步请求总结异步请求的执行策略。在OkHttp中承担着对同步和异步请求的分发和回调。今天主要从源码的角度看下这个过程是怎么实现的。成员变量1)最大值//最多并发请求的个数 private int maxRequests = 64;//每个主机最大请求数private...

2019-03-05 16:14:03 223

原创 Retrofit-OkHttpCall源码解读

OkHttp的同步和异步请求Retrofit在使用OkHttpCall进行网络请求的时候,里面其实就是封装了OkHttp来进行网络请求。在分析OkHttpCall之前,先看下OkHttp怎么来实现同步和异步请求。1)同步请求 OkHttpClient client = new OkHttpClient(); Request request = new Request.Builder...

2019-03-04 15:09:06 160

原创 ArrayList源码解读

前言因为在看其他文章的时候,其中提到ArrayList其实就是对数组的一些操作细节封装起来,对集合的操作,实际上是对里面的数组进行操作,相比较于数组,ArrayList可以动态扩容的。所以就引起了自己去查看ArrayList的源码实现。简单的分析下主要几个方法的实现过程1、几个成员变量 //默认的数组的容量 private static final int D...

2019-02-26 17:06:41 23

原创 Java动态代理InvocationHandler的一点感悟

目录初衷动态代理实例讲解总结初衷在研究Retrofit源码中,在创建网络请求接口实例时,就是通过Java动态代理模式,动态生成网络请求接口的代理类,并将代理类的实例创建交给了InvocationHandler来具体生成对应平台的代理对象。对应的代码如下:public <T> T create(final Class<T> service) {...

2019-02-22 14:26:51 1489

提示
确定要删除当前文章?
取消 删除