<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[游戏]]></title><description><![CDATA[fengsser(风色)的学习Blog]]></description><link>https://blog.youkuaiyun.com/fengsser</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; fengsser]]></copyright><item><title><![CDATA[LDA主题模型小结]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/52833284</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/52833284</guid><author>fengsser</author><pubDate>Sun, 16 Oct 2016 21:42:54 +0800</pubDate><description><![CDATA[简述LDA
什么是LDA主题模型
主题分布与词分布
两点分布
二项分布
多项式分布
参数估计
极大似然估计
贝叶斯估计
共轭先验分布
形式化LDA
简述LDALDA涉及的知识很多，对于作者这样的菜鸟来说想要弄清楚LDA要费一番功夫，想简单说清更是不易，写下此文，也是希望在行文的过程中，把握LDA主要脉络，理顺思路。也希望我理解的方式与顺序，能帮到一部分初学的朋友。如果有不对的地方，也欢迎作出指正。什]]></description><category></category></item><item><title><![CDATA[分享 机器学习基石笔记]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/48338083</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/48338083</guid><author>fengsser</author><pubDate>Thu, 10 Sep 2015 08:51:29 +0800</pubDate><description><![CDATA[主要总结了why can machines learn 和 how can machines learn 两块
总结得很好
http://beader.me/mlnotebook/index.html]]></description><category></category></item><item><title><![CDATA[机器学习基石学习笔记3 VC Dimension（1）]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/48314251</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/48314251</guid><author>fengsser</author><pubDate>Wed, 09 Sep 2015 15:47:46 +0800</pubDate><description><![CDATA[上章我们提到了当Ein与Eout足够接近，且Ein很小时，我们就能说机器学习确实学到了东西。而Ein低与否，与A在hypothesis set中的选择密切相关。当hypothesis set中的可选h(x) 越多，就越有可能找到一个让Ein很小的h(x)，然而M太多，却又会导致出现bad data的概率增大，导致|Ein-Eout|>ϵ
还记得我们用了一个不等式来衡量bad data出现的概率：]]></description><category></category></item><item><title><![CDATA[机器学习基石学习笔记2  机器学习为什么可行]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/48301101</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/48301101</guid><author>fengsser</author><pubDate>Wed, 09 Sep 2015 11:21:34 +0800</pubDate><description><![CDATA[机器学习中，我们从样本数据出发，最后推断出接近真实规律的g(x)。
那么由样本数据推断出的g(x)可以接近真实规律的理论依据是什么呢？我们可以从概率的角度去解决这个问题。


假设一个罐子(总体，bin)里面装满了两种不同颜色（orange，green）的小球。
假设P(orange) = u, P(green) = 1 - u]]></description><category></category></item><item><title><![CDATA[机器学习基石学习笔记1 机器学习及其分类]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/48162077</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/48162077</guid><author>fengsser</author><pubDate>Tue, 01 Sep 2015 20:57:28 +0800</pubDate><description><![CDATA[对应第1,3课视频
1.什么是机器学习


2.什么情况下使用机器学习


例如：要识别图片里是否有树，我们又很难去硬写程序去定义树来识别。
3.机器学习流程




learning model =  learning algorithm A and hypothesis set H
f是现实中的规律，由规律产生出了数据data，我们收集这些data作为输入，通过学习]]></description><category></category></item><item><title><![CDATA[机器学习实践 学习笔记4 naïve Bayes]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/48056557</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/48056557</guid><author>fengsser</author><pubDate>Sun, 30 Aug 2015 14:29:00 +0800</pubDate><description><![CDATA[朴素贝叶斯（naïve Bayes）
工作原理：
朴素贝叶斯之所谓为“朴素”，是因为整个形式化过程只做最原始，最简单的假设。朴素贝叶斯是贝叶斯决策伦的一部分，贝叶斯决策伦的核心思想是：
选择具有最高概率的决策。


优点：在数据较少的情况下仍然有效，可以处理多类别问题
缺点：对于输入数据的准备方式较为敏感
适用数据类型：标称型数据


使用朴素贝叶斯进行文档分类：]]></description><category></category></item><item><title><![CDATA[机器学习实践 学习笔记3 decision trees]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/48047257</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/48047257</guid><author>fengsser</author><pubDate>Fri, 28 Aug 2015 17:03:44 +0800</pubDate><description><![CDATA[决策树（decision trees）


工作原理：
决策树属于监督类型的算法，同样，我们有数据集，知道每一条数据的分类。然后我们按照某种规则，选取数据集上的特征作为分割点，把数据集进行划分。循环重复以上动作，直至所有数据集各自的分类都是唯一的，或者所有特征已经被选择无法再进行划分。使用何种规则进行特征的选取下文将会叙述。


优点：计算复杂度不高，输出结果易于理解，对中间值的缺失]]></description><category></category></item><item><title><![CDATA[机器学习实践 学习笔记2 Classifying with k-Nearest Neighbors]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/47860981</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/47860981</guid><author>fengsser</author><pubDate>Sun, 23 Aug 2015 23:18:13 +0800</pubDate><description><![CDATA[1.k-近邻算法（k-Nearest Neighbors,kNN）
工作原理：
knn算法属于监督类型算法。首先我们有样本训练集，知道每一条数据的分类。继而，我们输入没有分类的新数据，将新数据的每个特征与样本集中的对应项进行比较，提前样本集中最相思的数据，这样我们可以获得该数据的分类。一般来说，我们只选择样本集中前k个最相似的数据，通常k不大于20.最后，选择k个相似数据中出现最多的分类，作为]]></description><category></category></item><item><title><![CDATA[机器学习实践 学习笔记1 Machine learning basics]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/47860075</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/47860075</guid><author>fengsser</author><pubDate>Sat, 22 Aug 2015 16:36:18 +0800</pubDate><description><![CDATA[1.例子：


通过特征，预测鸟兽的种类。


2.分类：


有监督学习：
分类和回归。分类主要任务是将实例数据划分到合适的分类中。回归的主要任务是预测熟知类型数据。
监督学习类算法必须要知道预测什么。
无监督学习：
数据没有类别信息，也不会给定目标值。在无监督学习中，将数据集合分成由类似的对象组成的多个类的过程被称为聚类(clustering)。将寻找描述数据统计值的]]></description><category></category></item><item><title><![CDATA[openGl超级宝典学习笔记 (2) 7个基本的几何图元]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46816129</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46816129</guid><author>fengsser</author><pubDate>Sun, 12 Jul 2015 23:58:46 +0800</pubDate><description><![CDATA[点（GL_POINTS）：




点总是正方形的像素，默认情况下，点的大小不受透视除法影响。即不管与视点的距离如何，它的大小都不改变。为了获得圆点，必须在抗锯齿模式下绘制点。
可以用glPointSize改变点的大小。
//点
//建立批次
GLBatch	pointBatch;

GLfloat vCoast[24][3] = {{2.80, 1.20, 0.0 }, {2.0,]]></description><category></category></item><item><title><![CDATA[剑指offer: 从尾到头打印链表(链表)]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46826849</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46826849</guid><author>fengsser</author><pubDate>Fri, 10 Jul 2015 09:56:52 +0800</pubDate><description><![CDATA[题目：


题目描述

输入一个链表，从尾到头打印链表每个节点的值。返回新链表。




分析：
逆转链表，与栈顺序一致，可以用辅助栈解决这个问题。


代码：
vector printListFromTailToHead(struct ListNode* head) {
	vector stack;
        vector result;
        wh]]></description><category></category></item><item><title><![CDATA[剑指offer：链表中倒数第k个结点（链表）]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46771391</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46771391</guid><author>fengsser</author><pubDate>Mon, 06 Jul 2015 10:24:27 +0800</pubDate><description><![CDATA[题目描述

输入一个链表，输出该链表中倒数第k个结点。




分析：

两个指针pointResult和pointEnd一起指向头结点，然后根据k,移动pointEnd，使pointResult和pointEnd的距离为k-1。然后同时移动pointResult和pointEnd，当pointEnd指向最后一个结点时，pointResult指向倒数第k个结点。这种方法只用遍历一]]></description><category></category></item><item><title><![CDATA[剑指offer：用两个栈实现队列（栈和队列）]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46753621</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46753621</guid><author>fengsser</author><pubDate>Sat, 04 Jul 2015 10:12:16 +0800</pubDate><description><![CDATA[题目描述

用两个栈来实现一个队列，完成队列的Push和Pop操作。 队列中的元素为int类型。

分析：

输入1，2，3入队，则输出也为1，2，3。由于我们只有栈，考虑全部压入第一个栈，则有

stack 1

    3

    2

    1

这时POP应该先输出1，考虑到用第二个栈储存第一个栈POP出来的元素，恰好是队列的输出顺序

stack1]]></description><category></category></item><item><title><![CDATA[剑指offer: 从上往下打印二叉树(树)]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46753597</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46753597</guid><author>fengsser</author><pubDate>Sat, 04 Jul 2015 09:58:24 +0800</pubDate><description><![CDATA[题目描述

从上往下打印出二叉树的每个节点，同层节点从左至右打印。

分析：

层次遍历二叉树，可以用队列辅助。

代码：

vector PrintFromTopToBottom(TreeNode *root) {
        vector result;
    	if(!root) return result;
    	vector queue;
    	queu]]></description><category></category></item><item><title><![CDATA[剑指offer:反转链表(链表)]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46738145</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46738145</guid><author>fengsser</author><pubDate>Fri, 03 Jul 2015 10:01:42 +0800</pubDate><description><![CDATA[题目描述

输入一个链表，反转链表后，输出反转链表后头节点

分析：

建立三个指针，previousNode,currentNode,nextNode，每次把currentNode->指向previousNode，然后三个指针一起往后移动，循环操作。

代码:

ListNode* ReverseList(ListNode* pHead) {
	if(pHead == nul]]></description><category></category></item><item><title><![CDATA[(7)风色从零单排《C++ Primer》 string]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46722899</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46722899</guid><author>fengsser</author><pubDate>Thu, 02 Jul 2015 12:21:11 +0800</pubDate><description><![CDATA[初始化：
string s1
string s2(s1)
string s2 = s1
string s3("value")
string s3 = "value"
string s4(n,'c')

读取未知个数的字符串

1)cin
cin读取字符串时，遇到leading whitespace(eg spaces,newlines,tabs)就会完成一次读取。
string wo]]></description><category></category></item><item><title><![CDATA[剑指offer: 二叉树的镜像(树)]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46710145</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46710145</guid><author>fengsser</author><pubDate>Wed, 01 Jul 2015 14:44:44 +0800</pubDate><description><![CDATA[题目描述

输入一个二叉树，使其变成镜像树。




分析：

前段时间Max Howell面试google闹得风风火火的遗一题，没什么好说的，就是交换左右子树，递归解决。

代码：

void Mirror(TreeNode *pRoot) {
        if(pRoot == nullptr) return;
        TreeNode *temp = p]]></description><category></category></item><item><title><![CDATA[剑指offer: 二叉树的深度(树)]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46699803</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46699803</guid><author>fengsser</author><pubDate>Tue, 30 Jun 2015 20:20:15 +0800</pubDate><description><![CDATA[题目描述

输入一棵二叉树，求该树的深度。从根结点到叶结点依次经过的结点（含根、叶结点）形成树的一条路径，最长路径的长度为树的深度。




代码：

int TreeDepth(TreeNode* pRoot)
{
        if(pRoot == nullptr) return 0;
        int left = TreeDepth(pRoot->left);
]]></description><category></category></item><item><title><![CDATA[剑指offer: 不用加减乘除做加法]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46697075</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46697075</guid><author>fengsser</author><pubDate>Tue, 30 Jun 2015 16:13:42 +0800</pubDate><description><![CDATA[题目描述

写一个函数，求两个整数之和，要求在函数体内不得使用+、-、*、/四则运算符号。




分析：

不用四则运算符号，考虑二进制位运算。考虑做加法的时候，二进制1与1变0，0与1变1，0与0变0，与^运算一致。然而还有进位问题，考虑到进位出现的情况为1与1，因此若两个数相与若为不为0，则需要进位，把这个结果左移1位，与上面^运算的结果相加则可。而这个相加和上述描述一致，]]></description><category></category></item><item><title><![CDATA[剑指offer: 矩形覆盖(循环与递归)]]></title><link>https://blog.youkuaiyun.com/fengsser/article/details/46691801</link><guid>https://blog.youkuaiyun.com/fengsser/article/details/46691801</guid><author>fengsser</author><pubDate>Tue, 30 Jun 2015 10:05:11 +0800</pubDate><description><![CDATA[题目描述

我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形，总共有多少种方法？




分析：

如图，设n=3，设我们从最左边开始覆盖，一开始，我们有两种选择，竖着放或者横着放，若横着放第一块后，下一块必然要把4个格子填满。

然后图像就分为已经填好的，和还没填好的。可以看到剩下还没填好的，其实是初始问题n的一个]]></description><category></category></item></channel></rss>