利用python第三方sklearn进行简单的回归、分类应用

一、基础知识

        1.sklearn全名scikit-learn,在pycharm中添加时应搜索全名,是基于python语言的机器学习工具包。本文sklearn版本为1.1.2,使用其提供的一些功能进行实现回归预测、分类等任务。

        2.pandas是另一个在数据处理中十分重要的库,通过它可以维护一个表格,储存需要的数据,就像Excel表格一样。其中只有一个维度的数据结构是Series,二维是DataFrame。简单的回归学习中,自变量值可以是二维的,因变量往往只是一维。如下图前四列(“ch1”至“ch4”列)可作为自变量,最后一列为因变量。每行的四个自变量对应着最后一个因变量。这个表格的数据有统计工作得来,其内在关系则是我们要进行探索的。

ch1ch2ch3ch4y
01.10.110231
12.20.220452
23.30.339343
34.40.439234
45.50.554235.5
56.60.534546
67.70.523137
78.80.543458
89.90.82329

二、主要类和函数

        sklearn等第三方库通过提供函数和类简化编写程序时的工作,要实现某项功能只需要引用相应函数即可。

        本文展示由sklearn实现的过程逻辑回归、支持向量机回归、决策树、多层感知机、自适应提升、线性回归、线性判别、K邻近回归·、朴素贝叶斯、随机森林、极端树、梯度提升算法。导入相关函数代码如下

# 以下为回归方法
from sklearn.svm import SVR # 支持向量机回归
from sklearn.ensemble import AdaBoostRegressor # 自适应提升回归
from sklearn.ensemble import RandomForestRegressor # 随机森林回归
from sklearn.ensemble import ExtraTreesRegressor # 极端树回归
from sklearn.ensemble import GradientBoostingRegressor # 梯度提升回归
from sklearn.linear_model import Ridge # 岭回归
from sklearn.linear_model import Lasso # Lasso回归
from sklearn.linear_model import ElasticNet # 弹性网回归
from sklearn.linear_model import LassoLars # LassoLars回归
from sklearn.linear_model import BayesianRidge # 贝叶斯岭回归
from sklearn.linear_model import LinearRegression # 线性回归
from sklearn.tree import DecisionTreeRegressor # 决策树回归
from sklearn.neural_network import MLPRegressor # 多层感知机回归
# 以下为分类方法
from sklearn.linear_model import LogisticRegression # 逻辑回归
from sklearn.discriminant_analysis import LinearDiscriminantAnalysis # 线性判别
from sklearn.naive_bayes import GaussianNB #高斯朴素贝叶斯分类

       亦可通过其他方法导入,如直接导入sklearn,每次通过打点访问到下属的类或函数。在上述代码中sklearn之后通过点连接的均为sklearn的类,我们从这些类中导入了其中下一级的类。

        值得注意的是逻辑回归是一个分类方法。其实名字并不重要,重要的是它以及后两个分类方法在训练时,训练集的y值需要是整数。而回归可以是任意实数。通过下方代码,将一个Series转为整型。

y_test.astype('int')

       三、模型训练

        对于回归和分类,主要任务是通过已有数据,训练好一个模型,并将这个模型应用于一些知道自变量的数据上,来预测其因变量值或分类结果。这是典型的监督学习。

        注意,上文刚刚导入了一些用于机器学习的类。从面向对象编程的角度出发,此时应实例化一些类,以进行下一步工作。这个实例化的过程就是创建一些空白的模型,这些模型还没有被训练。实例化的指令很简单,只需给出一个名字即可:

model_1=LinearRegression()

        model_1就是新建好的支持向量机回归模型,同理我们可以实例化其他空白的机器学习模型。

        训练的命令也很简单,通过打点的方式,访问类中函数即可。至于函数是怎么实现的,每个模型有着不同算法,这是偏向数学与数理统计的内容,此处不做介绍。

        fit()函数可以帮助我们训练大多数模型,几乎所有模型都有这个函数。其传入的参数依次为自变量和因变量。训练好的模型,可以通过predict函数进行预测的工作,只需传入自变量。

x_train = np.array([1,2,3,4,5,6]).reshape(-1,1)
y_train = np.array([4,5,6,7,8,9]).reshape(-1,1)
x_test= np.array([7,8]).reshape(-1,1)

model_1.fit(x_train,y_train)
model_1.predict(x_test)

       此时,最后一句函数会返回预测值如下。

[[10.]
 [11.]]

        应注意部分模型对输入值的形式有着特殊要求,如分类模型y必须为整数等,需要进行特殊的数据预处理。

        四、模型保存

        对于sklearn学习得到的模型,可以使用第三方库joblib进行保,通过下方代码可以将训练好的线性回归模型保存为同目录下的pkl文件。

import joblib
joblib.dump(model_1,'model01.pkl')

        在另一个python文件中导入joblib可以带入模型。

import joblib
model=joblib.load('model01.pkl')

        此时得到的model即为刚刚训练好的模型,在新的文件中无需导入sklearn即可使用其进行预测以及其他操作。

        

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不想改代码

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值