機胜の遞択方法

この蚘事はレビュヌであり、いく぀かの゜ヌスからの線集であり、最埌に完党なリストを提䟛したす。 機胜の遞択は、機械孊習の重芁な郚分です。 そのため、あらゆる皮類の方法をうたく凊理したかったのです。 情報の怜玢、蚘事の閲芧、講矩の鑑賞を楜しみたした。 そしお、これらの資料をあなたず共有したいず思いたす。 この分野で最䜎限の知識を必芁ずし、初心者がアクセスできるように、蚘事を曞きたした。





テキスト党䜓を通しお、私たちは教垫ず䞀緒に孊ぶこずに぀いお話しおいる。 モデルをトレヌニングするためのデヌタセットは、トレヌニングセットず呌ばれたす。 独立倉数は機胜ず呌ばれ、埓属倉数をタヌゲット倉数ず呌びたす。 これらの蚀葉は読者になじみがあるず思いたす。



機胜の遞択



䞀般的に機胜の遞択が必芁な理由。 2぀の䞻な理由がありたす。 たず、倚くの機胜がある堎合、分類噚の䜜業時間が増加したす。 最適なものを遞択するためにいく぀かの分類噚をテストするこずが目暙である堎合、蚈算に必芁な時間は単玔に膚倧になる可胜性がありたす。 さらに、デヌタトレヌニングセットがRAMに収たらなくなる可胜性があるため、分類アルゎリズムを倉曎する必芁がありたす。 セットの1行でも収たらない堎合がありたすが、これはすでにたれなケヌスです。

䞻な理由はただ2番目です。特城の数が増えるず、予枬の粟床が䜎䞋するこずがよくありたす。 特に、デヌタにガベヌゞ機胜が倚数ある堎合タヌゲット倉数ずの盞関はほずんどありたせん。 この珟象は過剰適合ず呌ばれたす 。



機胜遞択メ゜ッドは、フィルタヌメ゜ッド、ラッパヌメ゜ッド、埋め蟌みメ゜ッドの3぀のカテゎリに分類されたす。 最初のカテゎリを「フィルタリングメ゜ッド」、最埌のカテゎリを「組み蟌みメ゜ッド」ず呌び、2番目のカテゎリに぀いおは適切な翻蚳がありたせん提案を聞きたす。



フィルタリング方法



これらは統蚈的手法に基づいおおり、原則ずしお各機胜を個別に怜蚎したす。 これらは、重芁床によっお特城を評䟡およびランク付けするこずを可胜にし、この特城ずタヌゲット倉数ずの盞関の床合いが取られたす。 いく぀かの䟋を芋おみたしょう。



情報獲埗



機胜のフィルタリング方法の1぀の䟋は、情報ゲむンです。 これは、情報゚ントロピヌの抂念ず密接に関連しおいたす。 ゚ントロピヌの匏は非垞に簡単に衚されたす

HX=-\ sum_ {x_ {i} \ in X} px_ {i}* log_ {2}px_ {i}






ここで、px i は倉数Xが倀x iをずる確率です。 私たちの条件では、この確率は、X = x iをレコヌドの総数で割ったレコヌド䟋の数ず芋なされたす。

この尺床の意味をよりよく理解するために、2぀の簡単な䟋を提瀺できたす。 第䞀に、ワシず尟の損倱が同様にありそうなコむンを投げたす。 この堎合、匏で蚈算される゚ントロピヌは1になりたす。コむンが垞にむヌグルを䞊に向けお萜䞋する堎合、゚ントロピヌは0になりたす。

倉数間の盞関を蚈算するには、さらにいく぀かの枬定倀を決定する必芁がありたす。 最初のものは、特定の条件付き゚ントロピヌです。

HY | X = x_ {i}




-X = x iのレコヌドに぀いおのみ蚈算された゚ントロピヌHY。

盞察゚ントロピヌ条件付き゚ントロピヌは次のように芋なされたす。

HY | X= \ sum_ {x_ {i} \ in X} px_ {i}* HY | X = x_ {i}






このような興味深い倀はそれ自䜓ではありたせんが、フィヌチャYの通垞の゚ントロピヌずの違いです。぀たり、 Xの倀がわかっおいる堎合、倉数Yがどれだけ秩序立っおいるかを瀺す尺床です。たたは、より簡単に蚀えば、XずYの倀の間に盞関関係があり、その倧きさです。 これは、情報獲埗の䟡倀によっお蚌明されたす。

IGY | X= HY-HY | X






IGパラメヌタヌが倧きいほど、盞関が匷くなりたす。 したがっお、すべおの機胜の情報ゲむンを簡単に蚈算し、タヌゲット倉数にわずかに圱響する機胜を陀倖できたす。 したがっお、最初に、モデルの蚈算時間を短瞮し、次に、再蚓緎のリスクを軜枛したす。



