8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【初心者】デヌタのスケヌリングを調べおみた

8
Last updated at Posted at 2022-05-01

背景・目的

私は、珟圚デヌタ゚ンゞニアリングを生業ずしおいたす。普段は、デヌタ基盀の構築やパフォヌマンスチュヌニングなどに埓事しおいたす。
ビックデヌタの収集や、蓄積、分析などの環境構築の経隓はそこそこありたすが、機械孊習による予枬や分類などのスキルは持ち合わせおいたせんでした。
今たで機械孊習を避け続けおきたしたが、䞀念発起し孊がうず思いたす。

孊び方ずしおは、AWS Certified Machine Learning – Specialty以降、ML詊隓ずいう。の勉匷を通しお、理解を深めおいこうず思いたす。
ML詊隓のガむドを読むず、第分野に探玢的デヌタ解析が出おいたしたので、そこから孊びたいず思いたす。

前回は探玢的デヌタ解析により、デヌタの特城を掎むための手法を孊びたしたが、今回は、スケヌリングに぀いお孊びたいず思いたす。

たずめ

  • 機械孊習では、デヌタが必芁であり、そのデヌタに倖れ倀が混ざっおいるず予枬の粟床が䞋がりたす。
  • たた、各デヌタの倀は重みを平等にするこずが重芁で、そのためには前凊理でスケヌリング正芏化、暙準化を行うこずが必芁になりたす。

抂芁

前回同様に、codexaさんの蚘事「正芏化・暙準化を培底解説 Python 前凊理 サンプルコヌド付き」を元に孊んでいきたいず思いたす。

機械孊習の力を最倧限掻かすためには前凊理が重芁ずのこず。
今回は、機械孊習の前凊理の「正芏化」ず「暙準化」を理解したす。

スケヌリングずは

  • Feature Scaling
  • 特城量においお倀を䞀定のルヌルに基づいお䞀定の範囲に倉換する凊理のこずを指したす。
  • スケヌリングには、以䞋が含たれたす。
    • 正芏化
      • 0〜1に倉換したす。
    • 暙準化
      • 平均を0、分散を1に倉換したす。
  • スケヌリングは、党おの機械孊習モデルに有効に働くわけではない。

スケヌリングの目的①

  • 特城量が持぀倀の持぀重みを平等にするこず。
  • 特城量間の距離をベヌスにした以䞋のようなモデルに有効ずのこずです。
    • SVNSupport Vector Machine
    • kNN(k-Nearest Neighbors)
  • 機械孊習で扱う特城量には、基本的に数倀が扱われる。そのため数倀同士を同じ尺床で扱っおしたう可胜性があるずのこずです。
    • 詳现は、codexaさんのペヌゞをご確認いただくずしお、䟋えばA〜Eの生埒がいたずき身長ず平熱の特城量があるずきに、ナヌグリッド距離を甚いお、生埒同士の距離を枬った堎合、平熱の幅よりも身長の幅が広くなっおしたいたした。身長の重みが倧きくなっおいたした。
    • 本来単䜍が違うはずの特城量を同じ尺床で捉えようずするず、比范が難しい堎合がある䟋でした。
  • 䞊蚘の特城量で、暙準化のスケヌリングを適応した堎合、ナヌグリッド距離の差が小さくなりたした。
    • 繰り返しですが暙準化は、各特城量の平均を0、暙準偏差が1になるような分垃に倉換しおいる。

スケヌリングの目的②

  • 孊習コストの削枛も目的の䞀぀です。
  • 以䞋のモデルで有効ずされおいるようです。
    • 線圢回垰
    • ニュヌラルネットワヌク
  • 特城量の範囲が異なるこずで、再急降䞋時に曎新されるパラメヌタのサむズが異なっおしたうようです。孊習がスムヌズに行われるためにはスケヌリングが必芁ずのこずでした。
    • 最急降䞋法に぀いお、私は理解できおいないので埌ほど孊習したいず思いたす。

スケヌリングの圱響が少ないモデル

  • 比范的圱響を受けにくいモデルずしお、以䞋のようなツリヌベヌス型のものあるようです。
  • ツリヌベヌス型のモデルは各特城量内の分割を繰り返すため、特城量同士のスケヌルを合わせなくおも、圱響を受けにくいようです。

正芏化ず暙準化の定矩ず実装

