Sklearn 和 torch 常用的函数和库

Sklearn

from sklearn import datasets   #内置数据集
from sklearn.model_selection import train_test_split #分测试集和训练集

from sklearn.neighbors import KNeighborsClassifier #KNN
from sklearn.linear_model import LinearRegression# 线性回归模型
from sklearn.linear_model import LogisticRegression # LR模型

from sklearn import preprocessing
from sklearn.model_selection import cross_val_score
from sklearn.model_selection import learning_curve
from sklearn.metrics import roc_curve
from sklearn.metrics import auc

本表格参考传送门

大类小类适用问题实现说明
分类、回归
1.1 广义线性模型1.1.1 普通最小二乘法回归sklearn.linear_model.LinearRegression
注:本节中所有的回归模型皆为线性回归模型1.1.2 Ridge/岭回归回归sklearn.linear_model.Ridge解决两类回归问题:
一是样本少于变量个数
二是变量间存在共线性
1.1.3 Lasso回归sklearn.linear_model.Lasso适合特征较少的数据
1.1.4 Multi-task Lasso回归sklearn.linear_model.MultiTaskLassoy值不是一元的回归问题
1.1.5 Elastic Net回归sklearn.linear_model.ElasticNet结合了Ridge和Lasso
1.1.6 Multi-task Elastic Net回归sklearn.linear_model.MultiTaskElasticNety值不是一元的回归问题
1.1.7 Least Angle Regression(LARS)回归sklearn.linear_model.Lars适合高维数据
1.1.8 LARS Lasso回归sklearn.linear_model.LassoLars(1)适合高维数据使用
(2)LARS算法实现的lasso模型
1.1.9 Orthogonal Matching Pursuit (OMP)回归sklearn.linear_model.OrthogonalMatchingPursuit基于贪心算法实现
1.1.10 贝叶斯回归回归sklearn.linear_model.BayesianRidge
sklearn.linear_model.ARDRegression
优点: (1)适用于手边数据(2)可用于在估计过程中包含正规化参数
缺点:耗时
1.1.11 Logistic regression分类sklearn.linear_model.LogisticRegression
1.1.12 SGD(随机梯度下降法)分类
/回归
sklearn.linear_model.SGDClassifier
sklearn.linear_model.SGDRegressor
适用于大规模数据
1.1.13 Perceptron分类sklearn.linear_model.Perceptron适用于大规模数据
1.1.14 Passive Aggressive Algorithms分类
/回归
sklearn.linear_model.
PassiveAggressiveClassifier


