>  기사  >  기술 주변기기  >  지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

王林
王林앞으로
2023-04-10 08:21:144951검색

​지도 학습이란 무엇인가요?

지도 학습은 기계 학습의 하위 집합입니다. 지도 학습은 기계 학습 모델의 입력 데이터에 레이블을 지정하고 이를 실행합니다. 따라서 지도 모델은 모델의 출력을 최대한 예측할 수 있습니다.

지도 학습의 개념은 교사가 아이들을 가르치는 등 실생활에서도 찾아볼 수 있습니다. 교사가 아이들에게 고양이와 개 이미지를 인식하도록 가르치기를 원한다고 가정해 보겠습니다. 고양이나 개 이미지를 지속적으로 보여주면서 그 이미지가 개인지 고양이인지 알려주는 방식으로 아이를 지도하게 됩니다.

이미지를 표시하고 알리는 과정은 머신러닝 모델의 학습 과정에서 어떤 데이터가 어떤 카테고리에 속하는지 알려주는 데이터 라벨링이라고 할 수 있습니다.

지도 학습의 용도는 무엇인가요? 지도 학습은 회귀 문제와 분류 문제 모두에 사용될 수 있습니다. 분류 모델을 사용하면 알고리즘이 주어진 데이터가 어느 그룹에 속하는지 결정할 수 있습니다. 예에는 참/거짓, 개/고양이 등이 포함될 수 있습니다.

회귀 모델은 과거 데이터를 기반으로 미래 가치를 예측할 수 있기 때문에 직원 임금이나 부동산 매매 가격을 예측하는 데 사용할 수 있습니다.

이 기사에서는 지도 학습에 사용되는 몇 가지 일반적인 알고리즘과 이러한 알고리즘에 대한 실용적인 튜토리얼을 나열합니다.

선형 회귀

선형 회귀는 주어진 입력 값을 기반으로 출력 값을 예측하는 지도 학습 알고리즘입니다. 선형 회귀는 대상(출력) 변수가 연속 값을 반환할 때 사용됩니다.

선형 알고리즘에는 단순 선형 회귀와 다중 선형 회귀라는 두 가지 주요 유형이 있습니다.

단순 선형 회귀는 하나의 독립(입력) 변수만 사용합니다. 예를 들어 키를 기준으로 어린이의 나이를 예측하는 경우가 있습니다.

반면 다중 선형 회귀는 여러 독립 변수를 사용하여 최종 결과를 예측할 수 있습니다. 예를 들어 위치, 크기, 수요 등을 기반으로 특정 부동산의 가격을 예측하는 것입니다.

선형 회귀 공식은 다음과 같습니다.

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

Python 예제에서는 선형 회귀를 사용하여 주어진 x 값을 기준으로 y 값을 예측합니다.

우리가 제공한 데이터 세트에는 x와 y라는 두 개의 열만 포함되어 있습니다. y 결과는 연속 값을 반환합니다.

다음은 주어진 데이터세트의 스크린샷입니다.

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

Python을 사용한 선형 회귀 모델의 예

1. 필요한 라이브러리를 가져옵니다

import numpy as np <br>import pandas as pd <br>import matplotlib.pyplot as plt <br>import seaborn as sns from sklearn <br>import linear_model from sklearn.model_selection <br>import train_test_split import os

2. 데이터세트를 읽고 샘플링하세요

To 데이터 세트를 단순화하기 위해 50개 데이터 행의 샘플을 채취하고 데이터 값을 유효 숫자 2자리로 반올림했습니다.

이 단계를 완료하기 전에 주어진 데이터세트를 가져와야 한다는 점에 유의하세요.

df = pd.read_csv("../input/random-linear-regression/train.csv") <br>df=df.sample(50) df=round(df,2)

3. Null 및 무한 값 필터링 ​​

데이터 세트에 Null 및 무한 값이 포함되어 있으면 오류가 발생할 수 있습니다. 따라서 clean_dataset 함수를 사용하여 이러한 값의 데이터 세트를 정리합니다.

def clean_dataset(df): <br>assert isinstance(df, pd.DataFrame), "df needs to be a pd.DataFrame" <br>df.dropna(inplace=True) <br>indices_to_keep = ~df.isin([np.nan, np.inf, -np.inf]).any(1) <br>return df[indices_to_keep].astype(np.float64)<br>df=clean_dataset(df)

4. 종속 및 독립 값을 선택하세요. ​​

데이터를 DataFrame 형식으로 변환합니다. dataframe 데이터 유형은 데이터를 행과 열로 정렬하는 2차원 구조입니다.

5. 데이터 세트 분할

데이터 세트를 훈련 부분과 테스트 부분으로 나눕니다. 테스트 데이터 세트 크기는 전체 데이터 세트의 20%로 선택되었습니다.