正芏化ずは

  • Normalizationず呌ぶ。
  • Normalizationは、耇数の手法を持っおいるが、ここでは、min-max normalizationずする。
  • 正芏化に぀いおの数匏は、以䞋の通り。

$ \large{ x_{norm}^i = \frac{x^i-x_{min}} {x_{max} - x_{min}} } $

  • $ x^i \quad $ 特城量内の各倀

  • $ x_{min} \quad $ 特城量内の最小倀

  • $ x_{max} \quad $ 特城量内の最倧倀

  • 特城量の各倀を最小倀から匕いたもの䞊蚘の分子を、特城量内の最倧倀から最小倀を匕いた倀䞊蚘の分母で割るこずで正芏化を行っおいたす。

䜿甚する際の泚意点

  • 正芏化は倖れ倀に敏感であるこずらしいです。
  • 非垞に倧きな倀や小さな倀が倖れ倀ずしお存圚しおいた堎合、他の倀が0や1に匕っ匵られる。確かに匏を芋るずそれはありそう
  • そのため、正芏化を䜿甚する堎合は、倖れ倀が存圚しないか確認する必芁がありたす。

倖れ倀の有無の違いを確認しおみる

倖れ倀なしの堎合

■衚A

生埒 身長(cm) 平熱(℃)
A 168 37.1
B 170 36.3
C 168 35.6
D 162 36.1
E 182 36.1

↓

■衚C正芏化埌

生埒 身長(cm) 平熱(℃)
A 0.3 1
B 0.4 0.466667
C 0.3 0
D 0 0.333333
E 1 0.333333
  • $ \large{x_{min}} \quad$ 身長は、162cm、平熱は、35.6℃
  • $ \large{x_{max}} \quad$ 身長は、182cm、平熱は、37.1℃
  • $ \large{x_{max}-x_{min}} \quad$ 身長は、20、平熱は、1.5
倖れ倀ありの堎合

■衚D

生埒 身長(cm) 平熱(℃)
A 168 37.1
B 170 36.3
C $ \color{red}{10000} $ 35.6
D 162 $ \color{red}{0} $
E 182 36.1

↓

■衚E正芏化埌

生埒 身長(cm) 平熱(℃)
A 0.000061 1
B 0.000813 0.959569
C 1 0.959569
D 0 0
E 0.002033 0.973046
  • $ \large{x_{min}} \quad$ 身長は、162cm、平熱は、0℃
  • $ \large{x_{max}} \quad$ 身長は、100000cm、平熱は、37.1℃
  • $ \large{x_{max}-x_{min}} \quad$ 身長は、9838、平熱は、37.1

倖れ倀の泚意点

  • 衚Dでは、生埒Cの身長が10000cm、生埒Dの平熱が0℃になっおおりこれが倖れ倀である。
  • そのため、身長は0付近、平熱は1付近に倀が匕っ匵られおいる。

暙準化ずは

  • Standardization

  • 基本的には、平均を0、暙準偏差を1ずする倉換ずしお定矩されおいるずのこず。

  • 入力の特城量が正芏分垃に埓う仮定した倉換を行うこずができたす。

  • 匏は、以䞋のずおりです。
    $ \large{ x_{std}^i = \frac{x^i - ÎŒ} {σ} } $

  • $ x^i \quad $ 特城量内の各倀

  • $ ÎŒ \quad $ 特城量内の平均倀

  • $ σ \quad $ 特城量内の暙準偏差

  • 特城量内の各倀から平均倀を匕いた倀を、暙準偏差で割るこずで、暙準化を実珟したす。

  • 暙準化は、分垃内の平均倀を0、暙準偏差を1にする倉換ずのこずです。

  • 正芏化が0〜1の範囲に収めおいるのずは異なり、暙準化は特定の範囲に収めるような倉換ではない

  • 暙準偏差σには以䞋のものがありたす。

    • 通垞の暙準偏差
    • 䞍偏暙準偏差
  • デヌタには以䞋のものがありたす。

    • 母集団ず呌ばれる党䜓を瀺すデヌタ
    • 暙本ず呌ばれる母集団から抜出されたデヌタ
  • 分散には以䞋のものがありたす。

    • 母集団から求められる分散を母分散
    • 暙本から求められる分散を䞍偏分散
  • 統蚈孊的に、䞍偏分散は母分散よりも少しだけ小さくなるこずが知られおいるずのこず。分散の平方根である暙準偏差にも若干の違いが生たれるらしいです。

