国产东北多p真实在线_惠民福利日韩爽到高潮的免费视频_bt天堂在线观看www_小草色网视频免费播放_日日AAV视频网站免费看_亚洲欧美人精品高清_人妻无码久久精品人妻_精品无码免费在线_一区二区日韩动漫av_国产欧美另类第一页

線性所得稅模型

更新時間: 2024.11.24 18:54 閱讀:

1.1.10. 貝葉斯回歸

貝葉斯回歸可以用于在預(yù)估階段的參數(shù)正則化: 正則化參數(shù)的選擇不是通過人為的選擇,而是通過手動調(diào)節(jié)數(shù)據(jù)值來實現(xiàn)。

上述過程可以通過引入 無信息先驗 到模型中的超參數(shù)來完成。 在 嶺回歸中使用的

正則項相當(dāng)于在

為高斯先驗條件,且此先驗的精確度為

時,求最大后驗估計。在這里,我們沒有手工調(diào)參數(shù) lambda ,而是讓他作為一個變量,通過數(shù)據(jù)中估計得到。

為了得到一個全概率模型,輸出

也被認為是關(guān)于

的高斯分布。

Alpha 在這里也是作為一個變量,通過數(shù)據(jù)中估計得到。

貝葉斯回歸有如下幾個優(yōu)點:

  • 它能根據(jù)已有的數(shù)據(jù)進行改變。
  • 它能在估計過程中引入正則項。

貝葉斯回歸有如下缺點:

  • 它的推斷過程是非常耗時的。

參考資料

一個對于貝葉斯方法的很好的介紹 C. Bishop: Pattern Recognition and Machine learning詳細介紹原創(chuàng)算法的一本書 Bayesian learning for neural networks by Radford M. Neal

1.1.10.1. 貝葉斯嶺回歸

BayesianRidge 利用概率模型估算了上述的回歸問題,其先驗參數(shù)

是由以下球面高斯公式得出的:

先驗參數(shù)

一般是服從 gamma 分布 ,這個分布與高斯成共軛先驗關(guān)系。 得到的模型一般稱為 貝葉斯嶺回歸,并且這個與傳統(tǒng)的 Ridge 非常相似。

參數(shù)

是在模型擬合的時候一起被估算出來的,其中參數(shù)

通過最大似然估計得到。scikit-learn的實現(xiàn)是基于文獻(Tipping,2001)的附錄A,參數(shù)

的更新是基于文獻(MacKay,1992)。

剩下的超參數(shù)

以及

是關(guān)于

的 gamma 分布的先驗。 它們通常被選擇為 無信息先驗 。默認

貝葉斯嶺回歸用來解決回歸問題:

>>> from sklearn import linear_model>>> X = [[0., 0.], [1., 1.], [2., 2.], [3., 3.]]>>> Y = [0., 1., 2., 3.]>>> reg = linear_model.BayesianRidge()>>> reg.fit(X, Y)BayesianRidge(alpha_1=1e-06, alpha_2=1e-06, compute_score=False, copy_X=True, fit_intercept=True, lambda_1=1e-06, lambda_2=1e-06, n_iter=300, normalize=False, tol=0.001, verbose=False)Copy

在模型訓(xùn)練完成后,可以用來預(yù)測新值:

>>> reg.predict ([[1, 0.]])array([ 0.50000013])Copy

權(quán)值

可以被這樣訪問:

>>> reg.coef_array([ 0.49999993,0.49999993])Copy

由于貝葉斯框架的緣故,權(quán)值與 普通最小二乘法 產(chǎn)生的不太一樣。 但是,貝葉斯嶺回歸對病態(tài)問題(ill-posed)的魯棒性要更好。

示例:

貝葉斯嶺回歸

參考資料

Section 3.3 in Christopher M. Bishop: Pattern Recognition and Machine Learning, 2006David J. C. MacKay, Bayesian Interpolation, 1992.Michael E. Tipping, Sparse Bayesian Learning and the Relevance Vector Machine, 2001.

1.1.10.2. 主動相關(guān)決策理論 - ARD

ARDRegression (主動相關(guān)決策理論)和 Bayesian Ridge Regression 非常相似,但是會導(dǎo)致一個更加稀疏的權(quán)重w[1][2] 。

ARDRegression 提出了一個不同的

的先驗假設(shè)。具體來說,就是弱化了高斯分布為球形的假設(shè)。

它采用

分布是與軸平行的橢圓高斯分布。

也就是說,每個權(quán)值

從一個中心在 0 點,精度為

