Sklearn包含的常用算法

原文:Sklearn包含的常用算法

說明

文章列出了Sklearn模塊中常用的算法及調用方法,部分生僻的未列出(對我來說算生僻的),如果有寫的不對的地方請指出。 
參考資料來自sklearn官方網站:http://scikit-learn.org/stable/

總的來說,Sklearn可實現的函數或功能可分爲以下幾個方面:

  • 分類算法
  • 迴歸算法
  • 聚類算法
  • 降維算法
  • 文本挖掘算法
  • 模型優化
  • 數據預處理
  • 最後再說明一下可能不支持的算法(也可能是我沒找到,但有其他模塊可以實現)

分類算法

  • 線性判別分析(LDA)

    1. >>> from sklearn.discriminant_analysis import LinearDiscriminantAnalysis
    2. >>> lda = LinearDiscriminantAnalysis(solver=“svd”, store_covariance=True)
    • 1
    • 2
    • 3
  • 二次判別分析(QDA)

    1. >>> from sklearn.discriminant_analysis import QuadraticDiscriminantAnalysis
    2. >>> qda = QuadraticDiscriminantAnalysis(store_covariances=True)
    • 1
    • 2
    • 3
  • 支持向量機(SVM)

    1. >>> from sklearn import svm
    2. >>> clf = svm.SVC()
    • 1
    • 2
    • 3
  • Knn算法

    1. >>> from sklearn import neighbors
    2. >>> clf = neighbors.KNeighborsClassifier(n_neighbors, weights=weights)
    • 1
    • 2
    • 3
  • 神經網絡(nn)

    1. >>> from sklearn.neural_network import MLPClassifier
    2. >>> clf = MLPClassifier(solver=‘lbfgs’, alpha=1e-5,
    3. … hidden_layer_sizes=(5, 2), random_state=1)
    • 1
    • 2
    • 3
    • 4
  • 樸素貝葉斯算法(Naive Bayes)

    1. >>> from sklearn.naive_bayes import GaussianNB
    2. >>> gnb = GaussianNB()
    • 1
    • 2
    • 3
  • 決策樹算法(decision tree)

    1. >>> from sklearn import tree
    2. >>> clf = tree.DecisionTreeClassifier()
    • 1
    • 2
    • 3
  • 集成算法(Ensemble methods)

    1. Bagging

      1. >>> from sklearn.ensemble import BaggingClassifier
      2. >>> from sklearn.neighbors import KNeighborsClassifier
      3. >>> bagging = BaggingClassifier(KNeighborsClassifier(),
      4. max_samples=0.5, max_features=0.5)
      • 1
      • 2
      • 3
      • 4
      • 5
    2. 隨機森林(Random Forest)

      1. >>> from sklearn.ensemble import RandomForestClassifier
      2. >>> clf = RandomForestClassifier(n_estimators=10)
      • 1
      • 2
      • 3
    3. AdaBoost

      1. >>> from sklearn.ensemble import AdaBoostClassifier
      2. >>> clf = AdaBoostClassifier(n_estimators=100)
      • 1
      • 2
      • 3
    4. GBDT(Gradient Tree Boosting)

      1. >>> from sklearn.ensemble import GradientBoostingClassifier
      2. >>> clf = GradientBoostingClassifier(n_estimators=100, learning_rate=1.0,
      3. max_depth=1, random_state=0).fit(X_train, y_train)
      • 1
      • 2
      • 3
      • 4