sklearn.linear_model.
PassiveAggressiveRegressor
适用于大规模数据
1.1.15 Huber Regression回归sklearn.linear_model.HuberRegressor能够处理数据中有异常值的情况
1.1.16 多项式回归回归sklearn.preprocessing.PolynomialFeatures通过PolynomialFeatures将非线性特征转化成多项式形式,再用线性模型进行处理
1.2 线性和二次判别分析1.2.1 LDA分类/降维sklearn.discriminant_analysis.
LinearDiscriminantAnalysis
1.2.2 QDA分类sklearn.discriminant_analysis.
QuadraticDiscriminantAnalysis
1.3 核岭回归简称KRR回归sklearn.kernel_ridge.KernelRidge将核技巧应用到岭回归(1.1.2)中,以实现非线性回归
1.4 支持向量机1.4.1 SVC,NuSVC,LinearSVC分类sklearn.svm.SVC
sklearn.svm.NuSVC
sklearn.svm.LinearSVC
SVC可用于非线性分类,可指定核函数;
NuSVC与SVC唯一的不同是可控制支持向量的个数;
LinearSVC用于线性分类
1.4.2 SVR,NuSVR,LinearSVR回归sklearn.svm.SVR
sklearn.svm.NuSVR
sklearn.svm.LinearSVR
同上,将"分类"变成"回归"即可
1.4.3 OneClassSVM异常检测sklearn.svm.OneClassSVM无监督实现异常值检测
1.5 随机梯度下降同1.1.12
1.6 最近邻1.6.1 Unsupervised Nearest Neighborssklearn.neighbors.NearestNeighbors无监督实现K近邻的寻找
1.6.2 Nearest Neighbors Classification分类sklearn.neighbors.KNeighborsClassifier
sklearn.neighbors.RadiusNeighborsClassifier
(1)不太适用于高维数据
(2)两种实现只是距离度量不一样,后者更适合非均匀的采样
1.6.3 Nearest Neighbors Regression回归sklearn.neighbors.KNeighborsRegressor
sklearn.neighbors.RadiusNeighborsRegressor
同上
1.6.5 Nearest Centroid Classifier分类sklearn.neighbors.NearestCentroid每个类对应一个质心,测试样本被分类到距离最近的质心所在的类别
1.7 高斯过程(GP/GPML)1.7.1 GPR回归sklearn.gaussian_process.
GaussianProcessRegressor
与KRR一样使用了核技巧
1.7.3 GPC分类sklearn.gaussian_process.
GaussianProcessClassifier
1.8 交叉分解实现算法:CCA和PLS用来计算两个多元数据集的线性关系,当预测数据比观测数据有更多的变量时,用PLS更好
1.9 朴素贝叶斯1.9.1 高斯朴素贝叶斯分类sklearn.naive_bayes.GaussianNB处理特征是连续型变量的情况
1.9.2 多项式朴素贝叶斯分类sklearn.naive_bayes.MultinomialNB最常见,要求特征是离散数据
1.9.3 伯努利朴素贝叶斯分类sklearn.naive_bayes.BernoulliNB要求特征是离散的,且为布尔类型,即true和false,或者1和0
1.10 决策树1.10.1 Classification分类sklearn.tree.DecisionTreeClassifier
1.10.2 Regression回归sklearn.tree.DecisionTreeRegressor
1.11 集成方法1.11.1 Bagging分类/回归sklearn.ensemble.BaggingClassifier
sklearn.ensemble.BaggingRegressor
可以指定基学习器,默认为决策树
注:1和2属于集成方法中的并行化方法,3和4属于序列化方法1.11.2 Forests of randomized trees分类/回归RandomForest(RF,随机森林):
sklearn.ensemble.RandomForestClassifier
sklearn.ensemble.RandomForestRegressor
ExtraTrees(RF改进):
sklearn.ensemble.ExtraTreesClassifier
sklearn.ensemble.ExtraTreesRegressor
基学习器为决策树
1.11.3 AdaBoost分类/回归sklearn.ensemble.AdaBoostClassifier
sklearn.ensemble.AdaBoostRegressor
可以指定基学习器,默认为决策树
号外:最近特别火的两个梯度提升算法,LightGBM和XGBoost
(XGBoost提供了sklearn接口)
1.11.4 Gradient Tree Boosting分类/回归GBDT:
sklearn.ensemble.GradientBoostingClassifier
GBRT:
sklearn.ensemble.GradientBoostingRegressor
基学习器为决策树
1.11.5 Voting Classifier分类sklearn.ensemble.VotingClassifier须指定基学习器
1.12 多类与多标签算法sklearn中的分类算法都默认支持多类分类,其中LinearSVC、 LogisticRegression和GaussianProcessClassifier在进行多类分类时需指定参数multi_class
1.13 特征选择1.13.1 过滤法之方差选择法特征选择sklearn.feature_selection.VarianceThreshold特征选择方法分为3种:过滤法、包裹法和嵌入法。过滤法不用考虑后续学习器
1.13.2 过滤法之卡方检验特征选择sklearn.feature_selection.SelectKBest
1.13.3 包裹法之递归特征消除法特征选择sklearn.feature_selection.RFE包裹法需考虑后续学习器,参数中需输入基学习器
1.13.4 嵌入法特征选择sklearn.feature_selection.SelectFromModel嵌入法是过滤法和嵌入法的结合,参数中也需输入基学习器
1.14 半监督1.14.1 Label Propagation分类/回归sklearn.semi_supervised.LabelPropagation
sklearn.semi_supervised.LabelSpreading
1.15 保序回归回归sklearn.isotonic.IsotonicRegression
1.16 概率校准在执行分类时,获得预测的标签的概率
1.17 神经网络模型(待写)
降维
2.5 降维2.5.1 主成分分析降维PCA:
sklearn.decomposition.PCA
IPCA:
sklearn.decomposition.IncrementalPCA
KPCA:
sklearn.decomposition.KernelPCA
SPCA:
sklearn.decomposition.SparsePCA
(1)IPCA比PCA有更好的内存效率,适合超大规模降维。
(2)KPCA可以进行非线性降维
(3)SPCA是PCA的变体,降维后返回最佳的稀疏矩阵
2.5.2 截断奇异值分解降维sklearn.decomposition.TruncatedSVD可以直接对scipy.sparse矩阵处理
2.5.3 字典学习sklearn.decomposition.SparseCoder
sklearn.decomposition.DictionaryLearning
SparseCoder实现稀疏编码,DictionaryLearning实现字典学习
模型评估与选择
3.1 交叉验证/CV3.1.1 分割训练集和测试集sklearn.model_selection.train_test_split
3.1.2 通过交叉验证评估scoresklearn.model_selection.cross_val_scorescore对应性能度量,分类问题默认为accuracy_score,回归问题默认为r2_score
3.1.3 留一法LOOsklearn.model_selection.LeaveOneOutCV的特例
3.1.4 留P法LPOsklearn.model_selection.LeavePOutCV的特例
3.2 调参3.2.1 网格搜索sklearn.model_selection.GridSearchCV最常用的调参方法。可传入学习器、学习器参数范围、性能度量score(默认为accuracy_score或r2_score )等
3.2.2 随机搜索sklearn.model_selection.RandomizedSearchCV参数传入同上
3.3 性能度量3.3.1 分类度量对应交叉验证和调参中的score
3.3.2 回归度量
3.3.3 聚类度量
3.4 模型持久性使用pickle存放模型,可以使模型不用重复训练
3.5 验证曲线3.5.1 验证曲线sklearn.model_selection.validation_curve横轴为某个参数的值,纵轴为模型得分
3.5.2 学习曲线sklearn.model_selection.learning_curve横轴为训练数据大小,纵轴为模型得分
数据预处理
4.3 数据预处理4.3.1 标准化数据预处理标准化:
sklearn.preprocessing.scale
sklearn.preprocessing.StandardScaler
scale与StandardScaler都是将将特征转化成标准正态分布(即均值为0,方差为1),且都可以处理scipy.sparse矩阵,但一般选择后者
数据预处理
区间缩放:
sklearn.preprocessing.MinMaxScaler
sklearn.preprocessing.MaxAbsScale
MinMaxScaler默认为0-1缩放,MaxAbsScaler可以处理scipy.sparse矩阵
4.3.2 非线性转换数据预处理sklearn.preprocessing.QuantileTransformer可以更少的受异常值的影响
4.3.3 归一化数据预处理sklearn.preprocessing.Normalizer将行向量转换为单位向量,目的在于样本向量在点乘运算或其他核函数计算相似性时,拥有统一的标准
4.3.4 二值化数据预处理sklearn.preprocessing.Binarizer通过设置阈值对定量特征处理,获取布尔值
4.3.5 哑编码数据预处理sklearn.preprocessing.OneHotEncoder对定性特征编码。也可用pandas.get_dummies实现
4.3.6 缺失值计算数据预处理sklearn.preprocessing.Imputer可用三种方式填充缺失值,均值(默认)、中位数和众数。也可用pandas.fillna实现
4.3.7 多项式转换数据预处理sklearn.preprocessing.PolynomialFeatures
4.3.8 自定义转换数据预处理sklearn.preprocessing.FunctionTransformer