的高斯分布中采樣得到的。

并且

.

Bayesian Ridge Regression_ 不同, 每個

都有一個標(biāo)準(zhǔn)差

。所有

的先驗分布 由超參數(shù)

確定的相同的 gamma 分布確定。

ARD 也被稱為 稀疏貝葉斯學(xué)習(xí)相關(guān)向量機 [3][4]。

示例:

Automatic Relevance Determination Regression (ARD)

參考資料:

[1] Christopher M. Bishop: Pattern Recognition and Machine Learning, Chapter 7.2.1[2] David Wipf and Srikantan Nagarajan: A new view of automatic relevance determination[3] Michael E. Tipping: Sparse Bayesian Learning and the Relevance Vector Machine[4] Tristan Fletcher: Relevance Vector Machines explained

1.1.11. logistic 回歸

logistic 回歸,雖然名字里有 “回歸” 二字,但實際上是解決分類問題的一類線性模型。在某些文獻中,logistic 回歸又被稱作 logit 回歸,maximum-entropy classification(MaxEnt,最大熵分類),或 log-linear classifier(對數(shù)線性分類器)。該模型利用函數(shù) logistic function 將單次試驗(single trial)的可能結(jié)果輸出為概率。

scikit-learn 中 logistic 回歸在 LogisticRegression 類中實現(xiàn)了二分類(binary)、一對多分類(one-vs-rest)及多項式 logistic 回歸,并帶有可選的 L1 和 L2 正則化。

注意,scikit-learn的邏輯回歸在默認情況下使用L2正則化,這樣的方式在機器學(xué)習(xí)領(lǐng)域是常見的,在統(tǒng)計分析領(lǐng)域是不常見的。正則化的另一優(yōu)勢是提升數(shù)值穩(wěn)定性。scikit-learn通過將C設(shè)置為很大的值實現(xiàn)無正則化。

作為優(yōu)化問題,帶 L2罰項的二分類 logistic 回歸要最小化以下代價函數(shù)(cost function):

類似地,帶 L1 正則的 logistic 回歸解決的是如下優(yōu)化問題:

Elastic-Net正則化是L1 和 L2的組合,來使如下代價函數(shù)最小:

其中ρ控制正則化L1與正則化L2的強度(對應(yīng)于l1_ratio參數(shù))。

注意,在這個表示法中,假定目標(biāo)y_i在測試時應(yīng)屬于集合[-1,1]。我們可以發(fā)現(xiàn)Elastic-Net在ρ=1時與L1罰項等價,在ρ=0時與L2罰項等價

LogisticRegression 類中實現(xiàn)了這些優(yōu)化算法: liblinear, newton-cg, lbfgs, sagsaga。

liblinear應(yīng)用了坐標(biāo)下降算法(Coordinate Descent, CD),并基于 scikit-learn 內(nèi)附的高性能 C++ 庫 LIBLINEAR library 實現(xiàn)。不過 CD 算法訓(xùn)練的模型不是真正意義上的多分類模型,而是基于 “one-vs-rest” 思想分解了這個優(yōu)化問題,為每個類別都訓(xùn)練了一個二元分類器。因為實現(xiàn)在底層使用該求解器的 LogisticRegression 實例對象表面上看是一個多元分類器。 sklearn.svm.l1_min_c 可以計算使用 L1時 C 的下界,以避免模型為空(即全部特征分量的權(quán)重為零)。

lbfgs, sagnewton-cg 求解器只支持 L2罰項以及無罰項,對某些高維數(shù)據(jù)收斂更快。這些求解器的參數(shù) multi_class設(shè)為 multinomial 即可訓(xùn)練一個真正的多項式 logistic 回歸 [5] ,其預(yù)測的概率比默認的 “one-vs-rest” 設(shè)定更為準(zhǔn)確。

sag 求解器基于平均隨機梯度下降算法(Stochastic Average Gradient descent) [6]。在大數(shù)據(jù)集上的表現(xiàn)更快,大數(shù)據(jù)集指樣本量大且特征數(shù)多。

saga 求解器 [7] 是 sag 的一類變體,它支持非平滑(non-smooth)的 L1 正則選項 penalty="l1" 。因此對于稀疏多項式 logistic 回歸 ,往往選用該求解器。saga求解器是唯一支持彈性網(wǎng)絡(luò)正則選項的求解器。

lbfgs是一種近似于Broyden–Fletcher–Goldfarb–Shanno算法[8]的優(yōu)化算法,屬于準(zhǔn)牛頓法。lbfgs求解器推薦用于較小的數(shù)據(jù)集,對于較大的數(shù)據(jù)集,它的性能會受到影響。[9]