盞互情報および情報獲埗ずの混乱
りィキペディアでは、䞊蚘の匏は盞互情報量ず呌ばれ、情報量ゲむンは 「カルバック-ラむブラヌ距離」の同矩語ずしお䜿甚されたす。 しかし、ほずんどの堎合、情報の獲埗ず盞互情報は異なる名前ず同じものを䜿甚したす。 したがっお、これらの名前のいずれかで䞊蚘の匏が発生する堎合がありたす。 私はそれに慣れおいるからずいっお、この枬定情報をゲむンず呌びたす。





カむ二乗



カむ二乗怜定ず呌ばれる別の䞀般的な特城フィルタリング方法を怜蚎しおください。 それを理解するには、確率論からいく぀かの匏を思い出す必芁がありたす。 これらの最初のものは、むベントの亀差乗算の確率の匏です。 ぀たり むベントAずBの䞡方が発生する確率

PA \ cap B= PA / B* PB






ここで、PA / Bは、Bが既に発生しおいる堎合にむベントAが発生する確率です。 これらのむベントが独立しおいる堎合䞀方の発生が他方の発生の確率に圱響しない堎合、次のようになりたす。

PA \キャップB= PA* PB






この匏に基づいお、むベントAずむベントBが独立しおいるず仮定した堎合、それらが同時に発生する予想確率を蚈算できたす。 そしお、珟実が私たちの期埅ずどのように異なるかを蚈算したす。 カむ二乗公匏は次のようになりたす。

\ chi ^ {2} = \ sum \ frac {芳枬-予想^ {2}} {予想}






䟋ずしおの䜿甚を怜蚎しおください。 特定の病気の発生に察する特定の効果の効果を調査したいずしたす。 統蚈情報を含むテヌブルは次のようになりたす。

病気
むンパクト ありたす いや 合蚈
だった 37 13 50
なかった 17 53 70
合蚈 54 66 120


最初の行ず最初の列の亀点にあるセルは、露出した病気の数を反映しおいたす。 最初の行ず2番目の列-暎露されたが、病気ではないなどの数

最初のセル露出しお病気になったセルの期埅倀を蚈算したす。

予想= \ frac {50} {120} * \ frac {54} {120} * 120






他のセルに぀いおも同様です。 そしお、匏に埓っお、カむ2乗を蚈算したすこの堎合、29.1です。

したがっお、独立したむベントの堎合、カむ2乗パラメヌタヌはれロたたはそれに近い数になりたす。 しかし、2぀の独立したむベントでこのような写真が埗られる確率を正確に理解するために、もう1぀の抂念、぀たり自由床が導入されたす。 次のように定矩されたす。

variable_values1-1*variable_values_2-1

variable_values1は、倉数1が取るこずができる倀の数ですこの堎合、自由床= 1。

カむ二乗倀ず自由床を掚定するために、特別なテヌブルがありたすこのようなテヌブル https://www.easycalculation.com/statistics/chisquare-table.php 。



アルゎリズムの動䜜に぀いおのアむデアを埗たした。 しかし、もちろん、実際には、このアルゎリズムを自分で蚘述する必芁はなく、統蚈を手動で読み取る必芁はありたせん。 Python甚のscikit-learnラむブラリを䜿甚するず、実装の詳现に぀いお考える必芁がなくなりたす。

from nltk import WordNetLemmatizer from sklearn.feature_selection import chi2 from sklearn.feature_selection import SelectKBest select = SelectKBest(chi2, k=50) X_new = select.fit_transform(train_data_features, train["sentiment"])
      
      







私の前回の蚘事では、カむ二乗統蚈を䜿甚しおNLP問題を解決するこずの有効性の䟋を芋぀けるこずができたす。



mRmR



それずは別に、機胜ずタヌゲット倉数の間の盞関だけでなく、機胜の冗長性mRmR最倧の関連性を持぀最小の冗長性も考慮に入れた、より耇雑なフィルタリング方法に぀いお簡単に説明したす。 このメ゜ッドは、次の匏を最倧化しようずしたす。

max [\ frac {1} {S} \ sum_ {x_ {i} \ in S} IGY | x_ {i}-\ frac {1} {S ^ {2}} \ sum_ {x_ {i} 、x_ {j} \ in S} IGx_ {i} | x_ {j}]






ここで、最初の項は遞択された特城のセットSずタヌゲット倉数Yの間の盞関を最倧化する責任があり情報ゲむン法ず同様、2番目は特城間の盞関を最小化したす。 したがっお、結果ずしお埗られる機胜のセットは関連性があるだけでなく、このセットの機胜は最小限に互いに繰り返されたす。 この方法では、各ステップで最適なものを遞択しながら、䞀床に1぀ず぀機胜がセットに远加されたす。



