本文对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')
参数说明:
n_clusters
:簇的数量及中心点的数量,即K值。除n_clusters外,其他参数都是KMeans算法的优化。init
:初始化方法,可选参数’k-means++’、'random’或给定一个ndarray数组,默认为k-means++。n_int
:KMeans算法以不同中心点运行的次数,最终的结果采用最好的输出。max_iter
:最大迭代次数,默认300属性:
cluster_centers_
:array,簇的中心点坐标labels_
:每个样本对应簇的下标(0,1,2…)inertia_
:float,所有样本到他们距离最近的簇中心点的距离的和。方法:
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)
参数说明:
X, y
:待分割的数据集,允许同时分割多个数据集test_size
:指定分割比例,test_size是分割之后测试集所占比例random_state
:随机数种子,保证多次运行效果一致包含很多数据(如波士顿房屋租赁、鸢尾花分类等),可以直接下载用于训练模型。
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)
参数说明:
n_samples
:数据集中的样本点数n_features
:每个样本的维度,即特征数目centers
:int or array of shape [ n_centers, n_features],中心点的数目(默认为3)或指定中心点坐标。cluster_std
:样本簇的标准差,默认为1.0center_box
:pair of floats(min, max),样本簇的边界,最小值和最大值shuffle
:是否打乱顺序,默认打乱random_state
:随机数种子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'
参数说明:
learning_rate
:学习率,默认为0.1n_estimators
:基学习器(即子模型)个数,默认为100subsample
:criterion
:划分依据min_samples_split
:划分节点所需的最小样本数,默认为2min_samples_leaf
:max_depth
:子模型决策树的最大深度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
:是否训练截距项,默认训练normalize
:数据集X是否标准化,默认不进行标准化copy_X
:对数据集X是否拷贝一个副本。若为True,对拷贝的副本X进行训练;若为False,则直接对X进行训练。※ 一般来说只设置fit_intercept参数,其它参数默认。
linear_model.LogisticRegression([penalty, …]):对数几率回归,主要
linear_model.Ridge([alpha, fit_intercept, …])
linear_model.RidgeClassifier([alpha, …])
sklearn.metrics中的方法主要用于评估模型性能,以下方法第一个参数都是样本的真实值,第二个参数都是模型的预测值。
metrics.accuracy_score(y_true, y_pred[, …]):分类的准确率
metrics.classification_report(y_true, y_pred):模型分类效果的评估报告
metrics.confusion_matrix(y_true, y_pred[, …]):混淆矩阵
metrics.f1_score(y_true, y_pred[, labels, …]):F1指标
metrics.precision_score(y_true, y_pred[, …]):精确率
metrics.recall_score(y_true, y_pred[, …]):召回率
metrics.mean_absolute_error(y_true, y_pred):MAE,绝对值误差,真实值与预测值之差的总和,值越小表明模型效果越好。
metrics.mean_squared_error(y_true, y_pred[, …]):MSE,均方差,值越小(越接近0)表明模型效果越好
metrics.r2_score(y_true, y_pred[, …]):R2,表征回归模型的性能,值越接近1 表示效果越好。
###########################################
设置属性,防止中文乱码:
mpl.rcParams[‘font.sans-serif’] = [u’simHei’]
mpl.rcParams[‘axes.unicode_minus’] = Flase
###########################################
~持续更新中······