顯示具有 Algorithm 標籤的文章。 顯示所有文章
顯示具有 Algorithm 標籤的文章。 顯示所有文章

2015年10月31日 星期六

[Python] Are the two binary trees equal?

enter image description here
Previous blog introduced how to implement a binary tree in Python[Python] Inplement Binary Tree,Today I’ll introduce how to determine if two binary trees are equal.
If two binary trees are equal, they are structurally identical and the nodes have the same value. Considering the definition above, we use dynamic function to test the two trees if they are equal.

2015年10月25日 星期日

[Python] 以Inorder Traversal 檢驗是否為BST

enter image description here
承襲上一回[Python] 實作Binary Tree,今天要介紹怎樣確認Tree是一個Binary Search Tree.
定義上的Binary Search Tree(BST):
  • 左邊子樹的值都小於node的值
  • 右邊子樹的值都小於node的值
  • 左右的子樹都必須是BST

[Python] 實作BST的走訪

enter image description here
承襲上一回[Python] 實作Binary Tree,今天要介紹怎樣走訪在Binary tree中各個Node,俗稱Binary Tree Traversal.

2015年10月11日 星期日

[Python] 實作Binary Tree

enter image description here
因為不是科班出身,所以對於資料結構和演算法都沒什麼概念,利用雙十廉價的機會好好惡補了一番Orz…
Binary Tree(簡稱BT)在資料結構中是很基本的概念,概念上是每個節點都有左右兩個子節點,每個節點儲存一個值,最上面會有一個起始節點(或稱為root),每往下長一層就多了2**n個節點,以此類推.從BT衍伸出許多相關概念例如heap或各種樹,可能的優點包括加快搜尋速度或是排序速度等等,所以先了解BT是很重要的.

2015年8月7日 星期五

[Algorithm] [python] K-鄰近算法(KNN k-nearest neighbors) 實作


機器學習演算法通常分為監督式學習以及非監督式學習兩種,監督式學習指已知部分要分類的對象的分類結果(例如男性女性),用這些已知的部分來學習分類的模式,將未知的對象來做分類;非監督式學習則是單純從屬性差異來將對象分類.今天要介紹的KNN(K鄰近算法)屬於監督式學習的一種,透過已知的分類結果來給予未知對象分類.

2015年6月23日 星期二

準確率(Precision)與召回率(Recall)


enter image description here

在評估預測模型好壞時,常用的到指標包括Precision, Recall, ROC Curve, AUC等等.但是先前唸書的時候,都只是傻傻背定義,對指標的實際意義沒有太多感觸,直到最近真正跑了幾個模型,開始認真的想要預測結果時,才更深入了解這幾個指標含義及精神.

2015年2月24日 星期二

[R] Gradient Descent(SGD) 演算法實作

圖片來源:http://en.wikipedia.org/wiki/Gradient_descent

先前的[Algorithm] Stochastic gradient descent(梯度下降法)作為Online Learning Model(即時訓練模型)(一)提到使用SGD的方式來跑linear regression。本文嘗試使用R來實作這段過程(但是範例是batch作業,非即時):

2015年2月16日 星期一

[R] 各種相似性(Similarity) 演算法實作


在推薦系統或是文字探勘中,常常會需要比較兩個人或兩篇文章的相似性,相似性有許多種測量的方式,每種測量方式都有它的特性和適用的地方,本篇文章用R來實作並簡單比較幾種常用到的相似性.

2015年2月9日 星期一

[R] 推薦系統實作(Item Base)

圖片來源:http://betanews.com/2013/09/25/twitter-updates-magicrecs-recommendation-system-for-mobile-users/

承繼上一篇文章[R] 推薦系統實作(User Base) 這篇要介紹的是使用Item Base的角度來推薦使用者物品.

2015年2月7日 星期六

[R] 推薦系統實作(User Base)


推薦系統目的在於根據使用者個人化的特質,推薦使用者喜好的商品或廣告,其中最常使用的演算法為協同式過濾(collaborative filtering).協同式過濾是根據已知的消費行為或是客戶對於商品評價,來猜測客戶對於未購買或未評價的商品可能的評價.協同式過濾中,又以User-base以及Item-base為主要的評價方法.

2015年1月11日 星期日

[R] 類神經網絡(neural network)套件實作


        最近很認真的K了Coursera上的machine learning課程,才稍微了解類神經網路(neural network)的運作原理(但是要自己implement演算法什麼的還是離我太遙遠).不過我的精神就是,雖然沒吃過豬肉,好歹也要去看看豬走路吧.而且類神經網路是近年很流行的deep learning的基礎,瞭解一下不吃虧的.

2015年1月10日 星期六

資料分析鍊金術(八)-想像力是你的超能力


圖片來源:https://psychologies.co.uk/self/what-would-your-super-power-be.html
        
        加入技術單位之後,在真正分析資料問題之前,常需要思考處理眼前的技術問題.有時候會天真地認為,只要解決技術問題,資料就已經分析完成.就像當我們披荊斬棘的來到城堡面前,奮力爬上城堡,打倒魔王,救回公主後,才發現要過著幸福快樂的生活,還需要學會如何與公主相處

2014年11月4日 星期二

[Algorithm] Stochastic gradient descent(梯度下降法)作為Online Learning Model(即時訓練模型)(二)


        昨天最後我們停在Cost Function,再複習一下他的樣子:
θ為迴歸係數,要求得θ的最小值,也就是求上述Cost Function的最小值,統計上的做法就是直接將上述式子對每個係數做偏微分=0就可以計算出θ.這個方法完全沒錯,但是今天我要介紹的SGD是另外一種概念.

[Algorithm] Stochastic gradient descent(梯度下降法)作為Online Learning Model(即時訓練模型)(一)


        因為數學不好,所以網誌成立以來一直沒有碰觸演算法相關的議題,但是隨著要分析的對象越來越複雜,可用變項指數成長,建模的時間也呈倍數縮短的情況下,還是要回到分析的根本--也就是數學模型來尋找突破的方法,所以開始認真的研讀演算法,這也是給予自己未來的目標,希望更深入的去了解常用的演算法.