<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>byunghyun_baek.log</title>
        <link>https://velog.io/</link>
        <description>열정있는 AI 개발자</description>
        <lastBuildDate>Wed, 01 Sep 2021 05:28:49 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>byunghyun_baek.log</title>
            <url>https://images.velog.io/images/byunghyun_baek/profile/cf9305e5-835a-4dd7-b2c9-08b3c62a4feb/social.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. byunghyun_baek.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/byunghyun_baek" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Feature Selection]]></title>
            <link>https://velog.io/@byunghyun_baek/Feature-Selection</link>
            <guid>https://velog.io/@byunghyun_baek/Feature-Selection</guid>
            <pubDate>Wed, 01 Sep 2021 05:28:49 GMT</pubDate>
            <description><![CDATA[<blockquote>
<p>모델의 성능을 높이기 위해 기존 특징 집합에서 유의미한 특징을 선택</p>
</blockquote>
<h4 id="feature-selection을-통해-얻는-이점">Feature Selection을 통해 얻는 이점</h4>
<ul>
<li>모델 복잡도를 감소시켜 해석에 용이</li>
<li>학습 시간 축소</li>
<li>차원의 저주 방지</li>
<li>Overfitting을 감소시켜, 일반화 성능을 높임</li>
</ul>
<h4 id="방법론">방법론</h4>
<ul>
<li>Wrapper method</li>
<li>Filter method</li>
<li>Embedded method</li>
</ul>
<hr>
<h4 id="1-wrapper-method유용성을-측정한-방법">1. Wrapper Method(유용성을 측정한 방법)</h4>
<p>Wrapper method는 예측 모델을 이용하여 특징의 Subset을 계속 테스트한다. 이 경우, 기존 데이터에서 테스트를 진행할 set을 따로 마련해야한다. 이 방법은 Computing Power가 비약적으로 큰 NP 문제이기 때문에 random hill-climbing과 같은 휴리스틱 방법론을 사용한다.</p>
<ul>
<li>recursive feature elimination(RFE)
: scikit-learn에서 Method 제공
: SVM 알고리즘을 이용하여 재귀적으로 제거하는 방법
: 유사한 방법으로 Backward elimination, Forward elimination 등 </li>
<li>sequential feature selection(SFS)
: mlxtend에서 Method 제공
: Greedy Algorithm으로 빈 subset에서 feature을 하나씩 추가하는 방법
: 최종적으로 원하는 feature만 남게 됨</li>
<li>genetic algorithm</li>
<li>Univaraite selection</li>
<li>Exhaustive</li>
<li>mRMR(Minimum Redundancy Maximum Relevance)
: Feature의 중복성을 최소ㅗ하화여 Relevancy를 최대화하는 방법
: <a href="https://medium.com/ai%C2%B3-theory-practice-business/three-effective-feature-selection-strategies-e1f86f331fb1">https://medium.com/ai%C2%B3-theory-practice-business/three-effective-feature-selection-strategies-e1f86f331fb1</a></li>
</ul>
<h4 id="2-filter-method관련성을-찾는-방법">2. Filter Method(관련성을 찾는 방법)</h4>
<p>Filter method는 통계적 측정 방법을 사용하여 feature들의 상관관계를 알아낸다. 하지만 feature간의 상관계수가 반드시 모델에 적합하다고 할 수 없고, 세트의 조정이 정확하지 않다. 대신, 계산 속도가 빠르고 feature간 상관관계를 알아내는데 적합하기 때문에 Wrapper method를 사용하기 전에 전처리하는데 이용될 수 있다.</p>
<ul>
<li>information gain</li>
<li>chi-square test</li>
<li>fisher score</li>
<li>correlation coefficient</li>
<li>variance threshold</li>
</ul>
<h4 id="3-embedded-method유용성을-측정하지만-내장-metric을-사용하는-방법">3. Embedded Method(유용성을 측정하지만 내장 metric을 사용하는 방법)</h4>
<p>Embedded method는 모델의 정확도에 기여하는 feature를 학습한다. 좀 더 적은 계수를 가지는 회귀식을 찾는 방향으로 제약조건을 주어 이를 제어한다.</p>
<ul>
<li>LASSO: L1-norm을 통해 제약을 주는 방법</li>
<li>Ridge: L2-norm을 통해 제약을 주는 방법</li>
<li>Elastic Net: 위 둘을 선형결합한 방법</li>
<li>SelectFromModel
: Decision tree 기반 알고리즘에서 feature를 뽑아오는 방법
: scikit-learn에서 method 제공</li>
</ul>
<hr>
<h4 id="참고할-자료">참고할 자료</h4>
<ul>
<li>sklearn.feature_selection: Feature Selection</li>
<li>mlxtend
: mlxtend는 ML에서 필요한 기능을 담고 있는 라이브러리
: <a href="http://rasbt.github.io/mlxtend/">http://rasbt.github.io/mlxtend/</a></li>
<li>Code와 함께하는 Article
: <a href="https://stackabuse.com/applying-filter-methods-in-python-for-feature-selection/">https://stackabuse.com/applying-filter-methods-in-python-for-feature-selection/</a>
: <a href="https://stackabuse.com/applying-wrapper-methods-in-python-for-feature-selection/">https://stackabuse.com/applying-wrapper-methods-in-python-for-feature-selection/</a>
: <a href="https://towardsdatascience.com/feature-selection-techniques-for-classification-and-python-tips-for-their-application-10c0ddd7918b">https://towardsdatascience.com/feature-selection-techniques-for-classification-and-python-tips-for-their-application-10c0ddd7918b</a>
: <a href="https://www.kaggle.com/kashnitsky/topic-6-feature-engineering-and-feature-selection">https://www.kaggle.com/kashnitsky/topic-6-feature-engineering-and-feature-selection</a>
: <a href="https://github.com/WillKoehrsen/feature-selector">https://github.com/WillKoehrsen/feature-selector</a></li>
</ul>
<hr>
<p>출처: <a href="https://subinium.github.io/feature-selection/">https://subinium.github.io/feature-selection/</a></p>
]]></description>
        </item>
    </channel>
</rss>