random_state=1로 설정하면 모델이 실행될 때마다 동일한 데이터 분할이 발생하여 정확히 동일한 교육 및 테스트 데이터 세트가 생성됩니다.

모델을 추가로 조정하려는 경우에 유용합니다.

x_train,  x_test, y_train, y_test = train_test_split(X, Y, test_size=0.2, random_state=1)

6.建立线性回模型

使用导入的线性回归模型,我们可以在模型中自由使用线性回归算法,绕过我们为给定模型获得的 x 和 y 训练变量。

lm=linear_model.LinearRegression() lm.fit(x_train,y_train)

7. 以分散的方式绘制我们的数据

df.plot(kind="scatter", x="x", y="y")

8. 制我线性回归线

plt.plot(X,lm.predict(X), color="red")

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

蓝点表示数据点,而红线是模型绘制的最佳拟合线性回归线。线性模型算法总是会尝试绘制最佳拟合线以尽可能准确地预测结果。

逻辑回归

与线性回归类似,逻辑回归根据输入变量预测输出值,两种算法的主要区别在于逻辑回归算法的输出是分类(离散)变量。

对于 Python示例,使用逻辑回归将”分成两个不同的类别/种类。给定的数据集中会包括不同花的多个特征。

模型的目的是将给花识别为Iris-setosa、Iris-versicolor或 Iris-virginica 几个种类

下面是给定数据集的截图

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

使用 Python 的逻辑回归模型示例

1.导入必要的库

import numpy as np <br>import pandas as pd from sklearn.model_selection <br>import train_test_split import warnings warnings.filterwarnings('ignore')

2. 导入数据集

data = pd.read_csv('../input/iris-dataset-logistic-regression/iris.csv')

3. 选择我们依赖和独立的价值观

对于独立 value(x) ,将包括除类型列之外的所有可用列。至于我们的可靠值(y),将只包括类型列。

X = data[['x0','x1','x2','x3','x4']] <br>y = data[['type']]

4. 拆分数据集

将数据集分成两部分,80% 用于训练数据集,20% 用于测试数据集。

X_train,X_test,y_train,y_test = train_test_split(X,y, test_size=0.2, random_state=1)

5. 运行逻辑模型

从 linear_model 库中导入整个逻辑回归算法。然后我们可以将 X 和 y 训练数据拟合到逻辑模型中。

from sklearn.linear_model import LogisticRegression <br>model = LogisticRegression(random_state = 0) <br>model.fit(X_train, y_train)

6. 评估我们模型的性能

print(lm.score(x_test, y_test))

返回值为0.9845128775509371,这表明我们模型的高性能。

请注意,随着测试分数的增加,模型的性能也会增加。

7.

import matplotlib.pyplot as plt %matplotlib inline <br>plt.plot(range(len(X_test)), pred,'o',c='r')

输出图:

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

在逻辑图中,红点表示给定的数据点。这些点清楚地分为 3 类,Virginica、versicolor 和 setosa 花种。

使用这种技术,逻辑回归模型可以根据花在图表上的位置轻松对花类型进行分类。

支持向量机

支持向量机( SVM) 算法是另一个著名的监督机器学习模型,由 Vladimir Vapnik 创建,它能够解决分类和回归问题。实际上它更多地被用到解决分类问题。

SVM 算法能够将给定的数据点分成不同的组。算法绘制数据之后,可以绘制最合适的线将数据分成多个类别,从而分析数据之间的关系

如下图所示,绘制的线将数据集完美地分成 2 个不同的组,蓝色和绿色。

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

SVM 模型可以根据图形的维度绘制直线或超平面。行只能用于二维数据集,这意味着只有 2 列的数据集。

如果是多个特征来预测数据集,就需要更高的维度。在数据集超过 2 维的情况下,支持向量机模型将绘制超平面。

在支持向量机 Python 的示例中,将对 3 种不同的花卉类型进行物种分类。我们的自变量包括花的所有特征,而因变量是花所属物种。

花卉品种包括Iris-setosa Iris-versicolorIris-virginica

下面是数据集的截图:

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

使用 Python 的支持向量机模型示例

1.入必要的

import numpy as np <br>import pandas as pd from sklearn.model_selection <br>import train_test_split from sklearn.datasets <br>import load_iris

2. 定的数据集

请注意,在执行此步骤之前,应该导入数据集。

data = pd.read_csv(‘../input/iris-flower-dataset/IRIS.csv’)

3. 将数据列拆分量和自

将 X 值作为自变量,其中包含除物种列之外的所有列。

变量y仅包含模型预测的物种列。

X = data.drop(‘species’, axis=1) y = data[‘species’]

4. 将数据集拆分为训练测试数据集

将数据集分为两部分,其中我们将 80% 的数据放入训练数据集中,将 20% 放入测试数据集中。

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=1)