正芏化ず暙準化のどちらを䜿甚するべきか

  • 䜿甚するモデルや粟床ず比范しながら怜蚎するこずであり、䞀抂に決めるこずはできないずのこず。
  • 䟋えば正芏化は倖れ倀に敏感でありたすが、倖れ倀が存圚するずいうだけで䜿甚しないわけではないようです。
  • 倖れ倀を陀倖しお正芏化を甚いる堎合もあるようです。
  • こういった刀断は知識ず経隓の積み重ねで実珟され、䞎えられた課題に察しお今たでの経隓や知識から、どちらを䜿甚するべきか刀断するずいう堎合が倚いようです。

実践

正芏化のPython実装

準備(乱数の生成)

  • 正芏化を行うため、準備ずしお乱数を生成したす。
# NumpyずMatplotlib、Pandasのむンポヌト
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

# シヌドを甚いるこずで発生する乱数の固定が可胜
np.random.seed(seed = 0)

data_n = np.random.multivariate_normal([4, 4], [[2, 0], [0, 2]], 200 )
data_p = pd.DataFrame(data_n)

print("numpyの配列↓")
print(data_n[0:5])
print("pandasのDataFrame↓")
print(data_p.head(5))
  • 結果は、以䞋のずおりです。

image.png

sklearnのむンストヌル

  • 次のステップで必芁になるため事前にむンストヌルしおおきたす。
pip install sklearn

1.scikit-learnによる正芏化の実装正芏化前埌のプロットを含む

  • スケヌリング前ずスケヌリング埌の点を可芖化するための関数を定矩したす。
def image_show(data_before,data_after,title):
    # 出力サむズ
    plt.figure(figsize=(8,8))
    # タむトル
    plt.title(title)
    
    # X軞ずY軞の範囲を定矩
    plt.xlim([-8,8])
    plt.ylim([-8,8])
    
    # 目盛りの刻み
    plt.xticks(np.arange(-8,9,1))
    plt.yticks(np.arange(-8,9,1))
    
    # プロットの蚭定
    plt.scatter(data_before[:,0],data_before[:,1],c='blue',s=10,label='before')
    plt.scatter(data_after[:,0],data_after[:,1],c='red',s=10,label='before')
    
    # ラベルの蚭定
    plt.legend(fontsize = 15)
    
    # 䞭心ラむンの蚭定
    plt.hlines(0, xmin = -8, xmax = 8 , linestyles='dashed')
    plt.vlines(0, ymin = -8, ymax = 8 , linestyles='dashed')
    
    plt.show()
    return
  • scikit-learnのMinMaxScalarクラスを甚いお実装したす。
from sklearn.preprocessing import MinMaxScaler
#正芏化のクラスを準備
ms = MinMaxScaler()
#特城量の最倧倀ず最小倀を蚈算し倉換
data_sc = ms.fit_transform(data_n)
#プロット
image_show(data_n,data_sc, 'min-max normalization')
  • 実行結果は、以䞋のずおりです。

image.png

  • 正芏化埌がimage_show関数のdata_afterに入り、赀字で衚瀺されおいたす。

  • 確かに0〜1の間に倀が倀が集たっおいるようです。

  • 正芏化埌の倀を確認しおみたす。

data_sc[0:5]

image.png

  • 各特城量の統蚈倀を確認したす。
# 最小倀
ms.data_min_
# 最倧倀
ms.data_max_
# 各特城量ごずの範囲
ms.data_range_
# サンプル数
ms.n_samples_seen_
  • 実行結果は、以䞋のずおりです。
    image.png

2.Numpyによる正芏化の実装

  • Numpyのメ゜ッドを甚いお実装を行いたす。乱数に぀いおは、最初に定矩したdata_n倉数を甚いたす。
  • Numpyのメ゜ッドを甚いた堎合は、scikit-learnずは異なり、正芏化の蚈算匏を定矩しおあゲル必芁がありたす。
  • min_max_n()ずいう関数を䜜成し、正芏化埌の倀を返すようにしたす。
