Ching-Chuan Chen's Blogger

Statistics, Machine Learning and Programming

0%

會有這篇是剛好想到之前在PTT PO的文章

文章1文章2

就想說順便來把這兩個拿來比較一下,於是就有了這一篇的誕生

這篇剛好也是我試到一個RcppEigen比較慢的例子

當做之前的RcppArmadillo vs RcppEigen的延伸

我這次也觀察到一個現象是RcppArmadillo在這個計算上會使用BLAS

所以它這裡會用我R的Multi-threaded MKL BLAS去算

而RcppEigen機制不太確定,但是有趣的事情是Eigen還可以透過include omp配上Eigen::initParallel來加速

但是這裡RcppArmadillo毫無疑問的直接打趴RcppEigen(攤手

下一篇會再把RcppParallel拉進來一起玩

Read more »

R maillist有討論過這個問題,而且回的非常長

我稍微看了一下,發問者試了RcppArmadillo跟RcppEigen

發現RcppEigen的SVD decomposition不是那麼合用,而且不太好去做coding

RcppArmadillo比較好去coding

Read more »

最近在比較RcppEigen跟RcppArmadillo,比較的結果寫到下一篇好了

就想說也來試試看RcppEigen跟RcppParallel結合看看有什麼火花

這裡是改之前的RcppArmadillo with RcppParallel的程式 - fastLOOCV

順便也把RcppEigen vs RcppArmadillo 跟 Openmp vs RcppParallel 一起放入混合比較一下

Read more »

我在把RcppEigen跟RcppParallel合體的時候

看了下面這篇的程式:

C++ codeR code

我也有發現他在R mail群裡面回答說這個程式時不時會crash

我就想到我第一部分提到的Rcpp::NumericVector會在RcppParallel會crash的問題

那我就修改了一下,發現程式就穩定了,我也把我修改後的程式放上來 (稍微改的漂亮一些)

Read more »

最近一直work on locally weighted least-square

結果發現使用gausvar這個kernel的時候,weight會出現負的

我原本的解法是直接在input跟output都乘上根號的weight

結果這招就行不通了

另外還有再一些case下,解不是穩健的,有可能跑出虛數,但是虛數的係數其實很小…

所以就下定決心來研究一下各種WLS的解法

Read more »

最近稍微找了一下locally quantile regression的資訊

結果發現Quantile LOESS這篇可以得到比quantreg更好的效果

不過這方法沒有直覺的方式去選擇bandwidth,所以我就自己加了一點東西進去

結合我開發套件中的rfda(rfda可以在這裡找到)裡面的locPoly1d

就可以很自然使用bandwidth去調整線的平滑程度了,程式如下:

Read more »

有些程式不能全部靠RcppParallel加速

所以想說只能靠R的一些平行套件來解決

但是平行套件其實不少,那哪一個又有比較好的performance?

Read more »

最近遇到在計算functinoal data的cross-covariance surface的時候

發現plyr::ddply裡面的list_to_dataframe有點慢

反而利用plyr::dlply加上data.tablerbindlist可以快上不少

而且plyr::ddply消耗的記憶體相對起rbindlist高上不少

會發現這些都要感謝rstudio新出的套件profvis提供了良好的performance視覺化

其中profvis可以在github找到

Read more »

因為不想要用公開的程式碼管理

想要用local server做管理

又想要用類似github的功能

所以找了一下,發現gitlab又提供類似功能

而且RStudio可以直接使用

Read more »