<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[CallMeSP的博客]]></title><description><![CDATA[写更优雅的代码，像写一手漂亮的字。]]></description><link>https://blog.youkuaiyun.com/CallMeSP</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; CallMeSP]]></copyright><item><title><![CDATA[Linux_python使用过程中的一些报错处理]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/86566409</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/86566409</guid><author>CallMeSP</author><pubDate>Sun, 20 Jan 2019 21:19:32 +0800</pubDate><description><![CDATA[


error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    
    ----------------------------------------
Command &quot;/usr/bin/python3 -u -c &quot;import setuptools, tokenize;__file__='/tmp/pip-ins...]]></description><category></category></item><item><title><![CDATA[机器学习入门-神经网络&BP算法的实现]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/81536183</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/81536183</guid><author>CallMeSP</author><pubDate>Thu, 09 Aug 2018 14:32:14 +0800</pubDate><description><![CDATA[在MP神经元模型之中，神经元接收到来自其它n个神经元传递过来的输入信号，这些输入信号通过带权重的连接2进行传递，神经元接收到的总输入值与神经元的阈值进行比较，然后通过激活函数处理以产生神经元的输出。一般而言选取sigmoid函数作为激活函数来使用，因为其相对激活函数来说的连续、光滑等性质。把许多个这样的神经元按照一定的层次结构连接起来，就得到了神经网络。 


