原创 Generative Learning algorithms生成學習算法

    在之前的算法如線性迴歸等,都是對p(y|x;θ)直接建模,也就是,我們通過學習樣本數據,得到在參數θ下,給定輸入x時y的概率分佈,也就是待預測值的概率分佈,從而達到預測的目的。這是判別式學習算法。我們可以變化思考角度,來對p(x|

原创 模型評估-交叉驗證與自助法

交叉驗證法: 實質上是多次的留出法。把數據集D分爲k個互斥子集(分層抽樣),每次選一個子集作爲測試集,其他的集合作爲訓練集,循環k次,求誤差平均值。 如果每個子集只包含一個數據,那麼叫做留一法。這樣的方法顯然耗時較多。 自助法: 它以自

原创 POJ 2251 Dungeon Master 簡單BFS

三維的迷宮問題,常規BFS即可,代碼長但寫起來不難。1A。 #include <cmath> #include<queue> #include <cstring> #include <cstdio> #include <map> #in

原创 GDA 和logistic迴歸的聯繫

上篇博文中的GDA算法中,如果我們把p(y=1|x)整理變形一下,就能得到 這是logistic迴歸的h函數。 實質上,當我們假設p(x|y)服從正態分佈時,p(y=1|x)必然是logistic函數,但反過來不成立,也就是說,前者是更強

原创 Naive Bayes與Laplace smoothing 樸素貝葉斯算法拉普拉斯平滑

點贊 收藏 分享 文章舉報 永恆的秋天 發佈了49 篇原創文章 · 獲贊 14 · 訪問量 2萬+ 私信 關注

原创 POJ1321棋盤問題 搜索基礎題

DFS可以解決。 定義函數solve(hang,k)返回的是從第hang行開始放棋子,一共放k個棋子的方案數目,則第hang行放棋與不放對應兩種結果,solve(hang,k)=solve(hang+1,k+1)+solve(hang+1

原创 二分搜索相關總結

1.數組中找一個數,找到返回1否則返回-1 循環寫法: #include<bits/stdc++.h> using namespace std; int main() {     int a[100];     for(int i=1;i

原创 POJ3279 搜索

這道題目是不能靠純暴力的搜索解決的。因爲每個位置都可能翻轉或不翻轉,那麼可能的狀態數有2^(N*M)個,暴力搜複雜度過高。 仔細觀察它的性質可知,只要確定了某一行每個位置是否翻轉,那麼它相鄰行每個位置只與已知行的一個數字相關,那麼相鄰行的

原创 Locally weighted linear regression局部加權線性迴歸

假設我們要學習的問題比較複雜,事先無法預測它的輸入輸出之間的函數關係,或者函數圖形複雜,如下圖: 如圖1,若用直線擬合則與樣本點差繆較大,稱之爲欠擬合,我們可以增加多項式函數的次數,此時可得到曲線,甚至可以使所有樣本點都在曲線上如圖3,

原创 最大字段和DP

#include<iostream> #include<cstdio> #include<vector> #include<cmath> #incl

原创 linear regression 基礎概念,線性迴歸

在學習這門課前,必須有一定的微積分,線性代數和概率論知識基礎,否則很難理解,整個課程都建立在數學的根基上。 點贊 收藏 分享 文章舉報 永恆的秋天 發佈了49 篇原

原创 POJ3278 簡單BFS+剪枝

這是個經典的bfs題目,如果不剪枝在vjudge上提交會TLE,其實在n>=k時只要輸出n-k就行了,這樣就AC了。 #include <cmath> #include<queue> #include <cstring> #include

原创 線性迴歸中成本函數的由來

點贊 1 收藏 分享 文章舉報 永恆的秋天 發佈了49 篇原創文章 · 獲贊 14 · 訪問量 2萬+ 私信 關注

原创 POJ1426 Find The Multiple

題意見POJ,答案最大可以是100位,屬於大數,而且如果按每一位取0或1暴力搜索答案,則狀態數高達2^100種,不可取。 但是。。。如果用暴力的程序觀察下規律,會發現所有答案都不超過20位。。那麼從小到大暴力BFS就可以了。。。 至於怎麼