<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[efei7968的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/efei7968</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; efei7968]]></copyright><item><title><![CDATA[卡特兰数 原理、性质 、应用场景与编程求解]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/89706366</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/89706366</guid><author>efei7968</author><pubDate>Tue, 30 Apr 2019 11:44:46 +0800</pubDate><description><![CDATA[卡特兰数
1. 定义与背景
卡塔兰数是组合数学中一个常出现在各种计数问题中出现的数列。由以比利时的数学家欧仁·查理·卡塔兰 (1814–1894)命名。
卡塔兰数的一般项公式为 
另类递归式  $ h(n)=\frac{4*n-2}{n+1}*h(n-1)$
前几项为: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, ...]]></description><category></category></item><item><title><![CDATA[scala 方法method与函数function]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/89448588</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/89448588</guid><author>efei7968</author><pubDate>Mon, 22 Apr 2019 11:32:27 +0800</pubDate><description><![CDATA[Scala 方法是类的一部分，而函数是一个对象可以赋值给一个变量。换句话来说在类中定义的函数即是方法。

Scala 中的方法跟 Java 的类似，方法是组成类的一部分。

Scala 中的函数则是一个完整的对象，Scala 中的函数其实就是继承了 Trait 的类的对象。

Scala 中使用 val 语句可以定义函数，def 语句定义方法和函数。



方法 method


object...]]></description><category></category></item><item><title><![CDATA[scala for循环与break语句]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/89448481</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/89448481</guid><author>efei7968</author><pubDate>Mon, 22 Apr 2019 11:28:01 +0800</pubDate><description><![CDATA[for循环


object s5_loop {
  def main(args: Array[String]): Unit = {

    // for loop

    for (a &lt;- 1 to 10) {
      print(a + " ")
    }
    println()


    // until不包括边界值
    for (a1 &lt;- 1 until...]]></description><category></category></item><item><title><![CDATA[Scala 伴生对象与单例对象 代替java静态块与静态方法]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/89448301</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/89448301</guid><author>efei7968</author><pubDate>Mon, 22 Apr 2019 11:21:59 +0800</pubDate><description><![CDATA[object s19_单例对象与伴生对象 {
  // scala中没有静态方法和静态字段
  // 借助于object单例对象实现这一目的
  // 相当于java中的工具类，里面可以定义工具函数和常量
  // 单例对象不能带参数，不能实例化，在第一次调用的时候初始化

  def log(mes: String): Unit = {
    println(s"INFO:$mes")
  ...]]></description><category></category></item><item><title><![CDATA[scala 抽象类与特质]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/89447865</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/89447865</guid><author>efei7968</author><pubDate>Mon, 22 Apr 2019 11:16:38 +0800</pubDate><description><![CDATA[抽象类


object s22_abstractClass {
  def main(args: Array[String]): Unit = {
    var man = new Men
    println(man.getId())
    println(man.gender, man.name)
  }

}

abstract class Person1 {
  // 抽象类不能被...]]></description><category></category></item><item><title><![CDATA[Scala构造器 类的属性，主构造器 辅助构造器 私有构造器]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/89433570</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/89433570</guid><author>efei7968</author><pubDate>Sun, 21 Apr 2019 15:23:02 +0800</pubDate><description><![CDATA[类的属性


class Person {
  // val 修饰的属性，系统会自动生成get方法·
  val id: String = "1234"

  // 可以自定义get方法

  def getId(): String = {
    println("self-defined getId")
    this.id
  }

  // var 修饰的属性，系统自动生成get和set...]]></description><category></category></item><item><title><![CDATA[个性化推荐系统五大研究热点：深度学习、知识图谱、强化学习、用户画像、可解释推荐]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/89306779</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/89306779</guid><author>efei7968</author><pubDate>Mon, 15 Apr 2019 10:13:47 +0800</pubDate><description><![CDATA[“猜你喜欢”、“购买过此商品的用户还购买过……”对于离不开社交平台、电商、新闻阅读、生活服务的现代互联网用户来说，个性化推荐已经不是什么新鲜事儿。

随着信息技术和互联网行业的发展，信息过载成了人们处理信息的挑战。对于用户而言，如何在以指数增长的资源中快速、准确地定位到自己需要的内容是一个非常重要且极具挑战的事情。对于商家而言，如何把恰当的物品及时呈现给用户，从而促进交易量和经济增长，也是一件颇具...]]></description><category></category></item><item><title><![CDATA[scala 学习第2弹 说说常量val与变量var，Scala数据类型]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/89020545</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/89020545</guid><author>efei7968</author><pubDate>Thu, 04 Apr 2019 13:34:24 +0800</pubDate><description><![CDATA[val：常量，相当于Java中的fimal关键字

1.当val修饰值类型时，不可修改





2.当val修饰引用类型，引用不可变，但是引用的内容可以改变



var：变量，可以改变



注意点：

1.优先使用val（在无需改变时），有利于代码的可读性和垃圾回收

2.lazy关键字只针对val，表示需要使用的时候才进行赋值，用于不确定的初始化工作

3.scala能自动进行...]]></description><category></category></item><item><title><![CDATA[scala 学习第1弹 从hello Scala开始]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/89020349</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/89020349</guid><author>efei7968</author><pubDate>Thu, 04 Apr 2019 13:24:56 +0800</pubDate><description><![CDATA[代码如下


object s1_hello {
  def main(args: Array[String]): Unit = {
    println("Hello,Scala!")
  }
}

解释一下：

1.object关键字

class，Object，Trait有什么区别

class

在scala中，类名可以和对象名为同一个名字，该对象称为该类的伴生对象，类和伴生对象可以...]]></description><category></category></item><item><title><![CDATA[机器学习面试第2弹 交叉熵损失vs.平方损失+ 合页损失函数HingleLoss+ 梯度下降函数的比较GD，SGD,Momentum，Adam]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/88724712</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/88724712</guid><author>efei7968</author><pubDate>Thu, 21 Mar 2019 20:31:56 +0800</pubDate><description><![CDATA[1.为什么要用交叉熵损失代替平方损失

为什么不用二次方代价函数



权值​和偏置​的偏导数为​



求导过程



偏导数受激活函数的导数影响，sigmoid函数导数在输出接近0和1时非常小，会导致一些实例在刚开始训练时学习得非常慢。



为什么要用交叉熵







求导结果





这个梯度公式与激活函数对z的偏导数无关，只与激活函数作用于z后的输出与期望的输出y有关，
...]]></description><category></category></item><item><title><![CDATA[机器学习面试第1弹  常用分类算法的优缺点 + 线性回归vs.逻辑回归 + 逻辑回归vs. SVM]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/88724350</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/88724350</guid><author>efei7968</author><pubDate>Thu, 21 Mar 2019 20:04:23 +0800</pubDate><description><![CDATA[1. 常用分类算法的优缺点



2.线性回归vs.逻辑回归



3.逻辑回归vs. SVM

相同点：
1.都是分类模型
2.都是判别模型
不同点：
1.从损失函数角度：SVM用的是hinge loss,而logistic回归用的是对率损失

   2.从风险函数角度：SVM软间隔自带正则，属于结构风险最小化；logis...]]></description><category></category></item><item><title><![CDATA[机器学习的数学基础 矩阵论与概率论]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/88723372</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/88723372</guid><author>efei7968</author><pubDate>Thu, 21 Mar 2019 19:15:05 +0800</pubDate><description><![CDATA[文章目录机器学习的数学基础1.1 标量、向量、矩阵、张量之间的联系1.2 张量与矩阵的区别？1.3 矩阵和向量相乘结果1.4 向量和矩阵的范数归纳1.5 如何判断一个矩阵为正定？1.6 导数偏导计算1.7 导数和偏导数有什么区别？1.8 特征值分解与特征向量1.9 奇异值与特征值有什么关系?1.10 机器学习为什么要使用概率？1.11 变量与随机变量有什么区别？1.12 常见概率分布1.13 举例...]]></description><category></category></item><item><title><![CDATA[360 智能城市-机器学习岗实习 面经2019 （已拿offer）]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/88651372</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/88651372</guid><author>efei7968</author><pubDate>Mon, 18 Mar 2019 22:16:18 +0800</pubDate><description><![CDATA[一面

主要了解项目相关内容

xgboost，lightGBM

机器学习评价指标

手撕代码：字符串的修改

小B最近迷上了字符串处理技术，他设计了各种处理方式，并计算字符串的属性。这次也不例外，他定义了一种新的字符置换方式。小B研究的字符串由ASCII码字母和“.”构成，这次的研究对象是“.”。他关心的对象是字符串中出现的连续两个“.”。若每次操作把其中最开始的连续两个“.”以一个“.”替代...]]></description><category></category></item><item><title><![CDATA[剑指offer  No.4 替换空格 java（提供三种解法）]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/88584580</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/88584580</guid><author>efei7968</author><pubDate>Fri, 15 Mar 2019 21:35:57 +0800</pubDate><description><![CDATA[请实现一个函数，将一个字符串中的每个空格替换成“%20”。例如，当字符串为We Are Happy.则经过替换之后的字符串为We%20Are%20Happy。

方法一 replace方法，这里不展示



方法二 StringBuffer类


public class Solution {
    public String replaceSpace(StringBuffer str) ...]]></description><category></category></item><item><title><![CDATA[剑指offer No.19  二叉树的镜像 java实现（递归+非递归）]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/88584461</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/88584461</guid><author>efei7968</author><pubDate>Fri, 15 Mar 2019 21:29:27 +0800</pubDate><description><![CDATA[操作给定的二叉树，将其变换为源二叉树的镜像。


二叉树的镜像定义：源二叉树 
    	    8
    	   /  \
    	  6   10
    	 / \  / \
    	5  7 9 11
    	镜像二叉树
    	    8
    	   /  \
    	  10   6
    	 / \  / \
    	11 9 7  5



非递归栈实现

...]]></description><category></category></item><item><title><![CDATA[网易笔试题之DFS回溯法求解黑白棋（翻翻棋）]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/88286643</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/88286643</guid><author>efei7968</author><pubDate>Thu, 07 Mar 2019 10:04:56 +0800</pubDate><description><![CDATA[黑白棋，又叫翻转棋（Reversi）、苹果棋或奥赛罗棋（Othello）。

游戏规则：

棋盘共有8行8列共64格。开局时，棋盘正中央的4格先置放黑白相隔的4枚棋子（亦有求变化相邻放置）。通常黑子先行。双方轮流落子。只要落子和棋盘上任一枚己方的棋子在一条线上（横、直、斜线皆可）夹着对方棋子，就能将对方的这些棋子转变为我己方（翻面即可）。如果在任一位置落子都不能夹住对手的任一颗棋子，就要让对手下子...]]></description><category></category></item><item><title><![CDATA[线程(thread) vs.进程(process) 操作系统，多线程基本概念]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/87007218</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/87007218</guid><author>efei7968</author><pubDate>Thu, 14 Feb 2019 11:03:40 +0800</pubDate><description><![CDATA[ 线程(thread) 与进程(process)是操作系统中两个非常重要的概念，也经常出现在技术类岗位面试中，并且根据面试者的回答侧重点如内存结构，线程通信等等进行展开。

关于二者的概念与区别，相关的书籍博客进行了各类阐述，较为繁杂。（下图显示了其中一部分）



本文从底层结构中去分析二者的区别，进而可以轻松理解二者在宏观上的差别。

进程结构


进程与进程之间相互独立，是操作系统进行资源分...]]></description><category></category></item><item><title><![CDATA[python函数工具之filter，map及reduce]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/87007426</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/87007426</guid><author>efei7968</author><pubDate>Thu, 14 Feb 2019 11:03:30 +0800</pubDate><description><![CDATA[filter, map, reduce都是python针对序列（包括tuple, str, list ）的内置方法。


filter函数：对序列执行过滤操作

 


filter(function or None, sequence) -&amp;gt; list, tuple, or string


function函数是一个布尔函数，filter()函数调用这个函数一次作用于seq中的每一个元素...]]></description><category></category></item><item><title><![CDATA[希尔排序（Shell Sort）java实现]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/87007889</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/87007889</guid><author>efei7968</author><pubDate>Thu, 14 Feb 2019 11:03:20 +0800</pubDate><description><![CDATA[算法原理

希尔排序：将无序数组分割为若干个子序列，子序列不是逐段分割的，而是相隔特定的增量的子序列，对各个子序列进行插入排序；然后再选择一个更小的增量，再将数组分割为多个子序列进行排序......最后选择增量为1，即使用直接插入排序，使最终数组成为有序。


增量的选择：在每趟的排序过程都有一个增量，至少满足一个规则 增量关系 d[1] &amp;gt; d[2] &amp;gt; d[3] &amp;gt;..&amp;gt...]]></description><category></category></item><item><title><![CDATA[机器学习模型评估  过拟合与欠拟合的改进方案]]></title><link>https://blog.youkuaiyun.com/efei7968/article/details/87006187</link><guid>https://blog.youkuaiyun.com/efei7968/article/details/87006187</guid><author>efei7968</author><pubDate>Thu, 14 Feb 2019 11:03:09 +0800</pubDate><description><![CDATA[在模型评估与调整的过程中， 我们往往会遇到“过拟合”或“欠拟合”的情况。 如何有效地识别“过拟合”和“欠拟合”现象， 并有针对性地进行模型调整， 是不断改进机器学习模型的关键。 特别是在实际项目中， 采用多种方法、 从多个角度降低“过拟合”和“欠拟合”的风险是算法工程师面试必备知识。

欠拟合与过拟合现象

过拟合是指模型对于训练数据拟合呈过当的情况， 反映到评估指标上，就是模型在训练集上的表现很...]]></description><category></category></item></channel></rss>