5.入SVM并运行模型

导入了支持向量机算法。然后,使用上面步骤中收到的 X 和 y 训练数据集运行它。

from sklearn.svm import SVC <br>model = SVC( ) <br>model.fit(X_train, y_train)

6. 测试模型的性能

model.score(X_test, y_test)

为了评估模型的性能,将使用 score 函数。在第四步中创建的 X 和 y 测试值输入到 score 方法中。

返回值为0.9666666666667,这表明模型的高性能。

请注意,随着测试分数的增加,模型的性能也会增加。

다른 인기 있는 지도 기계 학습 알고리즘

선형, 로지스틱 및 SVM 알고리즘은 매우 안정적이지만 will몇 가지 지도 기계 학습 알고리즘을 언급했습니다.

1. 결정tree

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

의사결정 트리 알고리즘은 유용한 A입니다. 의사결정을 위해 트리형 구조를 활용하는 지도 머신러닝 모델입니다. 결정 트리는 모델이 데이터 세트의 특정 항목이 어느 그룹에 속하는지 결정할 수 있는 분류 문제에 자주 사용됩니다.

사용된 트리 형식은 역트리 형식이므로 주의하시기 바랍니다.

2. Random Forest

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

은 더 복잡한 알고리즘으로 간주됩니다. 랜덤 포레스트 알고리즘다수의 의사결정 트리를 구축하여 궁극적인 목표를 달성하세요.

은 여러 의사결정 트리를 동시에 구축하는 것을 의미합니다. 각 의사결정 트리는 자체 결과를 반환한 다음 더 나은 결과를 얻기 위해 결합됩니다.

분류 문제의 경우 랜덤 포레스트 모델은 여러 결정 트리를 생성하고 대부분의 트리에서 예측한 분류 그룹을 기반으로 특정 객체를 분류합니다.

모델은 단일 트리로 인한 과적합 문제 을 수정할 수 있습니다. 또한 Random Forest 알고리즘을 회귀에도 사용할 수 있지만 바람직하지 않은 결과가 발생할 수 있습니다.

3. kRecentneighbor(KNN) 알고리즘은 주어진 모든 데이터를 별도의 그룹으로 그룹화하는 지도형 기계 학습 방법입니다.

이 그룹화는 서로 다른 개인 간의 공통된 특성을 기반으로 합니다. KNN 알고리즘은 분류 문제와 회귀 문제 모두에 사용될 수 있습니다.

지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?

KNN의 classic example

동물 이미지를 여러 그룹으로 분류하는 것입니다.

요약

이 기사 에서는 지도형 기계 학습과 이를 통해 해결할 수 있는 두 가지 유형의 문제인 , 소개했습니다. 분류 및 회귀 문제를 설명했습니다. 은 각 출력 데이터 유형의 몇 가지 예를 제공합니다.

선형 회귀가 무엇인지, 어떻게 작동하는지 자세히 설명하고, 독립 X 변수 Y 값을 기반으로 예측하는 Python의 구체적인 예를 제공합니다.

그런 다음 로지스틱 회귀 모델 을 도입했습니다. 특정 이미지 카테고리를 제공하는 분류 모델 예를 제공합니다. 특정 꽃 종류.

서포트 벡터 머신 알고리즘의 경우 을 사용하여 3가지 다른 꽃 종의 주어진 꽃 종을 예측할 수 있습니다. 마지막으로 목록 결정 트리, 랜덤 포레스트 및 K 최근접 이웃 알고리즘과 같은 다른 유명한 지도 기계 학습 알고리즘이 있습니다. 이 기사를 배우고

, 업무용이든 재미용이든 상관없이, 우리는알고리즘을 이해하는 것이 시작점이라고 생각합니다 Enter the machine 학습 분야의 시작. 머신러닝 분야에 관심이 있고 더 자세히 알고 싶다면 해당 알고리즘의 작동 방식과 이러한 모델을 조정하여 성능을 더욱 향상시키는 방법을

자세히 알아보는 것이 좋습니다. 성능. 번역자 소개

Cui Hao, 51CTO 커뮤니티 에디터, 수석 아키텍트는 18년의 소프트웨어 개발 및 아키텍처 경험, 10년의 분산 아키텍처 경험을 가지고 있습니다. 이전에는 HP의 기술 전문가였습니다. 그는 공유할 의지가 있으며 600,000회 이상 읽힌 많은 인기 기술 기사를 작성했습니다. ​​

"분산 아키텍처의 원리와 실제"

​​의 저자입니다. 원제:

기계 학습에 사용되는 기본 지도 학습 알고리즘

, 저자: Kevin Vu

위 내용은 지도 학습을 위한 일반적인 알고리즘은 무엇입니까? 어떻게 적용되나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제