在神经网络中，BP算法是最杰出的代表...]]></description><category></category></item><item><title><![CDATA[机器学习入门-决策树（二）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/81412036</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/81412036</guid><author>CallMeSP</author><pubDate>Sat, 04 Aug 2018 16:10:46 +0800</pubDate><description><![CDATA[这篇文章主要是带来机器学习西瓜书决策书这一章的编程习题。相比机器学习实战中的对应章节有了一定的难度上的提升，主要体现在数据集中加入了连续值，对于连续值的处理不能够和离散值同等对待，否则其不同值各自分为一类显然信息增益最大，但这样在实际的应用中并没有意义甚至适得其反。这就涉及到了对于连续值的处理。



连续值处理

最简单的策略就是采用二分法对于连续值进行处理，这正是C4.5决策树算法中采用的机制...]]></description><category></category></item><item><title><![CDATA[机器学习入门-支持向量机]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/81184462</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/81184462</guid><author>CallMeSP</author><pubDate>Tue, 24 Jul 2018 21:07:41 +0800</pubDate><description><![CDATA[基本定义



给定一个训练样本集，分类学习最基本的想法就是基于训练集Ｄ在样本空间中找到一个划分超平面，将不同的类别的样本分开。这个划分超平面越鲁棒，对未见示例的泛化能力就越强。划分超平面可通过如下线性方程来描述。WTX+b=0WTX+b=0 W^{T}X+b=0其中w=(w1;w2;...;wd)w=(w1;w2;...;wd)w=(w_{1};w_{2};...;w_{d})是法向量，决定了超...]]></description><category></category></item><item><title><![CDATA[机器学习入门-线性模型（二）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/81138043</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/81138043</guid><author>CallMeSP</author><pubDate>Fri, 20 Jul 2018 20:16:05 +0800</pubDate><description><![CDATA[这篇博客就稍微再补充一点理论性的知识。



关于最小化代价函数的几种算法。


Gradient Descent
Normal equation
Conjugate gradient
BFGS
L-BFGS


由于难度原因本篇只关注gradient descent梯度下降法，这个方法应用比较广泛,在无法使用正规方程法的许多条件下依然可以奏效，其对比正规方程法的优点是在数据量较大的时候仍然能取得...]]></description><category></category></item><item><title><![CDATA[机器学习入门-线性模型（一）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/80206944</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/80206944</guid><author>CallMeSP</author><pubDate>Sat, 05 May 2018 19:37:56 +0800</pubDate><description><![CDATA[本次学习的内容是《机器学习》一书中的线性模型这一章节另外这一章节理论性的东西更多，所以还学习了《Machine Learning in Action》中的Logistic回归，实战了一些简单的例子作为互补参考。

代码以及测试用例： 
https://github.com/CallMeSp/MachineLearning.git



正文

先说一个数学符号： 
arg min f(x) 是指使...]]></description><category></category></item><item><title><![CDATA[机器学习入门-贝叶斯分类器（一）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/80058015</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/80058015</guid><author>CallMeSP</author><pubDate>Mon, 23 Apr 2018 22:50:35 +0800</pubDate><description><![CDATA[

今天学习的内容是贝叶斯分类器。 
在正式介绍之前，先说两个名词：


标称型数据：只在有限的目标集中取值，如真与假（主要用于分类）
数值型数据：可从无限的数值集合中取值（主要用于回归分析）






贝叶斯决策论

Bayes Decision theory是概率框架下实施决策的基本方法。对分类任务来说，在所有相关概率都已知的理想情形下，贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的...]]></description><category></category></item><item><title><![CDATA[机器学习入门-决策树（一）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/80030493</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/80030493</guid><author>CallMeSP</author><pubDate>Sat, 21 Apr 2018 15:58:51 +0800</pubDate><description><![CDATA[上一篇文章学习了kNN算法，它能完成许多分类任务，但是它最大的缺点就是无法给出数据的内部含义，而相比之下决策树的优势就是


  
  数据形式非常容易理解
  可以持久化分类器，而kNN则必须每次分类时重新学习一遍  
  


决策树同样是一类常见的机器学习算法，使用它的目的是希望能从给定训练数据集学得一个模型用以对新示例进行分类。 
决策树算法主流上有ID3、CART、C4.5等。 
在讨论...]]></description><category></category></item><item><title><![CDATA[机器学习入门--kNN算法]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/79793326</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/79793326</guid><author>CallMeSP</author><pubDate>Mon, 02 Apr 2018 19:15:55 +0800</pubDate><description><![CDATA[新的学习征程

之前的blog主要是关于Android和Nodejs的一些开发学习笔记，在经历了一段时间的学习和实习之后，也拿到了几个大厂offer，痛定思痛下决心在大四参加考研，现在考研成功，也要继续开始新的学习了，接下来的学习将主要以Machine Learning为主，由于很多主流的书籍论文都是英文，希望也能锻炼着以后用英文来写一些学习记录blog。我个人之前是没有过任何机器学习相关的学习经...]]></description><category></category></item><item><title><![CDATA[java反射机制扫盲]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/78938124</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/78938124</guid><author>CallMeSP</author><pubDate>Sat, 30 Dec 2017 16:39:25 +0800</pubDate><description><![CDATA[反射机制是什么反射机制是在运行状态中，对于任意一个类，都能够知道这个类的所有属性和方法；对于任意一个对象，都能够调用它的任意一个方法和属性；这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。**反射机制能做什么** 
反射机制主要提供了以下功能：
在运行时判断任意一个对象所属的类；
在运行时构造任意一个类的对象；
在运行时判断任意一个类所具有的成员变量和方法；
在运行时调用任]]></description><category></category></item><item><title><![CDATA[Kotlin 从入门到实战（二）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/74505788</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/74505788</guid><author>CallMeSP</author><pubDate>Wed, 05 Jul 2017 22:56:41 +0800</pubDate><description><![CDATA[上一篇文章的地址是：http://blog.youkuaiyun.com/callmesp/article/details/74372582这次带来的是一个 当当网 的爬虫app。 
先放出GitHub链接：https://github.com/CallMeSp/DangDang先看一下结构分析图： 
功能不复杂，但是有Activity、Adapter、自定义view、MVP结构、SQLite等一个app有的几]]></description><category></category></item><item><title><![CDATA[Kotlin 从入门到实战（一）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/74372582</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/74372582</guid><author>CallMeSP</author><pubDate>Wed, 05 Jul 2017 09:56:51 +0800</pubDate><description><![CDATA[花了四五天的时间看完了kotlin-docs和kotlin-for-android-developers并写了一个小app实战一下。于是打算写两篇文章，第一篇记录一下kotlin相对java的一些不同，kotlin的一些独特用法，主要是来入个门，第二篇文章带来一个实战，用kotlin实现了一个爬虫类的app。
如何定义变量
Java 定义变量的写法：String string = "Hello";基]]></description><category></category></item><item><title><![CDATA[Rxjava2源码浅析（三）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/65448049</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/65448049</guid><author>CallMeSP</author><pubDate>Thu, 23 Mar 2017 19:33:14 +0800</pubDate><description><![CDATA[首先开始填坑，上篇文章最后的问题还没有解决，subscribeOn是如何切换线程的。先回顾一下： 
使用方法： observable.subscribeOn(Schedulers.newThread());我们直接看它重写的abstract方法subscribeActual@Override
    public void subscribeActual(final Observer<? super]]></description><category></category></item><item><title><![CDATA[Rxjava2源码浅析（二）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/63261314</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/63261314</guid><author>CallMeSP</author><pubDate>Sat, 18 Mar 2017 23:58:38 +0800</pubDate><description><![CDATA[上一篇文章：Rxjava2源码浅析（一）  
分析了最基础的一套流程，今天呢就略加一些常用的操作吧。使用范例 
上次我们在建立关系的时候就是这样光秃秃的一句话observable.subscribe(observer);这在平时使用的时候显然是不够用的，Rxjava的优势是什么？切换线程肯定要算一个啊，所以我们看一下下面这种使用方法。observable.subscribeOn(Schedulers]]></description><category></category></item><item><title><![CDATA[Rxjava2源码浅析（一）]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/62425688</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/62425688</guid><author>CallMeSP</author><pubDate>Thu, 16 Mar 2017 16:14:01 +0800</pubDate><description><![CDATA[面试的时候被问道各种框架的原理架构，也是很尴尬，自以为写的代码不少，用过的框架也不少，深入的去研究源码的还真是不多，也是给自己敲了一个警钟，今天就来尝试剖析一下Rxjava2的源码，水平有限，就先看一下基础的用法相关,一些难度更高的操作符就慢慢来分析吧。 
就按照平时使用的顺序来分析：一、初始化Observerble基本使用实例：Observable<String> observable= Obse]]></description><category></category></item><item><title><![CDATA[Android开发--IM聊天项目（五）--进程保活踩坑]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/62058409</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/62058409</guid><author>CallMeSP</author><pubDate>Tue, 14 Mar 2017 21:40:53 +0800</pubDate><description><![CDATA[上周四面试的时候，面试官提到了进程保活的问题，所以现在就来踩一下坑，准备多尝试一下，学点新东西。正好最近也在写这个聊天项目的另一个衍生的项目，推送平台，也是对保活有很大的要求的，打好铺垫。测试机型：小米5（android7.0）、魅族metal（android5.0.1）先分析待解决问题：锁屏之后，被自动杀掉进程，导致无法收到后续消息。
目标：锁屏之后不被杀掉。
思路1：算是一个歪点子，新添加一个A]]></description><category></category></item><item><title><![CDATA[Android开发--IM聊天项目（四）--IPC实战]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/59675869</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/59675869</guid><author>CallMeSP</author><pubDate>Thu, 02 Mar 2017 20:52:35 +0800</pubDate><description><![CDATA[花了两天重写学习了一下IPC、binder等相关知识，于是决定把这个聊天项目也重构一下，让聊天的service功能单独在一个进程，一个是为了更加稳定，对内存的控制也能更加合理，使应用常驻后台，防止主进程被杀守护进程，守护进程和主进程之间相互监视，有一方被杀就重新启动它。 Android后台进程里有很多应用是多个进程的，因为它们要常驻后台，特别是即时通讯或者社交应用，不过现在多进程已经被用烂了。 典型]]></description><category></category></item><item><title><![CDATA[春风十里不如你、与IPC的邂逅]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/57586275</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/57586275</guid><author>CallMeSP</author><pubDate>Sun, 26 Feb 2017 23:29:09 +0800</pubDate><description><![CDATA[今天要梳理的知识是Android中的IPC机制，由于这一点难度太高又相对重要，所以笔者也是主要参考了一些书才完成了这篇文章。
IPC是Inter-Process Communication的缩写，含义是进程间通信或者是进程间通信，是指两个进程之间进行数据交换的过程。
先说一下进程与线程的定义吧 
进程（Process）是计算机中的程序关于某数据集合上的一次运行活动，是系统进行资源分配和调度的基本单位]]></description><category></category></item><item><title><![CDATA[百步者半九十、关于Activity也许还能知道的更多]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/57147309</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/57147309</guid><author>CallMeSP</author><pubDate>Sat, 25 Feb 2017 23:02:29 +0800</pubDate><description><![CDATA[上一篇博客我们分析了Activity的生命周期，工作模式相关的内容。这篇博客我们将来一起探讨Activity的启动过程。 
先看一张总的流程图（该图应该是5.0的，我们分析的是6.0的源码，一些细节不太一样，但并不重要） 
 
然后让我们走进源码（基于api24）@Override
    public void startActivity(Intent intent, @Nullable Bund]]></description><category></category></item><item><title><![CDATA[十步杀一人、Activity前世今生]]></title><link>https://blog.youkuaiyun.com/CallMeSP/article/details/56971883</link><guid>https://blog.youkuaiyun.com/CallMeSP/article/details/56971883</guid><author>CallMeSP</author><pubDate>Sat, 25 Feb 2017 00:23:47 +0800</pubDate><description><![CDATA[先说一下取这个名字的意义，十步杀一人，近来临近找实习，而Android岗位市场渐渐饱和，对于应聘人的要求也就越来越高，筛选的条件也越来越高。而正是一些基础的问题会把很多人筛选掉，十步杀一人的不是那些看似炫酷的东西，而是这些我们平时容易忽视的原理。 
笔者不才，只是浏览过源码，打算今天开始复习一下这些知识，不能被杀啊。。 
今天给大家总结一下Activity的相关知识，会涉及到一些源码相关的知识，Ac]]></description><category></category></item></channel></rss>