<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[zartzwj的专栏]]></title><description><![CDATA[记录点滴成长]]></description><link>https://blog.youkuaiyun.com/zartzwj</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; zartzwj]]></copyright><item><title><![CDATA[随笔——java中的接口、继承和多态]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/104274761</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/104274761</guid><author>zartzwj</author><pubDate>Tue, 11 Feb 2020 12:09:23 +0800</pubDate><description><![CDATA[一、多态
Java中的多态体现在一个子类对象(实现类对象)既可以给这个子类(实现类对象)引用变量赋值，又可以给这个子类(实现类对象)的父类(接口)变量赋值。
举个例子，一个Child类，继承与Father类，那么这个Child类的实现类，既可以赋值给一个Child类型的引用，也可以赋值给一个Fatcher类型的引用。
所以，多态的表现就是父类的引用指向的是子类对象。
多态的前提是必...]]></description><category></category></item><item><title><![CDATA[iOS 响应式编程]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/103711283</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/103711283</guid><author>zartzwj</author><pubDate>Wed, 25 Dec 2019 14:21:15 +0800</pubDate><description><![CDATA[响应式编程，本质上是对数据流或某种变化所作出的反应，但是这个变化什么时候发生是未知的，所以他是一种基于异步、回调的方式在处理问题。
如果单从上面一句话，可能理解有点问题。简单点理解，就是变化产生，回调告知。可以简单举个常见的例子。
int b = 2;
int c = 3;
a = b + c;
//这时，a的值是5;
b = 5;
//这时，a的值还是5，并没有因为b的值发生了变...]]></description><category></category></item><item><title><![CDATA[iOS 函数式编程、链式编程]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/103711281</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/103711281</guid><author>zartzwj</author><pubDate>Wed, 25 Dec 2019 11:29:11 +0800</pubDate><description><![CDATA[最近看一本书，提到了关于函数式编程和响应式编程，就特地在网上找资料，整理整理，理解理解其差异，就顺带写了这个。
一、函数式编程
首先，要去了解了解block，可以看看这篇文章Objective-C中的block。
1、解释
Functional Programming
函数式编程其实是一种编程思想、编程方式，这个编程思想的重点是在函数上的理解，特别是对函数状态的理解，更深的是函数在...]]></description><category></category></item><item><title><![CDATA[Objective-C中的block]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/103695193</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/103695193</guid><author>zartzwj</author><pubDate>Tue, 24 Dec 2019 11:26:22 +0800</pubDate><description><![CDATA[在Objective-C的开发过程中，我们经常用到block，这里就简单总结一下block在Objective-C的几种使用方式。
1、简单介绍一下block
代码块Block是对C语言的扩展,用来实现匿名函数的特性,Block是一种特殊的数据类型,其可以正常定义变量、作为参数、作为返回值,特殊地,Block还可以保存一段代码,在需要的时候调用,目前Block已经广泛应用于iOS开...]]></description><category></category></item><item><title><![CDATA[Hash的Md5算法]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/103505154</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/103505154</guid><author>zartzwj</author><pubDate>Wed, 11 Dec 2019 14:48:08 +0800</pubDate><description><![CDATA[做项目的时候，经常会遇到用户登录方面的功能。用户登录，就涉及到账号和密码的问题，在后台数据库中，密码不可能存为明码，也就意味着加密，常见的就是对密码做Hash，或者为了安全起见，也会对密码追加salt，再做Hash。
MD5
这是Hash中最常见的算法之一，也是最容易理解和实现的。
md5的固定长度是128位，也就是16个字节。当我们用16进制数进行表示的时候，字符串长度就是32个...]]></description><category></category></item><item><title><![CDATA[关于iOS 13中TableView截屏内容不完整问题]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/103418592</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/103418592</guid><author>zartzwj</author><pubDate>Thu, 05 Dec 2019 11:35:22 +0800</pubDate><description><![CDATA[项目中有截屏功能，在iOS13之前，截屏的时候，可以将TableView中的内容都可以截取出来，包括在屏幕中不显示的地方。但是自从升级13后，截屏的内容不能完整显示了，只能看到当前屏幕可视区域内的内容了。
发现问题就需要解决问题，所以查看了截屏的过程，以及中间tableview的变化。总算找到解决的方案了：
    //3、tableView内容
    CGPoint saved...]]></description><category></category></item><item><title><![CDATA[IOS网络请求的简单封装设计]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86625902</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86625902</guid><author>zartzwj</author><pubDate>Tue, 22 Jan 2019 22:01:00 +0800</pubDate><description><![CDATA[
  
    
            做ios项目已经几年了，最初是借用别人的框架，然后再框架上去修改。后来自己项目开始自己学着去写框架结构，不管是用什么样的框架，里面网络层的设计都是比较固定的，所以针对网络层的部分，我单独把这个地方进行了重构，整理成了现在的模样。现在把我的思路整理一下，希望大家如果有什么好的意见或者建议，可以提出来。共同进步。
1、整体思路
整体的思路也是沿用MVC的结构。...]]></description><category></category></item><item><title><![CDATA[无监督学习]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86625900</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86625900</guid><author>zartzwj</author><pubDate>Tue, 22 Jan 2019 14:51:00 +0800</pubDate><description><![CDATA[
  
    
            1、无监督学习的类型
无监督学习常见的两种类型是：数据集变换和聚类。
数据集变换，就是创建数据集新的表示算法，与数据的原始原始表示相比，新的表示可能更容易被人或其他机器学习算法所理解。
常见的应用有降维，就是对于许多特征表示的高维数据，找到表示该数据的一种新方法，用较少的特征就可以概括其重要特性。另一个应用就是找到“构成”数据的各个组成部分，比如对文本文档...]]></description><category></category></item><item><title><![CDATA[监督学习(九)——核支持向量机SVM]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86578605</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86578605</guid><author>zartzwj</author><pubDate>Mon, 21 Jan 2019 15:41:00 +0800</pubDate><description><![CDATA[
  
    
            1、线性模型与非线性特征
线性空间在低维空间中非常受限，这是因为线和平面的灵活性很受限。
import mglearn
from sklearn.datasets import make_blobs
import matplotlib.pyplot as plt
from sklearn.svm import LinearSVC

X, y = make_...]]></description><category></category></item><item><title><![CDATA[监督学习(八)——决策树集成：梯度提升回归树]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86578601</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86578601</guid><author>zartzwj</author><pubDate>Fri, 18 Jan 2019 17:51:00 +0800</pubDate><description><![CDATA[
  
    
            梯度提升回归树是另一种决策树集成方法，通过合并多个决策树来构建一个更为强大的模型。虽然名字中含有“回归”，但这个模型既可以用于回归也可以用于分类。
与随机森林方法不同，梯度提升采用连续的方式构造树，每棵树都试图纠正前一棵树的错误。默认情况下，梯度提升回归树中没有随机化，而是用到了强预剪枝。梯度提升树通常使用深度很小(1到 5 之间)的树，这样模型占用的内存...]]></description><category></category></item><item><title><![CDATA[监督学习(七)——决策树集成：随机森林]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86578600</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86578600</guid><author>zartzwj</author><pubDate>Fri, 18 Jan 2019 15:02:00 +0800</pubDate><description><![CDATA[
  
    
            决策树经常会对训练数据进行过拟合，也就是训练数据精度高，而预测结果很低。随机森林就是许多决策树的集合，每一棵决策树跟其他决策树都不同，每棵树都会不同方式的过拟合，那么对这些树的结果取平均值，就可以降低过拟合。
随机森林的随机方法有两种：
1、通过选择用于构造树的数据点；
2、通过选择每次划分测试的特征。
一、构造随机森林
构造一个随机森林模型，需要先确定用...]]></description><category></category></item><item><title><![CDATA[适配器模式]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86578595</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86578595</guid><author>zartzwj</author><pubDate>Tue, 15 Jan 2019 22:54:00 +0800</pubDate><description><![CDATA[
  
    
            什么是适配器？
举个例子，我们有些人买手机，买的是港版，会发现港版的电源插头跟我们的不一样，基本都是三角，而且它的三角还跟国内的不一样，导致我们必须用一个转换头才行。为了让港版电源插头在国内也能使用，就用转换头，这个转换头就是适配器。
适配器模式
适配器模式，就是连接两种不同种类的对象，使其毫无问题地协同工作。适配器的主要作用是把被适配者的行为传递给管道另...]]></description><category></category></item><item><title><![CDATA[pandas —— Series]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86578598</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86578598</guid><author>zartzwj</author><pubDate>Sun, 13 Jan 2019 22:32:00 +0800</pubDate><description><![CDATA[
  
    
            pandas采用了很多Numpy的代码风格，但是最大的不同在于pandas用来处理表格型或者异质类数据。而Numpy则相反，它更适合处理同质型的数值类数组数据。
Series
Series是一种一维的数组型对象，它包含了一个值序列，并且包含了数据标签，也就是索引。
import pandas as pd
from pandas import Series,...]]></description><category></category></item><item><title><![CDATA[监督学习(三)——线性模型：OLS]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86578593</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86578593</guid><author>zartzwj</author><pubDate>Sun, 13 Jan 2019 21:35:00 +0800</pubDate><description><![CDATA[
  
    
            1、用于回归的线性模型
线性模型的预测公式一般为：
y = w[0]*x[0]+w[1]*x[1]+ ··· +w[p]*x[p]+b
上面的公式中，x[0]到x[p]标识的是单个数据的特征，w[0]到w[p]是对应特征的权重，y是预测结果，b是偏移量。
如果是单一变量，公式就变为：
y = w*x + b
就变成一条直线方程，这时候w就是斜率，b是截距。...]]></description><category></category></item><item><title><![CDATA[监督学习(二)——K近邻(K-NN)]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86578590</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86578590</guid><author>zartzwj</author><pubDate>Sun, 13 Jan 2019 18:32:00 +0800</pubDate><description><![CDATA[
  
    
            k-NN 算法可以说是最简单的机器学习算法。构建模型只需要保存训练数据集即可。想要对新数据点做出预测，算法会在训练数据集中找到最近的数据点，也就是它的“最近邻”。
1、k近邻分类
k近邻算法最简单的方式就是只有一个最近邻，也就是距离预测数据点最近的训练数据点。如果选择任意的k个近邻时，就会使用“投票法”来指定分类标签。简单点理解，就是在测试数据点周围找寻k...]]></description><category></category></item><item><title><![CDATA[监督学习(一)——几个概念]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86578591</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86578591</guid><author>zartzwj</author><pubDate>Thu, 10 Jan 2019 23:51:00 +0800</pubDate><description><![CDATA[
  
    
            今天主要介绍几个概念信息，用比较浅显易懂的方式来阐述。
1、监督学习
用户将成对的输入和预期输出数据提供给算法，算法从中找到一种方法（具体方法不用深究），然后根据给定输入给出预期输出。这就是监督学习的过程。而这个过程中，从输入—输出对中进行学习的机器学习算法叫作监督学习算法。
什么时候使用监督学习，可以有一个简单的说明：
每当想要根据给定输入预测某个结果，...]]></description><category></category></item><item><title><![CDATA[numpy实现随机漫步]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/86578588</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/86578588</guid><author>zartzwj</author><pubDate>Sun, 06 Jan 2019 18:02:00 +0800</pubDate><description><![CDATA[
  
    
            随机漫步Random Walk
随机漫步是一种数学统计模型，它由一连串轨迹所组成，其中每一次都是随机的，它能用来表示不规则的变动形式，如同一个人乱步所形成的随机记录。
在这里用一种简单的模式来实现，从0开始，步进为1或者-1，两种步进的发生的概率相等。
1、用random模块实现
import random
import matplotlib.pyplot...]]></description><category></category></item><item><title><![CDATA[图片相似判断]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/85110471</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/85110471</guid><author>zartzwj</author><pubDate>Wed, 19 Dec 2018 22:50:00 +0800</pubDate><description><![CDATA[
  
    
            上一篇是做的视频镜头分割，虽然分割成功了，但是视频中有一些镜头中，包含一些含有logo的视频帧，这部分视频是我不想要的，所以就需要识别含有logo图像的，然后把这些帧标记出来。
看了很多其他的实现思路，提到了哈希算法，包括有均值哈希算法、差值哈希算法、感知哈希算法。开始的时候，这三种算法都试过，发现都有问题，准确率很低，这时仔细看了每一帧的logo图，才发...]]></description><category></category></item><item><title><![CDATA[视频镜头分割]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/85043369</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/85043369</guid><author>zartzwj</author><pubDate>Sat, 15 Dec 2018 23:53:00 +0800</pubDate><description><![CDATA[
  
    
            最近学习视频和图像的处理，刚好要先将视频进行预处理。因为需要针对不同的镜头来做不一样的处理，所以在做进一步处理之前，要将整段视频进行分割处理。
先是在网上搜索了一下，找到一篇可以借鉴的文章 《视频镜头分割与关键帧提取》。里面把整个算法思路都说的很清楚，虽然没有具体的代码实现，这个不重要，思路比代码更重要，按照对应的思路，通过python写出了具体的实现代码...]]></description><category></category></item><item><title><![CDATA[单例模式]]></title><link>https://blog.youkuaiyun.com/zartzwj/article/details/84868659</link><guid>https://blog.youkuaiyun.com/zartzwj/article/details/84868659</guid><author>zartzwj</author><pubDate>Sun, 23 Sep 2018 17:48:00 +0800</pubDate><description><![CDATA[
  
    
              单例模式，其实从字面意思很好理解，就是有且只有一个，也就是在程序中有且只有一个实例，任何时候对其的访问，返回的都是同一个实例。这就是面向对象中的常见的单例模式。
  单例模式的意图就是使得类的一个对象实例成为系统中的唯一实例。这时候就需要一种只允许生成对象唯一实例的机制，“阻止”所有其他想要生成对象的可能。所以，用静态的类方法来限制实例化的过程，从而达...]]></description><category></category></item></channel></rss>