sklearn参数详解

  1.sklearn参数详解:

      a.KNN

          •n_neighbors:默认为5,就是k-NN的k的值,选取最近的k个点。

          •weights:默认是uniform,参数可以是uniform、distance,也可以是用户自己定义的函数。uniform是均等的权重,就说所有的邻近点的权重都是相等的。distance是不均等的权重,距离近的点比距离远的点的影响大。用户自定义的函数,接收距离的数组,返回一组维数相同的权重。

          •algorithm:快速k近邻搜索算法,默认参数为auto,可以理解为算法自己决定合适的搜索算法。除此之外,用户也可以自己指定搜索算法ball_tree、kd_tree、brute方法进行搜索,brute是蛮力搜索,也就是线性扫描,当训练集很大时,计算非常耗时。kd_tree,构造kd树存储数据以便对其进行快速检索的树形数据结构,kd树也就是数据结构中的二叉树。以中值切分构造的树,每个结点是一个超矩形,在维数小于20时效率高。balltree是为了克服kd树高纬失效而发明的,其构造过程是以质心C和半径r分割样本空间,每个节点是一个超球体。

          •leaf_size:默认是30,这个是构造的kd树和ball树的大小。这个值的设置会影响树构建的速度和搜索速度,同样也影响着存储树所需的内存大小。需要根据问题的性质选择最优的大小。

          •metric:用于距离度量,默认度量是minkowski,也就是p=2的欧氏距离(欧几里德度量)。

          •p:距离度量公式。在上小结,我们使用欧氏距离公式进行距离度量。除此之外,还有其他的度量方法,例如曼哈顿距离。这个参数默认为2,也就是默认使用欧式距离公式进行距离度量。也可以设置为1,使用曼哈顿距离公式进行距离度量。

          •metric_params:距离公式的其他关键参数,这个可以不管,使用默认的None即可。

          •n_jobs:并行处理设置。默认为1,临近点搜索并行工作数。如果为-1,那么CPU的所有cores都用于并行工作。

      b.Kmeans

          •n_clusters:簇的个数,即你想聚成几类

          •init:初始簇中心的获取方法

          •n_init:获取初始簇中心的更迭次数,为了弥补初始质心的影响,算法默认会初始10次质心,实现算法,然后返回最好的结果。

          •max_iter:最大迭代次数(因为kmeans算法的实现需要迭代)

          •tol:容忍度,即kmeans运行准则收敛的条件

          •precompute_distances:是否需要提前计算距离,这个参数会在空间和时间之间做权衡,如果是True会把整个距离矩阵都放到内存中,auto会默认在数据样本大于featurs*samples的数量大于12e6的时候False,False时核心实现的方法是利用Cpython来实现的

          •verbose:冗长模式(不太懂是啥意思,反正一般不去改默认值)

          •random_state:随机生成簇中心的状态条件。

          •copy_x:对是否修改数据的一个标记,如果True,即复制了就不会修改数据。bool在scikit-learn很多接口中都会有这个参数的,就是是否对输入数据继续copy操作,以便不修改用户的输入数据。这个要理解Python的内存机制才会比较清楚。

          •n_jobs:并行设置

          •algorithm:kmeans的实现算法,有:’auto’,‘full’,‘elkan’,其中‘full’表示用EM方式实现

      c.朴素贝叶斯

          i.高斯朴素贝叶斯:

          •priors:先验概率大小,如果没有给定,模型则根据样本数据自己计算(利用极大似然法)。

          对象

          •class_prior_:每个样本的概率

          •class_count:每个类别的样本数量

          •theta_:每个类别中每个特征的均值

          •sigma_:每个类别中每个特征的方差

          ii.伯努利朴素贝叶斯

          •alpha:平滑因子,与多项式中的alpha一致。

          •binarize:样本特征二值化的阈值,默认是0。如果不输入,则模型会认为所有特征都已经是二值化形式了;如果输入具体的值,则模型会把大于该值的部分归为一类,小于的归为另一类。

          •fit_prior:是否去学习类的先验概率,默认是True

          •class_prior:各个类别的先验概率,如果没有指定,则模型会根据数据自动学习,每个类别的先验概率相同,等于类标记总个数N分之一。

      d.决策树:

          •criterion:特征选择的标准,有信息增益和基尼系数两种,使用信息增益的是ID3和C4.5算法(使用信息增益比),使用基尼系数的CART算法,默认是gini系数。

          •splitter:特征切分点选择标准,决策树是递归地选择最优切分点,spliter是用来指明在哪个集合上来递归,有“best”和“random”两种参数可以选择,best表示在所有特征上递归,适用于数据集较小的时候,random表示随机选择一部分特征进行递归,适用于数据集较大的时候。

          •max_depth:决策树最大深度,决策树模型先对所有数据集进行切分,再在子数据集上继续循环这个切分过程,max_depth可以理解成用来限制这个循环次数。

          •min_samples_split:子数据集再切分需要的最小样本量,默认是2,如果子数据样本量小于2时,则不再进行下一步切分。如果数据量较小,使用默认值就可,如果数据量较大,为降低计算量,应该把这个值增大,即限制子数据集的切分次数。

          •min_samples_leaf:叶节点(子数据集)最小样本数,如果子数据集中的样本数小于这个值,那么该叶节点和其兄弟节点都会被剪枝(去掉),该值默认为1。

          •min_weight_fraction_leaf:在叶节点处的所有输入样本权重总和的最小加权分数,如果不输入则表示所有的叶节点的权重是一致的。

          •max_features:特征切分时考虑的最大特征数量,默认是对所有特征进行切分,也可以传入int类型的值,表示具体的特征个数;也可以是浮点数,则表示特征个数的百分比;还可以是sqrt,表示总特征数的平方根;也可以是log2,表示总特征数的log个特征。

          •random_state:随机种子的设置,与LR中参数一致。

          •max_leaf_nodes:最大叶节点个数,即数据集切分成子数据集的最大个数。

          •min_impurity_decrease:切分点不纯度最小减少程度,如果某个结点的不纯度减少小于这个值,那么该切分点就会被移除。

          •min_impurity_split:切分点最小不纯度,用来限制数据集的继续切分(决策树的生成),如果某个节点的不纯度(可以理解为分类错误率)小于这个阈值,那么该点的数据将不再进行切分。

          •class_weight:权重设置,主要是用于处理不平衡样本,与LR模型中的参数一致,可以自定义类别权重,也可以直接使用balanced参数值进行不平衡样本处理。

          •presort:是否进行预排序,默认是False,所谓预排序就是提前对特征进行排序,我们知道,决策树分割数据集的依据是,优先按照信息增益/基尼系数大的特征来进行分割的,涉及的大小就需要比较,如果不进行预排序,则会在每次分割的时候需要重新把所有特征进行计算比较一次,如果进行了预排序以后,则每次分割的时候,只需要拿排名靠前的特征就可以了。

          对象/属性

          §classes_:分类模型的类别,以字典的形式输出

          §feature_importances_:特征重要性,以列表的形式输出每个特征的重要性max_features_:最大特征数

          §n_classes_:类别数,与classes_对应,classes_输出具体的类别

          §n_features_:特征数,当数据量小时,一般max_features和n_features_相等

          §n_outputs_:输出结果数tree_:输出整个决策树,用于生成决策树的可视化

          方法

          §decision_path(X):返回X的决策路径fit(X,y):在数据集(X,y)上使用决策树模型

          §get_params([deep]):获取模型的参数

          §predict(X):预测数据值X的标签

          §predict_log_proba(X):返回每个类别的概率值的对数

          §predict_proba(X):返回每个类别的概率值(有几类就返回几列值)

  score(X,y):返回给定测试集和对应标签的平均准确率

猜你喜欢

转载自blog.csdn.net/qiuye1117/article/details/88887484
今日推荐