迴歸算法

  • 最小二乘迴歸(OLS)

    1. >>> from sklearn import linear_model
    2. >>> reg = linear_model.LinearRegression()
    • 1
    • 2
    • 3
  • 嶺迴歸(Ridge Regression)

    1. >>> from sklearn import linear_model
    2. >>> reg = linear_model.Ridge (alpha = .5)
    • 1
    • 2
    • 3
  • 核嶺迴歸(Kernel ridge regression)

    1. >>> from sklearn.kernel_ridge import KernelRidge
    2. >>> KernelRidge(kernel=‘rbf’, alpha=0.1, gamma=10)
    • 1
    • 2
    • 3
  • 支持向量機迴歸(SVR)

    1. >>> from sklearn import svm
    2. >>> clf = svm.SVR()
    • 1
    • 2
    • 3
  • 套索迴歸(Lasso)

    1. >>> from sklearn import linear_model
    2. >>> reg = linear_model.Lasso(alpha = 0.1)
    • 1
    • 2
    • 3
  • 彈性網絡迴歸(Elastic Net)

    1. >>> from sklearn.linear_model import ElasticNet
    2. >>> regr = ElasticNet(random_state=0)
    • 1
    • 2
    • 3
  • 貝葉斯迴歸(Bayesian Regression)

    1. >>> from sklearn import linear_model
    2. >>> reg = linear_model.BayesianRidge()
    • 1
    • 2
    • 3
  • 邏輯迴歸(Logistic regression)

    1. >>> from sklearn.linear_model import LogisticRegression
    2. >>> clf_l1_LR = LogisticRegression(C=C, penalty=‘l1’, tol=0.01)
    3. >>> clf_l2_LR = LogisticRegression(C=C, penalty=‘l2’, tol=0.01)
    • 1
    • 2
    • 3
    • 4
  • 穩健迴歸(Robustness regression)

    1. >>> from sklearn import linear_model
    2. >>> ransac = linear_model.RANSACRegressor()
    • 1
    • 2
    • 3
  • 多項式迴歸(Polynomial regression——多項式基函數迴歸)

    1. >>> from sklearn.preprocessing import PolynomialFeatures
    2. >>> poly = PolynomialFeatures(degree=2)
    3. >>> poly.fit_transform(X)
    • 1
    • 2
    • 3
    • 4
  • 高斯過程迴歸(Gaussian Process Regression)

  • 偏最小二乘迴歸(PLS)

    1. >>> from sklearn.cross_decomposition import PLSCanonical
    2. >>> PLSCanonical(algorithm=‘nipals’, copy=True, max_iter=500, n_components=2,scale=True, tol=1e-06)
    • 1
    • 2
    • 3
  • 典型相關分析(CCA)

    1. >>> from sklearn.cross_decomposition import CCA
    2. >>> cca = CCA(n_components=2)
    • 1
    • 2
    • 3

聚類算法

  • Knn算法

    1. >>> from sklearn.neighbors import NearestNeighbors
    2. >>> nbrs = NearestNeighbors(n_neighbors=2, algorithm=‘ball_tree’).fit(X)
    • 1
    • 2
    • 3
  • Kmeans算法

    1. >>> from sklearn.cluster import KMeans
    2. >>> kmeans = KMeans(init=‘k-means++’, n_clusters=n_digits, n_init=10)
    • 1
    • 2
    • 3
  • 層次聚類(Hierarchical clustering)——支持多種距離

    1. >>> from sklearn.cluster import AgglomerativeClustering
    2. >>> model = AgglomerativeClustering(linkage=linkage,
    3. connectivity=connectivity, n_clusters=n_clusters)
    • 1
    • 2
    • 3
    • 4

降維算法

  • 主成分方法(PCA)

    1. >>> from sklearn.decomposition import PCA
    2. >>> pca = PCA(n_components=2)
    • 1
    • 2
    • 3
  • 核函主成分(kernal pca)

    1. >>> from sklearn.decomposition import KernelPCA
    2. >>> kpca = KernelPCA(kernel=“rbf”, fit_inverse_transform=True, gamma=10)
    • 1
    • 2
    • 3
  • 因子分析(Factor Analysis)

    1. >>> from sklearn.decomposition import FactorAnalysis
    2. >>> fa = FactorAnalysis()
    • 1
    • 2
    • 3

文本挖掘算法

  • 主題生成模型(Latent Dirichlet Allocation)

    >>> from sklearn.decomposition import NMF, LatentDirichletAllocation
    
    • 1
    • 2
  • 潛在語義分析(latent semantic analysis)

模型優化

不具體列出函數,只說明提供的功能

  • 特徵選擇
  • 隨機梯度方法
  • 交叉驗證
  • 參數調優
  • 模型評估:支持準確率、召回率、AUC等計算,ROC,損失函數等作圖

數據預處理

  • 標準化
  • 異常值處理
  • 非線性轉換
  • 二值化
  • 獨熱編碼(one-hot)
  • 缺失值插補:支持均值、中位數、衆數、特定值插補、多重插補
  • 衍生變量生成

可能不支持的算法(也可能是我沒找到)

  • 極限提升樹算法(xgboost) 
    有專門的xgb模塊支持

  • 深度學習相關算法RNN,DNN,NN,LSTM等 
    有專門的深度學習模塊入tf,keras等支持


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章