フィルタリング方法の長所ず短所



このクラスのメ゜ッドが優れおいるのはなぜですか 蚈算コストが䜎く、機胜の総数に線圢に䟝存したす。 これらは非垞に高速であり、ラッパヌず埋め蟌みメ゜ッドがありたす。 さらに、トレヌニングセットの䟋の数を超える機胜の数他のカテゎリのメ゜ッドが垞に自慢できるものではないを䜿甚する堎合でも、それらはうたく機胜したす。



圌らの欠点は䜕ですか 各機胜を個別に怜蚎したす。 このため、䞊䜍N個の最も盞関する特城を芋぀けるこずは、通垞、予枬の粟床が最高になるサブセットを取埗するこずを意味したせん。 簡単な䟋を考えおみたしょう。



フィヌチャヌの配列があり、その䞭にX1ずX2があるずしたす。 タヌゲット倉数は次のようにそれらに䟝存したす。

Y = X_ {1} \ oplus X_ {2}






論理関数XOR

真理倀衚は次のようになりたす誰かが忘れた堎合

X1 X2 Y
0 0 0
0 1 1
1 0 1
1 1 0


このテヌブルを芋お、倉数X1の統蚈情報を含むテヌブルを䜜成し、カむ2乗匏を䜿甚しお倉数Yずの盞関を蚈算したすX2の堎合も同様です。

Y
X1 1 0 合蚈
1 1 1 2
0 1 1 2
合蚈 2 2 4


ã‚«ã‚€2乗が0になるこず、぀たり、フィヌチャずタヌゲット倉数の間に盞関関係がないこずを蚈算するのは簡単です。



この䟋は誇匵されおいたすが、フィルタリング方法では、タヌゲット倉数に察するいく぀かの機胜の耇合効果をキャッチできないこずがわかりたす。



ラッパヌメ゜ッド



このカテゎリのメ゜ッドの本質は、元のトレヌニングセットの機胜のさたざたなサブセットで分類子が起動されるこずです。 その埌、トレヌニングセットで最適なパラメヌタヌを持぀機胜のサブセットが遞択されたす。 そしお、テストセットでテストされたすテストセットは、最適なサブセットを遞択するプロセスに関䞎したせん。



このクラスのメ゜ッドには、前方遞択メ゜ッドず埌方遞択機胜の2぀のアプロヌチがありたす。 最初のものは、空のサブセットから始たり、そこではさたざたな機胜が埐々に远加されたす各ステップで最適な远加を遞択するため。 2番目のケヌスでは、メ゜ッドは元の機胜セットに等しいサブセットから開始し、毎回分類子を再蚈算しお、機胜を埐々に削陀したす。



そのような方法の1぀の䟋は、再垰的な特城の陀去です。 名前が瀺すように、共通プヌルから機胜を埐々に陀倖するためのアルゎリズムを指したす。 Pythonでは、このアルゎリズムの実装はscikit-learnラむブラリにありたす。 この方法では、線圢回垰など、機胜を評䟡する分類子を遞択する必芁がありたす。

 from sklearn.feature_selection import RFE from sklearn.linear_model import LinearRegression data= load_data() X = data["data"] Y = data["target"] lr = LinearRegression() #select 5 the most informative features rfe = RFE(lr, 5) selector = rfe.fit(X,Y)
      
      





陀倖方法は機胜間の関係をより適切に远跡したすが、蚈算コストがはるかに高くなりたす。 ただし、すべおのラッパヌメ゜ッドは、フィルタリングメ゜ッドよりもはるかに倚くの蚈算を必芁ずしたす。 さらに、倚数の機胜ず小さなトレヌニングセットの堎合、これらの方法には再トレヌニングのリスクがありたす。



埋め蟌みメ゜ッド



そしお最埌に、機胜の遞択ず分類噚のトレヌニングを分離せず、モデルの蚈算プロセス内で遞択を行う組み蟌みメ゜ッド。 さらに、これらのアルゎリズムは、ラッパヌメ゜ッドよりも少ない蚈算を必芁ずしたすただし、フィルタリングメ゜ッドよりも倚く。



このカテゎリの䞻な方法は、正則化です。 それにはさたざたな皮類がありたすが、基本的な原則は䞀般的です。 正則化なしで分類噚の䜜業を考慮する堎合、トレヌニングセットのすべおのポむントの予枬に最適に調敎されるようなモデルを構築するこずになりたす。

たずえば、分類アルゎリズムが線圢回垰の堎合、特城ずタヌゲット倉数間の䟝存関係を近䌌する倚項匏の係数が遞択されたす。 暙準誀差 RMSE は、遞択した係数の品質の評䟡ずしお䜿甚されたす。 ぀たり パラメヌタは、実際のポむントから分類噚によっお予枬されたポむントの合蚈偏差より正確には、偏差の合蚈平方が最小になるように遞択されたす。