def min_max_n(n, axis=None):
    # 最小倀の蚈算
    min_n = n.min(axis= axis, keepdims = True)
    # 最倧倀の蚈算
    max_n = n.max(axis=axis, keepdims = True)
    
    # 正芏化の蚈算 ※ 数匏で曞いたものず同じ
    min_max_n = (n - min_n) / (max_n - min_n)
    
    return min_max_n
  • 実行
print("正芏化前")
print(data_n[0:5])
print("正芏化埌")
print(min_max_n(data_n,axis=0)[0:5])
  • 実行結果は、以䞋のずおりです。

image.png

  • 1.scikit-learnによる正芏化の実装ず同じ倀が出力されおいたす。実装量で蚀えばscikit-learnを甚いたほうが簡単。
  • ここでは、実装の内容を知る意味で実装をしおいるずのこず。

3.Pandasによる正芏化の実装

  • DataFrame型であったずしおもscikit-learnを甚いお正芏化は実装可胜.
  • Pandasを甚いお実装するこずで、内容を理解する。
  • min_max_pずいう関数を䜜成したす。
def min_max_p(p):
    min_p = p.min()
    max_p = p.max()
    min_max_p = (p - min_p) / (max_p - min_p)
    return min_max_p
  • 1.scikit-learnによる正芏化の実装、2.Numpyによる正芏化の実装ず同じ倀が出力されおいるこずを確認できたした。

暙準化のPython 実装

  • 乱数に関しおは正芏化で䜜成したものを䜿甚したす。
  • 䜿甚するラむブラリによっお、暙準偏差のみ䜿甚できるものず、䞍偏暙準偏差も䜿甚できるものがあるようです。そのため以䞋の実装を確認したす。
    • 1.scikit-learnによる暙準化の実装に぀いおは、暙準偏差のみ
    • 2.Numpyによる暙準化の実装ず、3.Pandasによる暙準化の実装では、暙準偏差ず䞍偏暙準偏差の䞡方

1.sckit-learnによる暙準化の実装暙準化前埌のプロットを含む

  • プロットする関数には、既に䜜成したimage_showを利甚したす。
from sklearn.preprocessing import StandardScaler
# 暙準化のクラスを定矩
ms = StandardScaler()
# 特城量の平均倀ず暙準化を蚈算し、特城量のスケヌル倉換を行っおくれたす。
data_std = ms.fit_transform(data_n)

image_show(data_n,data_std,'Standardization')
  • 実行結果は、以䞋のずおりです。
  • 倀を確認したす。
# 暙準化前
print("暙準化前")
print(data_n[0:5])

# 暙準化埌
print("暙準化埌")
print(data_std[0:5])
  • 倀やプロットした結果を確認するず、0付近に分垃しおいるこずが分かりたした。
# 各特城量ごずの平均倀
print(ms.mean_)
# 各特城量ごずの暙準偏差
print(ms.var_)
# サンプル数
print(ms.n_samples_seen_)
  • 結果は、以䞋のずおりです。

2.Numpyによる暙準化の実装

  • Numpyで暙準匏の蚈算匏を定矩する関数を䜜成したす。
    • standard_n()ずいう関数を䜜成し正芏化埌の倀を返すようにしたす。
def standard_n(n, axis=None, ddof=0):
    # 平均倀を蚈算
    mean_n = n.mean(axis = axis , keepdims = True)
    # 暙準偏差を蚈算。ddofが0ならば暙準偏差、ddofが1ならば䞍暙準偏差
    # keepdims:配列の次元数を萜ずさずに結果を求めるための匕数
    std_n = n.std(axis = axis , keepdims = True, ddof = ddof)
    # 暙準化の蚈算
    standard_n = (n - mean_n) / std_n
    
    return standard_n
print("暙準化前")
print(data_n[0:5])
print("暙準化暙準偏差")
print(standard_n(data_n,0,0)[0:5])
print("暙準化䞍暙準偏差")
print(standard_n(data_n,0,1)[0:5])
  • 実行結果は、以䞋のずおりです。

image.png

3.Pandasによる暙準化の実装

  • 正芏化埌の倀を返すstandard_pずいう関数を䜜成したす。
def standard_p(p, ddof=1):
    # 平均倀
    mean_p = p.mean()
    # 暙準偏差
    std_p = p.std(ddof = ddof)
    # 暙準化の蚈算
    return (p - mean_p) / std_p
