<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          卷了兩年,終上岸滴滴機器學(xué)習(xí)算法崗!

          共 4259字,需瀏覽 9分鐘

           ·

          2024-04-11 15:12

          推薦關(guān)注↓


          加入城哥知識星球,解惑答疑,告別迷茫

          大家好,我是城哥。


          今天分享一位星球成員的算法崗上岸之旅,他沒有985的背景,但很喜歡算法崗,最終成功拿下滴滴機器學(xué)習(xí)算法崗。


          我把面試題進行了梳理,分享給大家,希望對后續(xù)找工作的朋友有所幫助。喜歡記得點贊、收藏、關(guān)注。更多技術(shù)交流&面經(jīng)學(xué)習(xí),可以文末加入我們交流群。

          問題1:樣本不平衡問題怎么處理的,有什么方法?

          • 重采樣方法:通過欠采樣(隨機刪除多數(shù)類樣本)或過采樣(復(fù)制少數(shù)類樣本或生成合成樣本)來平衡樣本分布。常見的方法包括隨機欠采樣、SMOTE(Synthetic Minority Over-sampling Technique)等。

          • 類別權(quán)重調(diào)整:通過調(diào)整分類算法中不同類別的權(quán)重,使得分類器更加關(guān)注少數(shù)類樣本。一些分類算法(如邏輯回歸、支持向量機)提供了設(shè)置類別權(quán)重的參數(shù)。

          • 集成方法:使用集成學(xué)習(xí)算法,如隨機森林或梯度提升樹(例如XGBoost和LightGBM),能夠處理樣本不平衡問題。這是因為集成算法可以從多個子模型中綜合考慮不同類別的情況。

          問題2:快速排序時間復(fù)雜度?穩(wěn)定性怎么樣?為什么是不穩(wěn)定的

          快速排序(QuickSort)的平均時間復(fù)雜度為O(n log n),最壞情況下的時間復(fù)雜度為O(n^2)??焖倥判虻姆€(wěn)定性取決于具體的實現(xiàn)方式。通常情況下,快速排序是不穩(wěn)定的,因為在分區(qū)過程中,元素的相對順序可能會改變。

          快速排序的不穩(wěn)定性是由于分區(qū)過程中的元素交換操作引起的。在分區(qū)過程中,我們選擇一個基準(zhǔn)元素(通常是第一個或最后一個元素),將小于基準(zhǔn)的元素放在基準(zhǔn)的左邊,大于基準(zhǔn)的元素放在基準(zhǔn)的右邊。在交換元素的過程中,相等元素的相對順序可能發(fā)生改變,從而導(dǎo)致排序結(jié)果的不穩(wěn)定性。

          問題3:各種評估指標(biāo)

          • 準(zhǔn)確率(Accuracy):分類正確的樣本數(shù)與總樣本數(shù)之比。

          • 精確率(Precision):在被分類為正例的樣本中,真正例的比例。

          • 召回率(Recall):在所有正例中,被正確分類為正例的比例。

          • F1分?jǐn)?shù)(F1 Score):精確率和召回率的調(diào)和均值,綜合考慮了兩者。

          • ROC曲線(Receiver Operating Characteristic curve)和AUC(Area Under the Curve):繪制真正例率(TPR)和假正例率(FPR)之間的關(guān)系曲線,并計算曲線下面積。

          • 混淆矩陣(Confusion Matrix):展示分類結(jié)果的四個統(tǒng)計數(shù)字:真正例(True Positive, TP)、假正例(False Positive, FP)、真反例(True Negative, TN)和假反例(False Negative, FN)。

          問題4:xgboost算法介紹?

          XGBoost是一種基于梯度提升樹(Gradient Boosting Tree)算法的集成學(xué)習(xí)模型,它在梯度提升樹的基礎(chǔ)上進行了優(yōu)化和改進。

          XGBoost的主要特點和優(yōu)勢包括:

          • 正則化:XGBoost引入了正則化項來控制模型的復(fù)雜度,防止過擬合。它通過控制葉子節(jié)點的權(quán)重以及樹的復(fù)雜度來實現(xiàn)正則化,避免單棵樹過于復(fù)雜。

          • 自定義損失函數(shù):XGBoost允許用戶自定義損失函數(shù),從而能夠靈活地適應(yīng)不同的任務(wù)需求。

          • 特征選擇:XGBoost通過計算特征的重要性得分,可以幫助識別和選擇最具預(yù)測能力的特征。

          • 高效并行:XGBoost在訓(xùn)練過程中支持并行計算,可以利用多線程和分布式計算加速模型的訓(xùn)練。

          • 缺失值處理:XGBoost能夠自動學(xué)習(xí)如何處理缺失值,無需對缺失值進行特殊處理。

          • 特征交叉:XGBoost支持特征交叉,可以通過組合特征創(chuàng)建新的特征,提升模型的表達能力。

          問題5:評分卡建模全流程?

          1. 數(shù)據(jù)準(zhǔn)備:收集并清洗需要建模的數(shù)據(jù),包括缺失值處理、異常值處理、變量轉(zhuǎn)換等。

          2. 變量選擇:通過特征分析、相關(guān)性分析、變量篩選方法(如IV值、WOE值)等,選擇最具預(yù)測能力的變量作為建模輸入。

          3. 數(shù)據(jù)切分:將數(shù)據(jù)集切分為訓(xùn)練集和驗證集(測試集),用于模型訓(xùn)練和驗證。

          4. 建立評分卡模型:根據(jù)業(yè)務(wù)需求選擇適當(dāng)?shù)姆诸愃惴?,如邏輯回歸、決策樹等,建立評分卡模型。在建模過程中,需要進行特征工程、變量轉(zhuǎn)換、變量融合等步驟。

          5. 模型評估和驗證:使用驗證集對模型進行評估,包括計算評分卡的各項指標(biāo),如準(zhǔn)確率、精確率、召回率、F1分?jǐn)?shù)等。根據(jù)評估結(jié)果對模型進行調(diào)優(yōu)和驗證。

          問題6:是否熟悉 transformer 的架構(gòu)

          Transformer 本身是一個典型的encoder-decoder模型,Encoder端和Decoder端均有6個Block,Encoder端的Block包括兩個模塊,多頭self-attention模塊以及一個前饋神經(jīng)網(wǎng)絡(luò)模塊;Decoder端的Block包括三個模塊,Masked多頭self-attention模塊,多頭Encoder-Decoder attention交互模塊,以及一個前饋神經(jīng)網(wǎng)絡(luò)模塊;需要注意:Encoder端和Decoder端中的每個模塊都有殘差層和Layer Normalization層。

          問題7:transformer 輸出層的 softmax 有什么用

          Transformer輸出層的softmax用于將模型的輸出轉(zhuǎn)換為概率分布,以便進行分類任務(wù)。它將模型的最后一層的隱藏狀態(tài)映射到一個多類別分類任務(wù)上的概率分布,使得模型可以計算每個類別的概率,并選擇概率最高的類別作為預(yù)測結(jié)果。

          問題8:一個數(shù)組返回所有和為k的組合

          給定一個數(shù)組,返回所有和為k的組合可以通過回溯法或動態(tài)規(guī)劃來實現(xiàn)。以下是一個示例的偽代碼,演示如何使用回溯法來找到和為k的組合:

          def find_combinations(nums, k):
              def backtrack(start, target, path):
                  if target == 0:
                      result.append(path)
                      return
                  for i in range(start, len(nums)):
                      if nums[i] <= target:
                          backtrack(i, target - nums[i], path + [nums[i]])


              result = []
              backtrack(0, k, [])
              return result

          - EOF -

          作者簡介


          城哥,公眾號9年博主,一線互聯(lián)網(wǎng)工作10年、公司校招和社招技術(shù)面試官,主導(dǎo)多個公司級實戰(zhàn)項目(Python、數(shù)據(jù)分析挖掘、算法、AI平臺、大模型等)。


          關(guān)注我,陪你一起成長,遇見更好的自己。

          星球服務(wù)


          會不定期發(fā)放知識星球優(yōu)惠券,加入星球前可以添加城哥微信:dkl88191,咨詢優(yōu)惠券問題。

          加入知識星球,可以享受7大福利與服務(wù):免費獲取海量技術(shù)資料、向我 1 對 1 技術(shù)咨詢、求職指導(dǎo),簡歷優(yōu)化、歷史文章答疑(源碼+數(shù)據(jù))、綜合&專業(yè)技術(shù)交流社群、大模型技術(shù)分享、定制專屬學(xué)習(xí)路線,幫你快速成長、告別迷茫。



          原創(chuàng)不易,技術(shù)學(xué)習(xí)資料如下,星球成員可免費獲取,非星球成員,添加城哥微信:dkl88191,請城哥喝杯星巴克。







          瀏覽 54
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产成人AV电影在线观看 | 蜜桃AV久久经品人人搡 | 操逼午夜 | 91人妻无码精品一区二区 | 成年人性爱网站 |