sklearn 源码解析 基本线性模型 base.py

from __future__ import division
from abc import ABCMeta, abstractmethod: 有关实现抽象类的方法。
import numbers: 抽象基类层次结构,这些类不可被实例化。
import warnings

import numpy as np
import scipy.sparse as sp
from scipy import linalg
from scipy import sparse

from ..externals import six: 版本有关
from ..externals.joblib import Parallel, delayed:前者操纵多线程,后者用于捕获
      参数:
  EX:[delayed(sqrt)(i ** 3)for i in range(10)]
   要应用前者必须用后者生成捕获参数的形式。
from ..base import BaseEstimator, ClassifierMixin, RegressorMixin:
 这里Mixin类是为了解决多重继承的问题提出的,目的是为派生类提供
 可用的接口,而又不需要繁复的继承,即Minin类无实例化意义但有方法意义。
from..utils import check_array, check_X_y, deprecated, as_float_array
 deprecated(反对) decorator: 用于在装饰对象被调用时提供警告提示。
from ..utils.validation import FLOAT_DTYPES:
  (numpy.float64, numpy.float32, numpy.float16)
from ..utils import check_random_state:
 对设定的随机数状态进行更新。
from ..utils.extmath import safe_sprse_dot:
 正确处理稀疏矩阵的点乘函数,可见矩阵乘法的快速计算并非通过定义完成。
from ..utils.sparsefuncs import mean_variance_axis, inplace_column_scale
 CSR CSC 为不同的稀疏矩阵存储格式,
 mean_variance_axis:指定计算稀疏矩阵沿某一轴方向的mean variance.
 inplace_column_scale:对数据阵的列实现scale指定的列乘积变换。
from ..utils.fixes import sparse_lsqr
 对于大型 稀疏 线性系统 或等式 找到最小二乘解。
from ..utils.seq_datasets import ArrayDataset, CSRDataset
 数据集类型 分别指定了表示形式为二维数组及稀疏矩阵
from ..utils.validation import check_is_fitted:
 看模型与所提供的参数是否一致。
from ..exceptions import NotFittedError
from ..preprocessing.data import normalize as f_normalize
 正则化变换(只正则不中心),默认axis = 1是针对feature的。

SPARSE_INTERCEPT_DECAY = 0.01
 对于稀疏数据的相应常数列使用此参数进行调整,避免震荡。(。。。)

def make_datasets(X, y, sample_weight, random_state = None):
 rng = check_random_state(random_state)
 seed = rng.randint(1, np.iinfo(np.int32).max)

 if sp.issparse(X):
  dataset = CSRDataset(X.data, X.indptr, X.indices, y, sample_weight, seed = seed)
  intercept_decay = SPARSE_INTERCEPT_DECAY
 else:
  dataset = ArrayDataset(X, y, sample_weight, seed = seed)
  intercept_decay = 1

 return dataset, intercept_decay


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值