答:幾何間隔與樣本的誤分次數間存在關係:
其中的分母就是樣本到分類間隔距離,分子中的r是所有樣本中的最長向量值
答:會,超平面會靠近樣本少的類別。因為使用的是軟間隔分類,而如果對所有類別都是使用同樣的懲罰係數,
則由於優化目標裡面有最小化懲罰量,所以靠近少數樣本時,其懲罰量會少一些。
比如:假設理想的分隔超平面是大樣本中有很多資料到該超平面的函式距離是小於1的,
而小樣本中是只有少數樣本的函式距離小於1的。但是由於懲罰係數相同,實際演算法得到的超平面會往小樣本資料靠近。
參考部落格提供的解法
1)、對正例和負例賦予不同的c值,例如正例遠少於負例,則正例的c值取得較大,這種方法的缺點是可能會偏離原始資料的概率分布;
2)、對訓練集的資料進行預處理即對數量少的樣本以某種策略進行取樣,增加其數量或者減少數量多的樣本,典型的方法如:隨機插入法,缺點是可能出現
overfitting,較好的是:synthetic minority over-sampling technique(smote),其缺點是只能應用在具體的特徵空間中,不適合處理那些無法用
特徵向量表示的問題,當然增加樣本也意味著訓練時間可能增加;
3)、基於核函式的不平衡資料處理。
答:1)採用既能代表多數類樣本分佈特徵, 又能對分類介面有一定影響的樣本特性欠抽樣方法;2)對多數類和和少數類採用不同的懲罰因子
答:使用roc曲線,參考
1;參考
2答:對偶問題的優化目標函式中有向量的內積計算(優化過程中也會有內積計算的,見smo
),徑向基核函式中有向量的距離計算,存在值域小的變數會被忽略的問題,影響演算法的精度。參考
答:這種情況下一般採用線性核(即無核),因為此時特徵夠用了(很大可能是線性問題),沒必要對映到更高維的特徵空間。
答:1、對偶問題往往容易求解(在這裡原問題也可以求解);2、引入核函式,推廣到非線性分類。
答:1)一對一法:任意兩類樣本之間設計乙個svm,最終有k(k-1)/2個分類器,投票決定,libsvm是這麼做的。雖然分類器多,
但是訓練總時間要比一對多的速度快,因為訓練複雜度是跟樣本量有關的。
2)一對多法:最終k個分類器,最終如果只有乙個+1,則分為該類;如果有多個+1(分類重疊),
則取wx+b的值最大的那個;如果沒有+1(不可分),則分為其餘類,會造成資料集傾斜問題。
ps:當樣本可以屬於多個類別時,採取這種方式。
3)dag法:用一對一的方法建立k(k-1)/2個分類器,然後將這些分類器建立成有向無環圖(有點像二叉樹);
**的時候,都只需要呼叫k-1個分類器;缺點是存在錯誤累積,一旦開始分類錯的話,接下來就不可能分對了。所以第乙個分類器一定要選好
答:見文章,使用rbf核(徑向基核函式),調整c和γ(使用交叉驗證),rbf引數少,模型簡單
答:大值特徵會掩蓋小值特徵(內積計算)。高斯核會計算向量間的距離,也會產生同樣的問題;多項式核會引起數值問題。影響求解的速度。
資料規範化後,會丟失一些資訊。**的時候,也要進行規範化,測試資料規劃時,使用的最大值和最小值都是訓練集的而不是測試集的。
答: 可以表示為 (0,0,1), (0,1,0), and (1,0,0);這樣向量的內積或距離才有真正意義。
答:線性核是高斯核的特例,sigmoid核在給定的引數下和高斯核相似,多項式核的引數太多;對於高斯核0對於特徵非常多的情況下,應使用線性核。因為此時特徵夠用了(很大可能是線性問題),沒必要對映到更高維的特徵空間
線性核的訓練速度快,而且一般情況下效果還不錯,尤其是維度高的情況下。其他核需要調參(使用交叉驗證),所以速度慢。
ps:高斯核必然對映到無窮維,因為核函式的泰勒展開有無窮多項。
答:因為svm訓練過程中需要儲存核矩陣。而**的時候只需要儲存支援向量和相關引數。
參考部落格
的解答:
演算法最耗時的地方是優化乘子的選擇和更新一階導數資訊,這兩個地方都需要去計算核函式值,而核函式值的計算最終都需要去做內積運算,這就意味著原始空間的維度很高會增加內積運算的時間;對於dense matrix我就直接用numpy的dot了,而sparse matrix採用的是csr表示法,求它的內積我實驗過的方法有三種,第一種不需要額外空間,但時間複雜度為o(nlgn),第二種需要乙個hash表(用dictionary代替了),時間複雜度為線性,第三種需要乙個bitmap(使用bitvector),時間複雜度也為線性,實際使用中第一種速度最快,我就暫時用它了,應該還有更快的方法,希望高人們能指點一下;另外由於使用dictionary快取核矩陣,遇到訓練資料很大的資料集很容易掛掉,所以在程式中,當dictionary的記憶體占用達到配置檔案的閾值時會將其中相對次要的元素刪掉,保留對角線上的內積值。
答:線性可分svm、線性svm(引入懲罰因子)、非線性svm(引入核)
答:每乙個α對應乙個樣本,而kkt條件是樣本和對應的α應該滿足的關係。所謂違反最嚴重是指α對應的樣本錯得最離譜
16、svm適合處理什麼樣的資料?
答:高維稀疏,樣本少。【引數只與支援向量有關,數量少,所以需要的樣本少,由於引數跟維度沒有關係,所以可以處理高維問題】
高維問題還可以另外乙個角度來思考,假設給定乙個訓練資料集,其特徵是少量的,那麼很可能需要對映到高維空間才能求解,那麼這個問題就是乙個高維問題【純屬個人理解】
答:1)訓練速度:線性核只需要調節懲罰因子乙個引數,所以速度快;徑向基核函式還需要調節γ,所以訓練速度變慢。【調參一般使用交叉驗證,所以速度會慢】
2)訓練結果:線性核的得到的權重w可以反映出特徵的重要性,從而進行特徵選擇;徑向基核得到權重是無法解釋的。
3)適應的資料:線性核:樣本數量遠小於特徵數量(n徑向基核:樣本數量遠大於特徵數量(n>>m)
答:如果σ
計算量:徑向基核需要計算e的冪,所以比較耗時
可解釋性:多項式核的結果更加直觀,解釋性強,所以如果對資料有一定的了解的話,可以考慮使用多項式核
引數:多項式核引數多,難調
C 常見面試問題
一 抽象與介面的區別 1,抽象 abstract 1 抽象類中可以有抽象方法,也可沒有 2 抽象方法包含實現,也可以由子類實現 3 抽象類不能被sealed修飾,只能使用abstract關鍵字 4 抽象方法不能在抽象類外部宣告 5 抽象類只能單繼承 6 可以有虛方法 virtual 在不同的繼承中,...
SpringMVC 常見面試問題
springmvc流程 原理 流程圖 亂碼問題 重定向和 在返回值前面加 redirect 或 forward return forward 跳轉的頁面或路由 重定向和 的區別 全域性異常 自定義實現spring的全域性異常解析器handlerexceptionresolver springboot...
HBase常見面試問題
memstore在不同的條件下會觸發資料刷盤,那麼整個資料在刷盤過程中,對region的資料寫入等有什麼影響?memstore的資料刷盤,對region的直接影響就是 在資料刷盤開始到結束這段時間內,該region上的訪問都是被拒絕的,這裡主要是因為在資料刷盤結束時,rs會對改region做乙個sn...