torch

转换torch.tensor
运算torch.mm
并行torch.CUDA
网络torch.nn

  • torch.nn.functional 激活函数和池化
  • torch.nn.Linear | torch.nn.conv2d 线性和卷积
  • torch.MSELoss | torch.CrossEntropyLoss 损失函数
  • torch.nn.init 网络初始化
  • torch.nn.Parameters 张量网络参数化

优化器torch.optim

  • torch.optim.SGD
  • torch.optim.lr_scheduler

辅助模块torch.utils

  • torch.utils.data
    • toch.utils.data.Dataset
    • torch.utils.data.DataLoader
  • torch.utils.tensorboard

存储载入

  • torch.load()
  • torch.save()
  • torch.load_state_dict()

动态图

+表示绑定

  • 优化器+权重张量
  • 输出张量+反向梯度函数
  • 优化器 ---->权重张量<------ (梯度张量)

个人记忆

pytorch / torchvision函数和属性说明
torch.to张量在不同的设备上移动;
张量运算产生的新张量和运算张量在同一设备上
torchvision.transforms图像预处理,有transforms.
torch.items获取张量中的元素;
也就是转为python中最常见的数据结构,比如int,float
torch.numpytensor转为numpy库中的ndarray数据结构;递归实现
torch.tolisttensor转为python原生的list数据结构;
递归实现(不会出现 [array(),array()] 这种)
torch.max返回为某个指定axis上的最大值以及对应的索引
sometensor.dtype张量的数据类型:
torch.float32
torch.float64
torch.float16 (half)
torch.long(int64)
torch.bool
sometensor.layout张量的内存分布
sometensor.requires_grad布尔属性,是否跟踪计算图进行梯度计算
sometensor.T等价sometensor.t()
转置
sometensor.view分布视角变换
和reshape类似,但是view是共享内存减少消耗
torch.cat将序列沿一个新的维度连接起来,不改变元素的形状和结构,要求输入序列的形状必须相同
torch.stack将序列沿一个已有的维度连接起来,会改变元素的形状。
需要注意的是,与torch.cat不同,torch.stack要求输入序列的形状必须相同。如果形状不同,可能会出现错误。因此,在使用torch.stack时,我们需要确保输入序列的形状是一致的
torch.nonzero返回非0元素索引
torch.squeeze轴的坍缩
torch.unsqueeze轴的新增
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在Python中运行这些代码,你需要确保已经安装了相应的包。大多数包都可以使用`pip`进行安装。 首先,在命令行中运行以下命令来安装所需的包: ```bash pip install scikit-learn pandas matplotlib numpy ``` 然后,在你的Python脚本中导入所需的: ```python from sklearn.model_selection import train_test_split from sklearn.decomposition import PCA import pandas as pd from sklearn import svm import numpy as np import math import matplotlib.pyplot as plt import matplotlib as mpl from matplotlib import colors from sklearn.model_selection import train_test_split from sklearn import datasets from matplotlib.colors import ListedColormap from sklearn.svm import SVC from sklearn.preprocessing import StandardScaler from sklearn.model_selection import StratifiedShuffleSplit, StratifiedKFold from sklearn.model_selection import GridSearchCV from sklearn.model_selection import GridSearchCV, LeaveOneOut, cross_val_predict from sklearn.model_selection import KFold from sklearn.linear_model import LogisticRegression from sklearn.naive_bayes import GaussianNB from sklearn.neighbors import KNeighborsClassifier from sklearn.tree import DecisionTreeClassifier from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score import datetime import multiprocessing as mp from sklearn.ensemble import StackingClassifier from sklearn.pipeline import make_pipeline from sklearn.svm import LinearSVC import random ``` 请确保在运行这些代码之前,已经安装了所需的Python。如果遇到任何问题,请确保已正确安装这些,并且版本与代码兼容。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万物琴弦光锥之外

给个0.1,恭喜老板发财

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值