總的來說,各求解器特點如下:

默認情況下,lbfgs求解器魯棒性占優(yōu)。對于大型數(shù)據(jù)集,saga求解器通常更快。對于大數(shù)據(jù)集,還可以用 SGDClassifier ,并使用對數(shù)損失(log loss)這可能更快,但需要更多的調(diào)優(yōu)。

示例

Logistic回歸中的L1罰項和稀疏系數(shù)L1罰項-logistic回歸的路徑多項式和OVR的Logistic回歸newgroups20上的多類稀疏Logistic回歸使用多項式Logistic回歸和L1進行MNIST數(shù)據(jù)集的分類

liblinear 的區(qū)別:

當(dāng) fit_intercept=False 擬合得到的 coef_ 或者待預(yù)測的數(shù)據(jù)為零時,用 solver=liblinearLogisticRegressionLinearSVC 與直接使用外部 liblinear 庫預(yù)測得分會有差異。這是因為, 對于 decision_function 為零的樣本, LogisticRegressionLinearSVC 將預(yù)測為負類,而 liblinear 預(yù)測為正類。 注意,設(shè)定了 fit_intercept=False ,又有很多樣本使得 decision_function 為零的模型,很可能會欠擬合,其表現(xiàn)往往比較差。建議您設(shè)置 fit_intercept=True 并增大 intercept_scaling

注意:利用稀疏 logistic 回歸進行特征選擇

帶 L1罰項的 logistic 回歸 將得到稀疏模型(sparse model),相當(dāng)于進行了特征選擇(feature selection),詳情參見 基于 L1 的特征選取。

LogisticRegressionCV 對 logistic 回歸 的實現(xiàn)內(nèi)置了交叉驗證(cross-validation),可以找出最優(yōu)的 Cl1_ratio參數(shù) 。newton-cgsag, sagalbfgs 在高維數(shù)據(jù)上更快,這是因為采用了熱啟動(warm-starting)。

參考資料

[5] Christopher M. Bishop: Pattern Recognition and Machine Learning, Chapter 4.3.4[6] Mark Schmidt, Nicolas Le Roux, and Francis Bach: Minimizing Finite Sums with the Stochastic Average Gradient.[7] Aaron Defazio, Francis Bach, Simon Lacoste-Julien: SAGA: A Fast Incremental Gradient Method With Support for Non-Strongly Convex Composite Objectives.[8]https://en.wikipedia.org/wiki/Broyden%E2%80%93Fletcher%E2%80%93Goldfarb%E2%80%93Shanno_algorithm[9] “Performance Evaluation of Lbfgs vs other solvers”

1.1.12. 隨機梯度下降, SGD

隨機梯度下降是擬合線性模型的一個簡單而高效的方法。在樣本量(和特征數(shù))很大時尤為有用。 方法 partial_fit 可用于 online learning (在線學(xué)習(xí))或基于 out-of-core learning (外存的學(xué)習(xí))

SGDClassifierSGDRegressor 分別用于擬合分類問題和回歸問題的線性模型,可使用不同的(凸)損失函數(shù),支持不同的罰項。 例如,設(shè)定 loss="log" ,則 SGDClassifier 擬合一個邏輯斯蒂回歸模型,而 loss="hinge" 擬合線性支持向量機(SVM)。

參考資料

隨機梯度下降

1.1.13. Perceptron(感知器)

Perceptron 是適用于大規(guī)模學(xué)習(xí)的一種簡單算法。默認情況下:

  • 不需要設(shè)置學(xué)習(xí)率(learning rate)。
  • 不需要正則化處理。
  • 僅使用錯誤樣本更新模型。

最后一點表明使用合頁損失(hinge loss)的感知機比 SGD 略快,所得模型更稀疏。

1.1.14. Passive Aggressive Algorithms(被動攻擊算法)

被動攻擊算法是大規(guī)模學(xué)習(xí)的一類算法。和感知機類似,它也不需要設(shè)置學(xué)習(xí)率,不過比感知機多出一個正則化參數(shù) C

對于分類問題, PassiveAggressiveClassifier 可設(shè)定 loss='hinge' (PA-I)或 loss='squared_hinge'(PA-II)。對于回歸問題, PassiveAggressiveRegressor 可設(shè)置 loss='epsilon_insensitive' (PA-I)或 loss='squared_epsilon_insensitive' (PA-II)。

參考資料