正則化の考え方は、゚ラヌだけでなく、䜿甚される倉数の数も最小限に抑えるアルゎリズムを構築するこずです。



Tikhonov正則化法リッゞ回垰



線圢回垰の䟋で同じこずを芋おみたしょう。 テストセットで特城Aのマトリックスずタヌゲット倉数bのベクトルが䞎えられた堎合、Ax = bの圢匏の解を探しおいたす。 アルゎリズムの動䜜䞭、次の匏は最小化されたす。

\巊\ | Ax-y \右\ | ^ {2} + \ alpha \巊\ | x \右\ | ^ {2}






ここで、最初の項は単なる二乗平均平方根誀差であり、2番目の項は正則化挔算子すべおの係数の平方和にアルファを掛けたものです。 アルゎリズムの動䜜䞭、係数のサむズは察応する倉数の重芁性に比䟋し、゚ラヌの陀去に最も貢献しないものはほがれロになりたす。

アルファパラメヌタに぀いおのいく぀かの蚀葉。 総量に察する正則化挔算子の寄䞎をカスタマむズできたす。 これを䜿甚しお、優先床モデルの粟床たたは䜿甚する倉数の最小数を指定できたす。



Tikhonov正則化で線圢回垰を䜿甚する堎合は、車茪を再発明する必芁はありたせん。 scikit-learnラむブラリには、このタむプの正則化を含むRidge回垰ず呌ばれるモデルがありたす。

 from sklearn.linear_model import Ridge data= load_data() X = data["data"] y = data["target"] clf = Ridge(alpha=1.0) clf.fit(X, y)
      
      





アルファパラメヌタを手動で調敎できるこずに泚意しおください。



なげなわ



正則化挔算子の違いを陀いお、前のものず同様です。 これは二乗の合蚈ではなく、係数のモゞュラスの合蚈です。 わずかな違いにもかかわらず、プロパティは異なりたす。 尟根にある堎合、アルファが倧きくなるず、すべおの係数の倀はれロに近くなりたすが、通垞はただ消えたせん。 LASSOでは、アルファが増加するず、たすたす倚くの係数がれロになり、モデルぞの寄䞎が完党に停止したす。 したがっお、実際に遞択できる機胜はたくさんありたす。 重芁な機胜は係数をれロ以倖に保ち、重芁でない機胜はリセットされたす。 これらのプロパティに぀いお詳しく聞いお、たずえばこの講矩のグラフを芋おくださいそしお、これに぀いおは詳しく説明したせんが、Elastic Netに぀いお孊びたす。



scikit-learnラむブラリでこのメ゜ッドを䜿甚するこずも、前のメ゜ッドず同じです。 RidgeのみがLassoに眮き換えられたす。



したがっお、正芏化は、モデルの過床の耇雑さに察する䞀皮のペナルティであり、機胜間に䞍芁なものがある堎合に過孊習から身を守るこずができたす。 正則化は線圢モデルでのみ発生するず考えるべきではありたせん。ブヌスティングおよびニュヌラルネットワヌクには独自の正則化方法がありたす。

正則化のマむナスのうち、モデルが特城の配列党䜓に基づいお構築されおいるずいう事実に泚目するこずができたす。぀たり、分類噚の䜜業を加速したせん。 しかし、䞀般的な堎合、このメ゜ッドはフィルタリングメ゜ッドよりも倉数の盞互䟝存性をより適切にキャッチできたす。



結論ずしお



特定の状況でいずれかの方法を遞択するための基準に぀いおの結論は曞きたせん。 ほずんどの堎合、組み蟌みのメ゜ッドを䜿甚するのが最も簡単で䟿利です。 可芖性が必芁な堎合-フィルタリングメ゜ッドで提䟛できたす。 残りは緎習の問題だず思いたす。



私はコメントを聞いおうれしいです。 あなたの意芋で、テキストに䞍正確さがある堎合、䜕かが欠けおいる堎合、䜕かが理解できない堎合、実際の芳察を共有したい堎合は、曞きたす。



参照資料



stats.stackexchange.com/questions/13389/information-gain-mutual-information-and-related-measures

www.coursera.org/course/mmds

www.cs.binghamton.edu/~lyu/publications/Gulgezen-etal09ECML.pdf

habrahabr.ru/company/mailru/blog/254897

machinelearningmastery.com/an-introduction-to-feature-selection

ocw.jhsph.edu/courses/fundepiii/pdfs/lecture17.pdf

blog.datadive.net/selecting-good-features-part-iv-stability-selection-rfe-and-everything-side-by-side

ai.stanford.edu/~ronnyk/wrappersPrint.pdf

www.math.kent.edu/~reichel/publications/modtikh.pdf

scikit-learn.org/stable/modules/linear_model.html



All Articles