sklearn基礎學習筆記

2021-09-10 01:13:12 字數 4228 閱讀 4220

本文對scikit-learn中常用的class 和function做乙個總結。

class:cluster.kmeans([n_clusters, init, n_init, …])

kmeans(n_clusters=

8, init=

'k-means++'

, n_init=

10, max_iter=

300, tol=

0.0001

, precompute_distances=

'auto'

, verbose=

0, random_state=

none

, copy_x=

true

, n_jobs=

1, algorithm=

'auto'

)

引數說明:

屬性:方法:

kmeans 損失函式:

屬性值inertia_與方法score(x)

兩者互為相反數,絕對值越小表明模型效果越好。

※score()方法可以做交叉驗證用,但是kmeans交叉驗證效果不好,總是k最大的效果最好。

cluster.minibatchkmeans([n_clusters, init, …])

minibatchkmeans(n_clusters=

8, init=

'k-means++'

, max_iter=

100, batch_size=

100,

verbose=

0, compute_labels=

true

, random_state=

none

, tol=

0.0, max_no_improvement=

10,

init_size=

none

, n_init=

3, reassignment_ratio=

0.01

)

引數說明:

computer_labels:boolean,是否計算訓練集的標籤,預設為true。

屬性:labels_:訓練集的分類標籤

方法:

※ sk-learn中所有含partial_fit()方法的模型都支援分批次訓練模型:訓練之後儲存,下次載入繼續進行訓練。如果沒有該方法,則不支援儲存之後再繼續訓練。

mini-batch kmeans訓練時間大概是kmeans訓練時間的1/3左右。

function:model_selection.train_test_split(*arrays, **options)

將資料集arrays按照一定比例隨機分割成訓練集和測試集,返回分割後的訓練集和測試集。

import numpy as np

from sklearn.model_selection import train_test_split

x_train, x_test, y_train, y_test = train_test_split( x, y, test_size=

0.3, random_state=

42)

引數說明:

samples generator:

datasets.make_blobs([n_samples, n_features, …])

建立符合各向同性的高斯分布的資料集,用於聚類模型訓練,返回建立好的資料集。

make_blobs(n_samples=

100, n_features=

2, centers=

3, cluster_std=

1.0, center_box=(-

10.0

,10.0

), shuffle=

true

, random_state=

none

)

引數說明:

class:

ensemble.randomforestregressor([…])

ensemble.randomforestclassifier([…])

ensemble.isolationforest([n_estimators, …])

ensemble.baggingclassifier([base_estimator, …])

ensemble.baggingregressor([base_estimator, …])

ensemble.adaboostclassifier([…])

ensemble.adaboostregressor([base_estimator, …])

ensemble.gradientboostingclassifier([loss, …])

gradientboostingclassifier(loss=

'deviance'

, learning_rate=

0.1, n_estimators=

100,

subsample=

1.0, criterion=

'friedman_mse'

, min_samples_split=

2, min_samples_leaf=1,

min_weight_fraction_leaf=

0.0, max_depth=

3, min_impurity_split=1e-

07, init=

none

, random_state=

none

, max_features=

none

, verbose=

0, max_leaf_nodes=

none

, warm_start=

false

, presort=

'auto'

引數說明:

ensemble.gradientboostingregressor([loss, …])

linear_model.elasticnet([alpha, l1_ratio, …])

linear_model.elasticnetcv([l1_ratio, eps, …])

linear_model.lasso([alpha, fit_intercept, …])

linear_model.linearregression([…]):最簡單的線性回歸模型,主要用於

linearregression(fit_intercept=

true

, normalize=

false

, copy_x=

true

, n_jobs=

1)

引數說明:

※ 一般來說只設定fit_intercept引數,其它引數預設。

linear_model.logisticregression([penalty, …]):對數機率回歸,主要

linear_model.ridge([alpha, fit_intercept, …])

linear_model.ridgeclassifier([alpha, …])

sklearn.metrics中的方法主要用於評估模型效能,以下方法第乙個引數都是樣本的真實值,第二個引數都是模型的**值。

classification metrics

混淆矩陣

設總的樣本數為total

regression metrics

設定屬性,防止中文亂碼:

mpl.rcparams[『font.sans-serif』] = [u』simhei』]

mpl.rcparams[『axes.unicode_minus』] = flase

###########################################

~持續更新中······

sklearn學習筆記

1.波士頓房價線性回歸模型 from sklearn import datasets from sklearn.linear model import linearregression boston datasets.load boston data x boston.data y boston.t...

sklearn學習筆記

決策樹一般採用整合,具有隨機,不純度最優 from sklearn import tree from sklearn.datasets import load wine from sklearn.model selection import train test split 用於劃分訓練測試集數目 ...

sklearn學習筆記

from sklearn.datasets import load iris from sklearn.model selection import train test split from sklearn.feature extraction import dictvectorizer from...