“Online Passive-Aggressive Algorithms” K. Crammer, O. Dekel, J. Keshat, S. Shalev-Shwartz, Y. Singer - JMLR 7 (2006)

1.1.15. 穩(wěn)健回歸(Robustness regression): 處理離群點(outliers)和模型錯誤

穩(wěn)健回歸(robust regression)特別適用于回歸模型包含損壞數(shù)據(jù)(corrupt data)的情況,如離群點或模型中的錯誤。

1.1.15.1. 各種使用場景與相關(guān)概念

處理包含離群點的數(shù)據(jù)時牢記以下幾點:

  • 離群值在 X 上還是在 y 方向上?離群值在 y 方向上離群值在 X 方向上
  • 離群點的比例 vs. 錯誤的量級(amplitude)離群點的數(shù)量很重要,離群程度也同樣重要。低離群點的數(shù)量高離群點的數(shù)量

穩(wěn)健擬合(robust fitting)的一個重要概念是崩潰點(breakdown point),即擬合模型(仍準(zhǔn)確預(yù)測)所能承受的離群值最大比例。

注意,在高維數(shù)據(jù)條件下( n_features大),一般而言很難完成穩(wěn)健擬合,很可能完全不起作用。

尋找平衡: 預(yù)測器的選擇

Scikit-learn提供了三種穩(wěn)健回歸的預(yù)測器(estimator): RANSAC , Theil SenHuberRegressor

HuberRegressor 一般快于 RANSACTheil Sen ,除非樣本數(shù)很大,即 n_samples >> n_features 。 這是因為 RANSACTheil Sen 都是基于數(shù)據(jù)的較小子集進行擬合。但使用默認參數(shù)時, Theil SenRANSAC 可能不如 HuberRegressor 魯棒。

RANSACTheil Sen 更快,在樣本數(shù)量上的伸縮性(適應(yīng)性)更好。RANSAC 能更好地處理y方向的大值離群點(通常情況下)。Theil Sen 能更好地處理x方向中等大小的離群點,但在高維情況下無法保證這一特點。 實在決定不了的話,請使用 RANSAC

1.1.15.2. RANSAC: 隨機抽樣一致性算法(RANdom SAmple Consensus)

隨機抽樣一致性算法(RANdom SAmple Consensus, RANSAC)利用全體數(shù)據(jù)中局內(nèi)點(inliers)的一個隨機子集擬合模型。

RANSAC 是一種非確定性算法,以一定概率輸出一個可能的合理結(jié)果,依賴于迭代次數(shù)(參數(shù) max_trials)。這種算法主要解決線性或非線性回歸問題,在計算機視覺攝影測繪領(lǐng)域尤為流行。

算法從全體樣本輸入中分出一個局內(nèi)點集合,全體樣本可能由于測量錯誤或?qū)?shù)據(jù)的假設(shè)錯誤而含有噪點、離群點。最終的模型僅從這個局內(nèi)點集合中得出。

1.1.15.2.1. 算法細節(jié)

每輪迭代執(zhí)行以下步驟:

  1. 從原始數(shù)據(jù)中抽樣 min_samples 數(shù)量的隨機樣本,檢查數(shù)據(jù)是否合法(見 is_data_valid )。
  2. 用一個隨機子集擬合模型( base_estimator.fit )。檢查模型是否合法(見 is_model_valid )。
  3. 計算預(yù)測模型的殘差(residual),將全體數(shù)據(jù)分成局內(nèi)點和離群點( base_estimator.predict(X) - y)。絕對殘差小于 residual_threshold 的全體數(shù)據(jù)認為是局內(nèi)點。
  4. 若局內(nèi)點樣本數(shù)最大,保存當(dāng)前模型為最佳模型。以免當(dāng)前模型離群點數(shù)量恰好相等(而出現(xiàn)未定義情況),規(guī)定僅當(dāng)數(shù)值大于當(dāng)前最值時認為是最佳模型。

上述步驟或者迭代到最大次數(shù)( max_trials ),或者某些終止條件滿足時停下(見 stop_n_inliersstop_score )。最終模型由之前確定的最佳模型的局內(nèi)點樣本(一致性集合,consensus set)預(yù)測。

函數(shù) is_data_validis_model_valid 可以識別出隨機樣本子集中的退化組合(degenerate combinations)并予以丟棄(reject)。即便不需要考慮退化情況,也會使用 is_data_valid ,因為在擬合模型之前調(diào)用它能得到更高的計算性能。

示例

