Scikit学习备忘单:分类和回归方法

作者 : IT 大叔 本文共4202个字,预计阅读时间需要11分钟 发布时间: 2020-10-23

机器学习是当今世界中一项快速发展的技术。机器学习已经通过人脸识别,家庭助理,简历扫描仪和自动驾驶汽车等工具集成到我们的日常生活中。

Scikit-learn是用于执行分类,回归和聚类算法的最受欢迎的Python库它是其他Python数据科学库(例如matplotlibNumPy(用于图形和可视化)和SciPy(用于数学)的)的重要组成部分。

在上一篇有关Scikit学习的文章中,我们介绍了该库的基础知识以及最常见的操作。今天,我们将Scikit-learn知识再向前迈进了一步,教您如何执行分类和回归,然后逐一介绍10种最受欢迎​​的方法。

今天,我们将介绍:

  • 继续学习机器学习
  • 如何实施分类和回归
  • 10种流行的分类方法
  • 10种流行的回归方法

机器学习正在教会计算机执行和学习任务,而无需进行明确的编码。这意味着该系统具有一定程度的决策能力。机器学习可分为三大类:

  • 监督学习
  • 无监督学习
  • 强化学习

监督学习

在此ML模型中,我们的系统在老师的监督下学习。该模型具有用于训练的已知输入和输出。教师在训练过程中会知道输出,并训练模型以减少预测误差。有监督学习方法的两种主要类型是分类回归

无监督学习

无监督学习是指没有监督过程的模型。该模型仅使用输入进行训练。仅从输入中学习输出。无监督学习的主要类型是聚类,在聚类中,我们将相似的事物聚在一起以在未标记的数据集中找到模式。

强化学习

强化学习是指学习基于奖励惩罚做出决定并尝试通过正确答案最大化奖励的模型。强化学习通常用于游戏算法或机器人技术,其中机器人通过执行任务和接收反馈进行学习。

在这篇文章中,我将解释监督学习的两种主要方法:

  • 分类:在分类中,输出是离散数据。用简单的话来说,这意味着我们将基于某些功能对数据进行分类。例如,根据苹果和橙子的形状,颜色,纹理等进行区分。在此示例中,形状和颜色称为features“”,输出为“ Apple”或“ Orange”,称为Classes。由于输出称为类,因此该方法称为Classification
  • 回归:在回归中,输出是连续数据。在这种方法中,我们根据特征预测训练数据的趋势。结果不属于某个类别或类别,但给出的数字输出为实数。例如,预测房价指数是基于某些功能,如房子的大小房屋的位置,并没有。地板

如何实施分类和回归

Python提供了许多用于实现分类和回归的工具。最受欢迎的开源Python库是scikit-learn。让我们学习如何使用scikit-learn简单地执行分类和回归。

有关scikit学习的概述,请先阅读我们的Scikit学习教程,然后再继续此处。

监督机器学习的基本步骤包括:

  • 加载必要的库
  • 加载数据集
  • 将数据集分为训练和测试集
  • 训练模型
  • 评估模型

加载库

#Numpy deals with large arrays and linear algebra
import numpy as np
# Library for data manipulation and analysis
import pandas as pd 
 
# Metrics for Evaluation of model Accuracy and F1-score
from sklearn.metrics  import f1_score,accuracy_score
 
#Importing the Decision Tree from scikit-learn library
from sklearn.tree import DecisionTreeClassifier
 
# For splitting of data into train and test set
from sklearn.model_selection import train_test_split

加载数据集

train=pd.read_csv("/input/hcirs-ctf/train.csv")
# read_csv function of pandas reads the data in CSV format
# from path given and stores in the variable named train
# the data type of train is DataFrame

分为训练和测试集

#first we split our data into input and output
# y is the output and is stored in "Class" column of dataframe
# X contains the other columns and are features or input
y = train.Class
train.drop(['Class'], axis=1, inplace=True)
X = train
 
# Now we split the dataset in train and test part
# here the train set is 75% and test set is 25%
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=2)

训练模型

# Training the model is as simple as this
# Use the function imported above and apply fit() on it
DT= DecisionTreeClassifier()
DT.fit(X_train,y_train)

评估模型

# We use the predict() on the model to predict the output
pred=DT.predict(X_test)
 
# for classification we use accuracy and F1 score
print(accuracy_score(y_test,pred))
print(f1_score(y_test,pred))
 
# for regression we use R2 score and MAE(mean absolute error)
# all other steps will be same as classification as shown above
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import r2_score
print(mean_absolute_error(y_test,pred))
print(mean_absolute_error(y_test,pred))

既然我们知道了分类和回归的基本步骤,那么让我们了解一下可以在ML系统中使用的分类和回归的顶级方法。这些方法将简化您的ML编程。

注意:导入这些方法以代替DecisionTreeClassifier()

10种流行的分类方法

逻辑回归

from sklearn.linear_model import LogisticRegression

支持向量机

from sklearn.svm import SVC

朴素贝叶斯(高斯,多项式)

from sklearn.naive_bayes import GaussianNB
from sklearn.naive_bayes import MultinomialNB

随机梯度下降分类器

from sklearn.linear_model import SGDClassifier

KNN(k最近邻居)

from sklearn.neighbors import KNeighborsClassifier

决策树

from sklearn.tree import DecisionTreeClassifier

随机森林

from sklearn.ensemble import RandomForestClassifier

梯度提升分类器

from sklearn.ensemble import GradientBoostingClassifier

LGBM分类器

from lightgbm import LGBMClassifier

XGBoost分类器

from xgboost.sklearn import XGBClassifier

10种流行的回归方法

线性回归

from sklearn.linear_model import LinearRegression

LGBM回归器

from lightgbm import LGBMRegressor

XGBoost回归器

from xgboost.sklearn import XGBRegressor

CatBoost回归器

from catboost import CatBoostRegressor

随机梯度下降回归

from sklearn.linear_model import SGDRegressor

核岭回归

from sklearn.kernel_ridge import KernelRidge

弹性净回归

from sklearn.linear_model import ElasticNet

贝叶斯岭回归

from sklearn.linear_model import BayesianRidge

梯度提升回归

from sklearn.ensemble import GradientBoostingRegressor

支持向量机

from sklearn.svm import SVR

接下来要学什么

我希望这段简短的教程和备忘单对您的scikit学习之旅有所帮助。当您继续学习这些强大的工具时,这些方法将使您的数据科学家的旅程更加顺畅和简单。关于Scikit学习和其他Python ML库,还有很多要学习的知识。

在您继续进行Scikit学习的过程中,以下是需要学习的算法和主题:

  • 支持向量机
  • 随机森林
  • 交叉验证技术
  • grid_search
  • fit_transform
  • n_clusters
  • n_neighbors
  • sklearn.grid
免责声明:
1. 本站资源转自互联网,源码资源分享仅供交流学习,下载后切勿用于商业用途,否则开发者追究责任与本站无关!
2. 本站使用「署名 4.0 国际」创作协议,可自由转载、引用,但需署名原版权作者且注明文章出处
3. 未登录无法下载,登录使用金币下载所有资源。
IT小站 » Scikit学习备忘单:分类和回归方法

常见问题FAQ

没有金币/金币不足 怎么办?
本站已开通每日签到送金币,每日签到赠送五枚金币,金币可累积。
所有资源普通会员都能下载吗?
本站所有资源普通会员都可以下载,需要消耗金币下载的白金会员资源,通过每日签到,即可获取免费金币,金币可累积使用。

发表评论