<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # 4.6. 內核近似 校驗者: [@FontTian](https://github.com/FontTian) [@numpy](https://github.com/apachecn/scikit-learn-doc-zh) 翻譯者: [@程威](https://github.com/apachecn/scikit-learn-doc-zh) 這個子模塊包含與某些 kernel 對應的特征映射的函數,這個會用于例如支持向量機的算法當中(see [支持向量機](svm.html#svm))。 下面這些特征函數對輸入執行非線性轉換,可以用于線性分類或者其他算法。 與 [kernel trick](https://en.wikipedia.org/wiki/Kernel_trick) 相比,近似的進行特征映射更適合在線學習,并能夠有效 減少學習大量數據的內存開銷。使用標準核技巧的 svm 不能有效的適用到海量數據,但是使用近似內核映射的方法,對于線性 SVM 來說效果可能更好。 而且,使用 [`SGDClassifier`](generated/sklearn.linear_model.SGDClassifier.html#sklearn.linear_model.SGDClassifier "sklearn.linear_model.SGDClassifier") 進行近似的內核映射,使得對海量數據進行非線性學習也成為了可能。 由于近似嵌入的方法沒有太多經驗性的驗證,所以建議將結果和使用精確的內核方法的結果進行比較。 See also [多項式回歸:用基函數展開線性模型](linear_model.html#polynomial-regression) 用于精確的多項式變換。 ## 4.6.1. 內核近似的 Nystroem 方法 [`Nystroem`](generated/sklearn.kernel_approximation.Nystroem.html#sklearn.kernel_approximation.Nystroem "sklearn.kernel_approximation.Nystroem") 中實現了 Nystroem 方法用于低等級的近似核。它是通過采樣 kernel 已經評估好的數據。默認情況下, [`Nystroem`](generated/sklearn.kernel_approximation.Nystroem.html#sklearn.kernel_approximation.Nystroem "sklearn.kernel_approximation.Nystroem") 使用 `rbf` kernel,但它可以使用任何內核函數和預計算內核矩陣. 使用的樣本數量 - 計算的特征維數 - 由參數 `n_components` 給出. ## 4.6.2. 徑向基函數內核 [`RBFSampler`](generated/sklearn.kernel_approximation.RBFSampler.html#sklearn.kernel_approximation.RBFSampler "sklearn.kernel_approximation.RBFSampler") 為徑向基函數核構造一個近似映射,又稱為 Random Kitchen Sinks \[RR2007\]. 在應用線性算法(例如線性 SVM )之前,可以使用此轉換來明確建模內核映射: ``` >>> from sklearn.kernel_approximation import RBFSampler >>> from sklearn.linear_model import SGDClassifier >>> X = [[0, 0], [1, 1], [1, 0], [0, 1]] >>> y = [0, 0, 1, 1] >>> rbf_feature = RBFSampler(gamma=1, random_state=1) >>> X_features = rbf_feature.fit_transform(X) >>> clf = SGDClassifier() >>> clf.fit(X_features, y) SGDClassifier(alpha=0.0001, average=False, class_weight=None, epsilon=0.1, eta0=0.0, fit_intercept=True, l1_ratio=0.15, learning_rate='optimal', loss='hinge', max_iter=5, n_iter=None, n_jobs=1, penalty='l2', power_t=0.5, random_state=None, shuffle=True, tol=None, verbose=0, warm_start=False) >>> clf.score(X_features, y) 1.0 ``` 這個映射依賴于內核值的 Monte Carlo 近似. `fit` 方法執行 Monte Carlo 采樣,而該 `transform` 方法執行 數據的映射.由于過程的固有隨機性,結果可能會在不同的 `fit` 函數調用之間變化。 該 `fit` 函數有兩個參數: `n_components` 是特征變換的目標維數. `gamma` 是 RBF-kernel 的參數. `n_components` 越高,會導致更好的內核近似, 并且將產生與內核 SVM 產生的結果更相似的結果。請注意,”擬合” 特征函數實際上不取決于 `fit` 函數傳遞的數據。只有數據的維數被使用。 詳情可以參考 [\[RR2007\]](#rr2007). 對于給定的值 `n_components` [`RBFSampler`](generated/sklearn.kernel_approximation.RBFSampler.html#sklearn.kernel_approximation.RBFSampler "sklearn.kernel_approximation.RBFSampler") 在 [`Nystroem`](generated/sklearn.kernel_approximation.Nystroem.html#sklearn.kernel_approximation.Nystroem "sklearn.kernel_approximation.Nystroem") 中使用通常不太準確, 但是 [`RBFSampler`](generated/sklearn.kernel_approximation.RBFSampler.html#sklearn.kernel_approximation.RBFSampler "sklearn.kernel_approximation.RBFSampler") 使用更大的特征空間,更容易計算。 [![http://sklearn.apachecn.org/cn/0.19.0/_images/sphx_glr_plot_kernel_approximation_0021.png](https://box.kancloud.cn/e668c2756ef54dcddb3fdafc42c51483_566x236.jpg)](../auto_examples/plot_kernel_approximation.html)將精確的 RBF kernel (左) 與 approximation (右) 進行比較。 示例: - [Explicit feature map approximation for RBF kernels](../auto_examples/plot_kernel_approximation.html#sphx-glr-auto-examples-plot-kernel-approximation-py) ## 4.6.3. 加性卡方核 Additive Chi Squared Kernel (加性卡方核)是直方圖的核心,通常用于計算機視覺。 這里使用的 Additive Chi Squared Kernel 給出 ![k(x, y) = \sum_i \frac{2x_iy_i}{x_i+y_i}](https://box.kancloud.cn/21f17998117662f3c63e0a391b4d868e_158x46.jpg) 這個和 `sklearn.metrics.additive_chi2_kernel` 不完全一樣.\[VZ2010\]\_ 的作者喜歡上面的版本,因為它總是積極的。 由于這個 kernel 是可添加的,因此可以分別處理嵌入的 ![x_i](https://box.kancloud.cn/fbb563512653ccf39f3c57ce1d2bd4a5_14x11.jpg). 這使得在規則的間隔類對傅里葉變換進行性才贏,代替近似的 Monte Carlo 采樣。 > [`AdditiveChi2Sampler`](generated/sklearn.kernel_approximation.AdditiveChi2Sampler.html#sklearn.kernel_approximation.AdditiveChi2Sampler "sklearn.kernel_approximation.AdditiveChi2Sampler") 類實現了這個組件采樣方法. 每個組件都被采樣 ![n](https://box.kancloud.cn/ee463e4b2bbbc723c7017b00e6d51b41_11x8.jpg) 次,每一個輸入維數都會產生 2n+1 維(來自傅立葉變換的實部和復數部分的兩個數據段的倍數). 在文獻中,![n](https://box.kancloud.cn/ee463e4b2bbbc723c7017b00e6d51b41_11x8.jpg) 經常取為 1 或者 2,將數據集轉換為 `n_samples * 5 * n_features` 大小(在 ![n=2](https://box.kancloud.cn/8e133d554de1e0931cd2cf2518196de3_44x12.jpg) 的情況下 ). [`AdditiveChi2Sampler`](generated/sklearn.kernel_approximation.AdditiveChi2Sampler.html#sklearn.kernel_approximation.AdditiveChi2Sampler "sklearn.kernel_approximation.AdditiveChi2Sampler") 提供的近似特征映射可以和 [`RBFSampler`](generated/sklearn.kernel_approximation.RBFSampler.html#sklearn.kernel_approximation.RBFSampler "sklearn.kernel_approximation.RBFSampler") 提供的近似特征映射合并,得到一個取冪的 chi squared kerne。可以查看 [\[VZ2010\]](#vz2010) 和 [\[VVZ2010\]](#vvz2010) [`RBFSampler`](generated/sklearn.kernel_approximation.RBFSampler.html#sklearn.kernel_approximation.RBFSampler "sklearn.kernel_approximation.RBFSampler") 的合并. ## 4.6.4. Skewed Chi Squared Kernel (偏斜卡方核?暫譯) skewed chi squared kernel 給出下面公式 ![k(x,y) = \prod_i \frac{2\sqrt{x_i+c}\sqrt{y_i+c}}{x_i + y_i + 2c}](https://box.kancloud.cn/82e66d183f3001d8950a6e90b56d9ed0_232x47.jpg) 它有和 指數卡方核 相似的屬性,用于計算機視覺.但是允許進行簡單的 蒙特卡洛 近似 的特征映射。 [`SkewedChi2Sampler`](generated/sklearn.kernel_approximation.SkewedChi2Sampler.html#sklearn.kernel_approximation.SkewedChi2Sampler "sklearn.kernel_approximation.SkewedChi2Sampler") 的使用和之前描述的 [`RBFSampler`](generated/sklearn.kernel_approximation.RBFSampler.html#sklearn.kernel_approximation.RBFSampler "sklearn.kernel_approximation.RBFSampler") 一樣.唯一的區別是自由參數,稱之為 ![c](https://box.kancloud.cn/dd5c4d266b552b92d4c343a0f3cc54cf_8x8.jpg). 這種映射和數學細節可以參考 [\[LS2010\]](#ls2010). ## 4.6.5. 數學方面的細節 核技巧 像支持向量機,或者 核化 PCA 依賴于 再生核希爾伯特空間(RKHS) 對于任何 核函數 ![k](https://box.kancloud.cn/300675e73ace6bf4c352cfbb633f0199_9x13.jpg) (叫做 Mercer kernel),保證了 ![\phi](https://box.kancloud.cn/abadd5cdc2d26237a17c102dbdd77be8_11x16.jpg) 進入 希爾伯特空間 ![\mathcal{H}](https://box.kancloud.cn/2c59ec0dbbfde3844ef35dd59fce2f99_15x13.jpg) 的映射,例如: ![k(x,y) = \langle \phi(x), \phi(y) \rangle](https://box.kancloud.cn/8cc18287cb0274a2026a2fba6294cb99_164x19.jpg) ![\langle \cdot, \cdot \rangle](https://box.kancloud.cn/d7490df444795e0cfd7d4c5f046f329c_29x19.jpg) 是在 Hilbert space 中做內積. 如果一個算法,例如線性支持向量機或者 PCA,依賴于數據集的數量級 ![x_i](https://box.kancloud.cn/fbb563512653ccf39f3c57ce1d2bd4a5_14x11.jpg) ,可能會使用 ![k(x_i, x_j)](https://box.kancloud.cn/468aa4d59b4810a70b39629fe33cb7cb_62x20.jpg) , 符合孫發的映射 ![\phi(x_i)](https://box.kancloud.cn/3f559dfa66adcb4e5295ac4fac3eae2e_39x18.jpg) . 使用 ![k](https://box.kancloud.cn/300675e73ace6bf4c352cfbb633f0199_9x13.jpg) 的優點在于 ![\phi](https://box.kancloud.cn/abadd5cdc2d26237a17c102dbdd77be8_11x16.jpg) 永遠不會直接計算,允許大量的特征計算(甚至是無限的). kernel 方法的一個缺點是,在優化過程中有可能存儲大量的 kernel 值 ![k(x_i, x_j)](https://box.kancloud.cn/468aa4d59b4810a70b39629fe33cb7cb_62x20.jpg). 如果使用核函數的分類器應用于新的數據 ![y_j](https://box.kancloud.cn/677cd283282d3a460d2aa6e3eb63ac0c_15x14.jpg) , ![k(x_i, y_j)](https://box.kancloud.cn/d880df85965a0b62bb68d33214856023_61x20.jpg) 需要計算用來做預測,訓練集中的 ![x_i](https://box.kancloud.cn/fbb563512653ccf39f3c57ce1d2bd4a5_14x11.jpg) 有可能有很多不同的。 這個子模塊的這些類中允許嵌入 ![\phi](https://box.kancloud.cn/abadd5cdc2d26237a17c102dbdd77be8_11x16.jpg),從而明確的與 ![\phi(x_i)](https://box.kancloud.cn/3f559dfa66adcb4e5295ac4fac3eae2e_39x18.jpg) 一起工作, 這消除了使用 kernel 的需要和存儲訓練樣本. 參考: [\[RR2007\]](#id3)[“Random features for large-scale kernel machines”](http://www.robots.ox.ac.uk/~vgg/rg/papers/randomfeatures.pdf)Rahimi, A. and Recht, B. - Advances in neural information processing 2007,[\[LS2010\]](#id7)[“Random Fourier approximations for skewed multiplicative histogram kernels”](http://www.maths.lth.se/matematiklth/personal/sminchis/papers/lis_dagm10.pdf)Random Fourier approximations for skewed multiplicative histogram kernels - Lecture Notes for Computer Sciencd (DAGM)[\[VZ2010\]](#id5)[“Efficient additive kernels via explicit feature maps”](https://www.robots.ox.ac.uk/~vgg/publications/2011/Vedaldi11/vedaldi11.pdf)Vedaldi, A. and Zisserman, A. - Computer Vision and Pattern Recognition 2010[\[VVZ2010\]](#id6)[“Generalized RBF feature maps for Efficient Detection”](https://www.robots.ox.ac.uk/~vgg/publications/2010/Sreekanth10/sreekanth10.pdf)Vempati, S. and Vedaldi, A. and Zisserman, A. and Jawahar, CV - 2010
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看