基于RANSAC的穩(wěn)健線性模型估計穩(wěn)健線性估計擬合

參考資料

https://en.wikipedia.org/wiki/RANSAC“Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography” Martin A. Fischler and Robert C. Bolles - SRI International (1981)“Performance Evaluation of RANSAC Family” Sunglok Choi, Taemin Kim and Wonpil Yu - BMVC (2009)

1.1.15.3. Theil-Sen 預(yù)估器: 廣義中值估計器(generalized-median-based estimator)

TheilSenRegressor 估計器:使用中位數(shù)在多個維度泛化,對多元異常值更具有魯棒性,但問題是,隨著維數(shù)的增加,估計器的準(zhǔn)確性在迅速下降。準(zhǔn)確性的丟失,導(dǎo)致在高維上的估計值比不上普通的最小二乘法。

示例:

廣義中值估計器回歸穩(wěn)健線性估計擬合

參考資料:

https://en.wikipedia.org/wiki/Theil%E2%80%93Sen_estimator

1.1.15.3.1. 算法理論細節(jié)

TheilSenRegressor 在漸近效率和無偏估計方面足以媲美 Ordinary Least Squares (OLS) (普通最小二乘法(OLS))。與 OLS 不同的是, Theil-Sen 是一種非參數(shù)方法,這意味著它沒有對底層數(shù)據(jù)的分布假設(shè)。由于 Theil-Sen 是基于中值的估計,它更適合于損壞的數(shù)據(jù)即離群值。 在單變量的設(shè)置中,Theil-Sen 在簡單的線性回歸的情況下,其崩潰點大約 29.3% ,這意味著它可以容忍任意損壞的數(shù)據(jù)高達 29.3% 。

scikit-learn 中實現(xiàn)的 TheilSenRegressor 是多元線性回歸模型的推廣 [8] ,利用了空間中值方法,它是多維中值的推廣 [9] 。

關(guān)于時間復(fù)雜度和空間復(fù)雜度,Theil-Sen 的尺度根據(jù)

這使得它不適用于大量樣本和特征的問題。因此,可以選擇一個亞群的大小來限制時間和空間復(fù)雜度,只考慮所有可能組合的隨機子集。

示例:

廣義中值估計器回歸

參考資料:

[10] Xin Dang, Hanxiang Peng, Xueqin Wang and Heping Zhang: Theil-Sen Estimators in a Multiple Linear Regression Model. |[11] K?rkk?inen and S. ?yr?m?: On Computation of Spatial Median for Robust Data Mining.

1.1.15.4. Huber 回歸

HuberRegressorRidge 不同,因為它對于被分為異常值的樣本應(yīng)用了一個線性損失。如果這個樣品的絕對誤差小于某一閾值,樣品就被分為內(nèi)圍值。 它不同于 TheilSenRegressorRANSACRegressor ,因為它沒有忽略異常值的影響,并分配給它們較小的權(quán)重。

這個 HuberRegressor 最小化的損失函數(shù)是:

其中

建議設(shè)置參數(shù) epsilon 為 1.35 以實現(xiàn) 95% 統(tǒng)計效率。

1.1.15.5. 注意

HuberRegressor 與將損失設(shè)置為 huberSGDRegressor 并不相同,體現(xiàn)在以下方面的使用方式上。

  • HuberRegressor 是標(biāo)度不變性的. 一旦設(shè)置了 epsilon , 通過不同的值向上或向下縮放 Xy ,就會跟以前一樣對異常值產(chǎn)生同樣的魯棒性。相比 SGDRegressor 其中 epsilonXy 被縮放的時候必須再次設(shè)置。
  • HuberRegressor 應(yīng)該更有效地使用在小樣本數(shù)據(jù),同時 SGDRegressor 需要一些訓(xùn)練數(shù)據(jù)的 passes 來產(chǎn)生一致的魯棒性。

示例:

異常數(shù)據(jù)集上的huberregression與 Ridge

參考資料:

Peter J. Huber, Elvezio M. Ronchetti: Robust Statistics, Concomitant scale estimates, pg 172

