SEACells 代碼學(xué)習(xí) (2)

Archetypal Analysis 是一種用于數(shù)據(jù)分析的技術(shù),它旨在找出數(shù)據(jù)集中的“極端類型”或“原型”(archetypes),并將每個(gè)數(shù)據(jù)點(diǎn)表示為這些原型的混合或組合。這種方法可以揭示數(shù)據(jù)的潛在結(jié)構(gòu)还棱,尤其是在需要理解數(shù)據(jù)多樣性和極端情況的場景中非常有用撤摸。

數(shù)據(jù)集中的每個(gè)觀測值(如個(gè)體、案例等)被表示為這些原型的加權(quán)組合缸匪。
這種表示揭示了每個(gè)觀測值與不同原型之間的關(guān)系翁狐。

在實(shí)現(xiàn)上,Archetypal Analysis 通常涉及以下步驟:

  1. 選擇原型數(shù)量:

首先確定要在數(shù)據(jù)中尋找多少個(gè)原型凌蔬。這個(gè)數(shù)目是一個(gè)超參數(shù)露懒,需要根據(jù)數(shù)據(jù)集的特性和分析目的來確定。

  1. 初始化:

隨機(jī)或使用特定策略選擇原型的初始估計(jì)砂心。

  1. 迭代優(yōu)化:

使用數(shù)學(xué)優(yōu)化方法(如梯度下降懈词、Frank-Wolfe算法等)迭代地更新原型和數(shù)據(jù)點(diǎn)的表示,以最小化表示誤差计贰。

Frank-Wolfe算法是一種用于解決帶有線性約束的優(yōu)化問題的迭代算法钦睡。在 _updateA 方法中,它被用于更新分配矩陣 A躁倒,這是一個(gè)關(guān)鍵步驟荞怒,用于在模型中確定如何將各個(gè)細(xì)胞分配給不同的SEACells(即archetype)。更新 A 矩陣是為了找到最優(yōu)的細(xì)胞到SEACells的分配秧秉,從而最小化給定目標(biāo)函數(shù)的值褐桌。

 def _updateA(self, B, A_prev):
        """Update step for assigment matrix A.

        Given archetype matrix B and using kernel matrix K, compute assignment matrix A using constrained gradient
        descent via Frank-Wolfe algorithm.

        :param B: (n x k csr_matrix) defining SEACells as weighted combinations of cells
        :param A_prev: (n x k csr_matrix) defining previous weights used for assigning cells to SEACells
        :return: (n x k csr_matrix) defining updated weights used for assigning cells to SEACells
        """
        n, k = B.shape
        A = A_prev

        t = 0  # current iteration (determine multiplicative update)

        # precompute some gradient terms
        t2 = (self.K @ B).T
        t1 = t2 @ B

        # update rows of A for given number of iterations
        while t < self.max_FW_iter:
            # compute gradient (must convert matrix to ndarray)
            G = 2.0 * np.array(t1 @ A - t2)

            # # get argmins - shape 1 x n
            amins = np.argmin(G, axis=0)
            amins = np.array(amins).reshape(-1)

            # # loop free implementation
            e = csr_matrix((np.ones(len(amins)), (amins, np.arange(n))), shape=A.shape)

            A += 2.0 / (t + 2.0) * (e - A)
            t += 1

        return A

    

Frank-Wolfe 算法通過迭代地選擇一個(gè)方向(在這個(gè)案例中是由 e 指定)并更新當(dāng)前解決方案,逐步優(yōu)化目標(biāo)函數(shù)象迎。在每次迭代中荧嵌,算法評(píng)估當(dāng)前解決方案的質(zhì)量(通過梯度 G),并決定如何改進(jìn)(通過計(jì)算 e 并更新 A)砾淌。這種方法允許算法在遵守給定約束的同時(shí)啦撮,逐步改進(jìn)解決方案,最終找到滿足條件的最優(yōu)或近似最優(yōu)解汪厨。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末赃春,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子劫乱,更是在濱河造成了極大的恐慌织中,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件衷戈,死亡現(xiàn)場離奇詭異狭吼,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)殖妇,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門刁笙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事采盒【善颍” “怎么了?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵磅氨,是天一觀的道長尺栖。 經(jīng)常有香客問我,道長烦租,這世上最難降的妖魔是什么延赌? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮叉橱,結(jié)果婚禮上挫以,老公的妹妹穿的比我還像新娘。我一直安慰自己窃祝,他們只是感情好掐松,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著粪小,像睡著了一般大磺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上探膊,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天杠愧,我揣著相機(jī)與錄音,去河邊找鬼逞壁。 笑死流济,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的腌闯。 我是一名探鬼主播绳瘟,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼姿骏!你這毒婦竟也來了稽荧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤工腋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后畅卓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體擅腰,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年翁潘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了趁冈。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖渗勘,靈堂內(nèi)的尸體忽然破棺而出沐绒,到底是詐尸還是另有隱情,我是刑警寧澤旺坠,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布乔遮,位于F島的核電站,受9級(jí)特大地震影響取刃,放射性物質(zhì)發(fā)生泄漏蹋肮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一璧疗、第九天 我趴在偏房一處隱蔽的房頂上張望坯辩。 院中可真熱鬧,春花似錦崩侠、人聲如沸漆魔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽改抡。三九已至,卻和暖如春僧家,著一層夾襖步出監(jiān)牢的瞬間雀摘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國打工八拱, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阵赠,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓肌稻,卻偏偏與公主長得像清蚀,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子爹谭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容