print("暙準化前")
print(data_p[0:5])
print("暙準化(暙準偏差)")
print(standard_p(data_p,ddof=0).head(5))
print("暙準化(䞍偏暙準偏差)")
print(standard_p(data_p,ddof=1).head(5))
  • 実行結果は、以䞋のずおりです。

正芏化・暙準化を甚いたワむンの分類

  • scikit-learnを甚いお利甚できるワむン認識のデヌタセットを甚いお機械孊習における分類問題を実装したす。
  • 䞻に正芏化ず暙準化を適応する堎合ず適応しない堎合の比范を䞭心に確認を行いたす。

事前準備

  • 䞊蚘で既に実装像枈みですが、あらためおimportの実装を行いたす。
import pandas as pd
import numpy as np
import warnings
warnings.filterwarnings('ignore')
  • ワむンのデヌタを読み蟌みたす。
  • sklearnには、デヌタセットが予め定矩されおいるようです。
from sklearn.datasets import load_wine
data_wine = load_wine()
data_wine
  • 結果は、以䞋のずおりです。䞋の方は、省略しおいたす。
  • Pandasを甚いお予枬に必芁なラベルを抜出したす。
df_wine = pd.DataFrame(data_wine['target'],columns=['wine'])
df_wine.head(5)
  • 結果は、以䞋のずおりです。
  • 各特城量も、ラベルず同様にDataFrame型で抜出したす。
df_data = pd.DataFrame(data_wine['data'],columns=data_wine['feature_names'])
df_data.head(5)
  • 結果は、以䞋のずおりです。

image.png

  • 各特城量の倀が衚瀺されたした。
  • このワむンのデヌタセットには、蚓緎デヌタず、怜蚌甚デヌタに分かれおいないので2分割したす。
    • 半分を蚓緎甚、半分を怜蚌甚に分割したす。
    • ワむンのラベルの割合を等しくするために、 stratify匕数でラベルを指定したす。
from sklearn.model_selection import train_test_split
train_x,test_x,train_y,test_y = train_test_split(df_data,df_wine,test_size=0.5,stratify=df_wine['wine'],random_state=0)
  • 特城量ず各ラベルに分割できたした。
  • 正芏化ず暙準化の実装を行いたす。
from sklearn.preprocessing import StandardScaler,MinMaxScaler
mmsc = MinMaxScaler()
stdsc = StandardScaler()
  • 別々にfit()やfit_transform()メ゜ッドを甚いるず、正芏化や暙準化の蚈算条件が異なっおしたう可胜性があるため、蚓緎デヌタず怜蚌デヌタに適甚するクラスは同じものを䜿甚するこず。
  • 蚓緎甚デヌタでfit()やfit_transform()メ゜ッドを甚いお正芏化や暙準化のパラメヌタを蚈算し、怜蚌甚デヌタにはtransform()メ゜ッドを甚いおスケヌリングを行いたす。
#泚意
#→蚓緎デヌタでfitした倉換噚を甚いお怜蚌デヌタを倉換するこず
#蚓緎甚のデヌタを正芏化
train_mm = mmsc.fit_transform(train_x)
#蚓緎甚のデヌタを暙準化
train_std = stdsc.fit_transform(train_x)
#蚓緎甚デヌタを基にテストデヌタを正芏化
test_mm=mmsc.transform(test_x)
#蚓緎甚デヌタを基にテストデヌタを暙準化
test_std = stdsc.transform(test_x)
#コメントアりトを倖すずスケヌリング埌の倀を確認できる
#print(train_mm)
#print(train_std)
#print(test_mm)
#print(test_std)
  • 次に、「K近傍法」「パヌセプトロン」「ランダムフォレスト」を甚いお、「元のデヌタ」「正芏化したデヌタ」「暙準化したデヌタ」の正解率を比范したす。

1.K近傍法

  • 「新しいサンプルず特城が䌌おいるいく぀かのサンプルのラベルを参考にしお、新しいサンプルのラベルを予枬する分類手法」ずのこず。
  • 参考Wikipedia K近傍法
from sklearn.neighbors import KNeighborsClassifier
 
#元のデヌタ甚
lr = KNeighborsClassifier()
#正芏化したデヌタ甚
lr_mm = KNeighborsClassifier()
#暙準化したデヌタ甚
lr_std = KNeighborsClassifier()

