sklearn库简述-zstarling

模型的选择与评估

划分数据集

from sklearn.model_selection import StratifiedShuffleSplit  

评估模型

用于计算真实值与预测值之间的预测误差

from sklearn.metrics import accuracy_score, log_loss     

_score结尾的函数,返回值越大,效果越好;_loss结尾的函数,返回值越小,效果越好。

监督学习

最近邻

最近邻 不仅可以用于分类,也可以用于回归

from sklearn import neighbors as  nn

# 'algorithm' 来控制, 并必须是 ['auto', 'ball_tree', 'kd_tree', 'brute'] 其中的一个。
# 当设置为默认值 'auto' 时,算法会尝试从训练数据中确定最佳方法。
model = nn.NearestNeighbors()  # 无监督最近邻
model = nn.KNeighborsClassifier()  # 最近邻分类:基于每个查询点的 k 个最近邻实现,其中 k 是用户指定的整数
model = nn.RadiusNeighborsClassifier()  # 最近邻分类:基于每个查询点的固定半径 r 内的邻居数量实现, 其中 r 是用户指定的浮点数值。
model = nn.KNeighborsRegressor()  # 最近邻回归:基于每个查询点的 k 个最近邻实现,其中 k 是用户指定的整数
model = nn.RadiusNeighborsRegressor()  # 最近邻回归:基于每个查询点的固定半径 r 内的邻居数量实现, 其中 r 是用户指定的浮点数值。

支持向量机(SVM)

支持向量机不仅可以用于回归分析(SVR),也可以用于分类(SVC),也可以用于模式识别和异常检测。

from sklearn import svm
# SVM 主要针对的是多分类
# 核函数kernel:参数选择有RBF, Linear, Poly, Sigmoid, 默认的是"RBF";
model=svm.LinearSVC() # 线性核函数(one-vs-rest)的支持向量分类
model=svm.NuSVC()# 核函数可选择(one-vs-one)的核支持向量分类
model=svm.SVC () # 核函数可选择(one-vs-one)的支持向量分类
model=svm.LinearSVR()# 线性核函数的支持向量回归
model=svm.NuSVR() # 核函数可选择(one-vs-one)的核支持向量回归
model=svm.SVR ()  # 核函数可选择的支持向量分类回归
model=svm.OneClassSVM() # 一个用于离群点检测的单类SVM

在这里插入图片描述

决策树

from sklearn.tree import DecisionTreeClassifier

决策树用于做分类

集成方法

集成方法不仅可以用于回归,也可以用于分类

from sklearn import ensemble as esm

# 分类
model = esm.BaggingClassifier()  # 平均方法:Bagging 元估计器
model = esm.RandomForestClassifier()  # 平均方法:随机森林
model = esm.AdaBoostClassifier()  # boosting方法:AdaBoost
model = esm.GradientBoostingClassifier()  # boosting方法:梯度提升树(既支持二分类又支持多分类)
model = esm.VotingClassifier()  # 投票分类器
#  回归
model = esm.BaggingRegressor()  # Bagging 元估计器
model = esm.RandomForestRegressor()  # 随机森林
model = esm.AdaBoostRegressor()  # AdaBoost
model = esm.GradientBoostingRegressor()  # 梯度提升数
model = esm.VotingRegressor()  # 投票回归器

集成方法分为两种 平均方法和boosting方法

  • 平均方法,该方法的原理是构建多个独立的估计器,然后取它们的预测结果的平均。一般来说组合之后的估计器是会比单个估计器要好的,因为它的方差减小了。eg: Bagging 方法 , 随机森林 , …

  • boosting 方法中,基估计器是依次构建的,并且每一个基估计器都尝试去减少组合估计器的偏差。这种方法主要目的是为了结合多个弱模型,使集成的模型更加强大。eg: AdaBoost , 梯度提升树 ,

朴素贝叶斯

朴素贝叶斯属于生成方法,其他的属于判别方法。朴素贝叶斯仅用于分类

from sklearn import naive_bayes as nb

model=nb.GaussianNB()  # 高斯朴素贝叶斯
model=nb.MultinomialNB() # 多项式分布朴素贝叶斯
model=nb.ComplementNB() # 补充朴素贝叶斯
model=nb.BernoulliNB() # 伯努利朴素贝叶斯

线性回归

仅用于回归

from sklearn import linear_model as lm

model = lm.LinearRegression()  # 普通线性回归
model = lm.ridge_regression()  # 岭回归
model = lm.RidgeCV()  # 交叉验证法的岭回归
model = lm.Lasso()  # Lasso回归
model = lm.LassoCV()  # 基于交叉验证算法的Lasso回归
model = lm.LassoLars()  # 基于最小角回归算法的lasso回归  (适用于样本数量比特征数量少的多的情况)
model = lm.LassoLarsCV()  # 基于交叉验证 最小角回归算法的lasso回归  (适用于样本数量比特征数量少的多的情况)
model = lm.ElasticNet()  # 弹性网络
model = lm.LogisticRegression()  # 解决二分类(0 or 1)问题的分类方法

#  多任务Lasso及多任务弹性网络
model = lm.MultiTaskLasso()  # 采用了坐标下降法求解参数。
model = lm.MultiTaskLassoCV()  # 通过交叉验证来设置参数
model = lm.MultiTaskElasticNet()  # 采用了坐标下降法求解参数。
model = lm.MultiTaskElasticNetCV()  # 通过交叉验证来设置参数

随机梯度下降

适用于分类 ,也适用于回归。

from sklearn import linear_model as lm
# `在拟合模型前,确保重新排列了(打乱)训练数据,或者使用 shuffle=True 在每次迭代后打乱训练数据。`
model = lm.SGDClassifier()  # one-vs-rest分类
model = lm.SGDRegressor()  # 非常适用于有大量训练样本(>10.000)的回归问题,

判别分析

from sklearn.discriminant_analysis import LinearDiscriminantAnalysis, QuadraticDiscriminantAnalysis

判别分析主要包括两类:线性判别分析 LinearDiscriminantAnalysis和非线性判别分析QuadraticDiscriminantAnalysis

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值