另外,這個估計是不同于 R 實現(xiàn)的 Robust Regression (http://www.ats.ucla.edu/stat/r/dae/rreg.htm) ,因為 R 實現(xiàn)加權(quán)最小二乘,權(quán)重考慮到每個樣本并基于殘差大于某一閾值的量。

1.1.16. 多項式回歸:用基函數(shù)展開線性模型

機器學(xué)習(xí)中一種常見的模式,是使用線性模型訓(xùn)練數(shù)據(jù)的非線性函數(shù)。這種方法保持了一般快速的線性方法的性能,同時允許它們適應(yīng)更廣泛的數(shù)據(jù)范圍。

例如,可以通過構(gòu)造系數(shù)的 polynomial features 來擴展一個簡單的線性回歸。在標(biāo)準(zhǔn)線性回歸的情況下,你可能有一個類似于二維數(shù)據(jù)的模型:

如果我們想把拋物面擬合成數(shù)據(jù)而不是平面,我們可以結(jié)合二階多項式的特征,使模型看起來像這樣:

觀察到這 還是一個線性模型 (這有時候是令人驚訝的): 看到這個,想象創(chuàng)造一個新的變量

有了這些重新標(biāo)記的數(shù)據(jù),我們可以將問題寫成

我們看到,所得的 polynomial regression 與我們上文所述線性模型是同一類(即關(guān)于

是線性的),因此可以用同樣的方法解決。通過用這些基函數(shù)建立的高維空間中的線性擬合,該模型具有靈活性,可以適應(yīng)更廣泛的數(shù)據(jù)范圍。

這里是一個示例,使用不同程度的多項式特征將這個想法應(yīng)用于一維數(shù)據(jù):

這個圖是使用 PolynomialFeatures 預(yù)創(chuàng)建。該預(yù)處理器將輸入數(shù)據(jù)矩陣轉(zhuǎn)換為給定度的新數(shù)據(jù)矩陣。使用方法如下:

>>> from sklearn.preprocessing import PolynomialFeatures>>> import numpy as np>>> X = np.arange(6).reshape(3, 2)>>> Xarray([[0, 1], [2, 3], [4, 5]])>>> poly = PolynomialFeatures(degree=2)>>> poly.fit_transform(X)array([[1.,0.,1.,0.,0.,1.], [1.,2.,3.,4.,6.,9.], [1.,4.,5.,16.,20.,25.]])Copy

X 的特征已經(jīng)從

轉(zhuǎn)換到

, 并且現(xiàn)在可以用在任何線性模型。

這種預(yù)處理可以通過 Pipeline 工具進行簡化??梢詣?chuàng)建一個表示簡單多項式回歸的單個對象,使用方法如下所示:

>>> from sklearn.preprocessing import PolynomialFeatures>>> from sklearn.linear_model import LinearRegression>>> from sklearn.pipeline import Pipeline>>> import numpy as np>>> model = Pipeline([('poly', PolynomialFeatures(degree=3)),...('linear', LinearRegression(fit_intercept=False))])>>> # fit to an order-3 polynomial data>>> x = np.arange(5)>>> y = 3 - 2 * x + x ** 2 - x ** 3>>> model = model.fit(x[:, np.newaxis], y)>>> model.named_steps['linear'].coef_array([ 3., -2.,1., -1.])Copy

利用多項式特征訓(xùn)練的線性模型能夠準(zhǔn)確地恢復(fù)輸入多項式系數(shù)。

在某些情況下,沒有必要包含任何單個特征的更高的冪,只需要相乘最多

個不同的特征即可,所謂 interaction features(交互特征) 。這些可通過設(shè)定 PolynomialFeaturesinteraction_only=True 得到。

例如,當(dāng)處理布爾屬性,對于所有

,因此是無用的;但

代表兩布爾結(jié)合。這樣我們就可以用線性分類器解決異或問題:

>>> from sklearn.linear_model import Perceptron>>> from sklearn.preprocessing import PolynomialFeatures>>> import numpy as np>>> X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])>>> y = X[:, 0] ^ X[:, 1]>>> yarray([0, 1, 1, 0])>>> X = PolynomialFeatures(interaction_only=True).fit_transform(X).astype(int)>>> Xarray([[1, 0, 0, 0], [1, 0, 1, 0], [1, 1, 0, 0], [1, 1, 1, 1]])>>> clf = Perceptron(fit_intercept=False, max_iter=10, tol=None,...shuffle=False).fit(X, y)Copy

分類器的 “predictions” 是完美的:

>>> clf.predict(X)array([0, 1, 1, 0])>>> clf.score(X, y)1.0Copy

一直在努力!

最后,小編想說:我是一名python開發(fā)工程師,

整理了一套最新的python系統(tǒng)學(xué)習(xí)教程,

想要這些資料的可以關(guān)注私信小編“1或者6”即可(免費分享哦)希望能對你有所幫助.

???展開全文
標(biāo)簽: 暫無
沒解決問題?查閱“相關(guān)文檔”