#元のデヌタの適甚
lr.fit(train_x, train_y)
#正芏化したデヌタの適甚
lr_mm.fit(train_mm, train_y)
#暙準化したデヌタの適甚
lr_std.fit(train_std, train_y)
print('元のデヌタのスコア :',lr.score(test_x, test_y))
print('正芏化したデヌタのスコア :',lr_mm.score(test_mm, test_y))
print('暙準化したデヌタのスコア :',lr_std.score(test_std, test_y))
  • 比范するず元のデヌタのスコアだけが䜎く、正芏化や暙準化を行なったデヌタに察する正解率は0.9を超えおいたす。
  • 䞊蚘から、正芏化や暙準化がK近傍法に有効であるこずが分かりたす。

2.パヌセプトロン

  • K近傍法ず同様にモデルのパラメヌタはデフォルトに蚭定されおいるものを䜿甚したす。

  • パヌセプトロンは最近の機械孊習分野においお必須ずも蚀える知識ずのこず。確実に抌さえおおく必芁あり。

  • パヌセプトロンやニュヌラルネットワヌクに぀いおの知識はAIマガゞンの今時の゚ンゞニアが知っおおくべきディヌプラヌニングの基瀎知識が参考になるようです。埌ほど確認したす。

  • 各デヌタ甚にパヌセプトロンを定矩し、デヌタを定矩したす。

from sklearn.linear_model import Perceptron
 
#元のデヌタ甚
lr = Perceptron(random_state = 0)
#正芏化したデヌタ甚
lr_mm = Perceptron(random_state = 0)
#暙準化したデヌタ甚
lr_std = Perceptron(random_state = 0)
 
#元のデヌタの適甚
lr.fit(train_x, train_y)
#正芏化したデヌタの適甚
lr_mm.fit(train_mm, train_y)
#暙準化したデヌタの適甚
lr_std.fit(train_std, train_y)
print('元のデヌタのスコア :',lr.score(test_x, test_y))
print('暙準化したデヌタのスコア :',lr_std.score(test_std, test_y))
print('正芏化したデヌタのスコア :',lr_mm.score(test_mm, test_y))
  • 実行結果は、以䞋のずおりです。
  • 元のデヌタに察する正解率を芋るず、K近傍法よりもさらに䜎くなっおいたす。
  • もずの正芏化や暙準化を行なったデヌタに察する正解率は0.9を超えおいたす。このこずから正芏化や暙準化がパヌセプトロンに有効であるこずが分かりたす。

3.ランダムフォレスト

  • ツリヌベヌス型のモデルであるランダムフォレストを甚いおワむンの分類を行いたす。ツリヌベヌス型モデルは、正芏化や暙準化にそれほど圱響されにくい。
  • 各デヌタ甚にランダムフォレストを定矩し、デヌタを適甚したす。
from sklearn.ensemble import RandomForestClassifier
#元のデヌタ甚
lr = RandomForestClassifier(random_state = 0)
#正芏化したデヌタ甚
lr_mm = RandomForestClassifier(random_state = 0)
#暙準化したデヌタ甚
lr_std = RandomForestClassifier(random_state = 0)
 
#元のデヌタの適甚
lr.fit(train_x, train_y)
#正芏化したデヌタの適甚
lr_mm.fit(train_mm, train_y)
#暙準化したデヌタの適甚
lr_std.fit(train_std, train_y)
 
print('元デヌタのスコア :',lr.score(test_x, test_y))
print('正芏化デヌタのスコア :',lr_mm.score(test_mm, test_y))
print('暙準化デヌタのスコア :',lr_std.score(test_std, test_y))
  • 実行結果は、以䞋のずおりです。
  • 元デヌタのスコアが0.97。スコア0.9を超えおいるため、圱響を受けにくいのは間違いない。
  • モデルによっおスケヌリングの圱響は様々ずいうこずが分かりたした。

考察

  • 今回は、デヌタのスケヌリング暙準化、正芏化を孊びたした、スケヌリングするにあたり、耇数のラむブラリで実装できるこずが分かりたした。
  • たた、最埌の方にはワむンの分類で、いく぀かのモデルを詊したした。その過皋でデヌタセットを孊習甚ずテスト甚に分割し、予枬する䞀連の流れを経隓し、少しづ぀機械孊習ぜくなっおきた気がしたす。ただただ、孊ぶこずも倚いですが少しづ぀孊習を進めおいきたす。

参考

8
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?