<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>melon_0.log</title>
        <link>https://velog.io/</link>
        <description>은 여기 있어요</description>
        <lastBuildDate>Sat, 23 Mar 2024 14:19:54 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>melon_0.log</title>
            <url>https://velog.velcdn.com/images/melon_0/profile/beb1b66b-8592-4638-a9dc-06d6119d6aeb/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. melon_0.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/melon_0" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[React Native - webview 에러 (해결x)]]></title>
            <link>https://velog.io/@melon_0/React-Native-webview</link>
            <guid>https://velog.io/@melon_0/React-Native-webview</guid>
            <pubDate>Sat, 23 Mar 2024 14:19:54 GMT</pubDate>
            <description><![CDATA[<p>어제부터 웹뷰를 열어보기 위해
코드를 작성해봤는데
자꾸
<img src="https://velog.velcdn.com/images/melon_0/post/a11805e8-3045-4ff0-b101-2368918a757e/image.png" alt="">
이 에러가 나타나는 것이었다.</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/0cc90e51-d87a-4f53-8152-749ce10e8311/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/fc166291-f06e-4f69-bf1a-5cf8b83dbc29/image.png" alt="">
아무리 구글을 뒤져보아도
동일한 증상에 대해
문제는 발생했어도</p>
<p>해결한 답변들을 찾아볼 수 없었다.</p>
<p>캐시를 삭제하고 해결했다는 글을 보고 적용하려 했으나
현재 웹에 있는 대부분의 리액트 네이티브는 js파일로 작성되어있다.</p>
<p>우리는 typescript로 프로젝트를 작성하고 있기에
아무런 도움이 되지 않는다.</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/23b1eab8-d135-483e-ba4d-18cf15cc4c47/image.png" alt="">
Ctrl + Shift + p 
커맨드 팔레트에서
restart ts server 해보라고 해도
안됨다</p>
<p><code>npm cache verify</code>
이것도 안된다.....\</p>
<p>webview 구성요소가 뭔가 빠져있나?</p>
<p>또 우리는 stack navigation을 적용한다</p>
<p>다시 무한 구글링</p>
<p>정상인 코드를 가져다 써봐도 같은 에러가 발생한다.
js 번들이 무너진 것 같다.</p>
<p>fix머 다 해봤는데 왜 안먹을까...
다시 재설치를 고려해봐야겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AVD 세컨 모니터 확장 시 튕김:해결]]></title>
            <link>https://velog.io/@melon_0/AVD-%EC%84%B8%EC%BB%A8-%EB%AA%A8%EB%8B%88%ED%84%B0-%ED%99%95%EC%9E%A5-%EC%8B%9C-%ED%8A%95%EA%B9%80%ED%95%B4%EA%B2%B0</link>
            <guid>https://velog.io/@melon_0/AVD-%EC%84%B8%EC%BB%A8-%EB%AA%A8%EB%8B%88%ED%84%B0-%ED%99%95%EC%9E%A5-%EC%8B%9C-%ED%8A%95%EA%B9%80%ED%95%B4%EA%B2%B0</guid>
            <pubDate>Thu, 14 Mar 2024 13:08:58 GMT</pubDate>
            <description><![CDATA[<p>워크스테이션에 개발환경 설정 중
vscode에서 에뮬레이터를 실행시키면 옆 모니터로 넘길 때마다 멈추는 현상이 발생!</p>
<p>AS로 실행했을 때는 문제 없음...</p>
<p>구글링 하다가 stackOverflow에서 동일 증상을 발견!</p>
<p>방법은 다음과 같다
<img src="https://velog.velcdn.com/images/melon_0/post/bb6393b8-9400-4f86-9337-0f9cc6f3f41f/image.png" alt=""></p>
<p>안드로이드 스튜디오에서 virtual device를 켠 뒤
오른쪽에 나타나는 툴바에서... ㄱㄱ</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/6363f59c-0318-4227-86ba-22f5a3bb7b6e/image.png" alt=""></p>
<p>위 사진의 우측 하단 저거</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/1f889352-b395-41ce-842f-bb71911297c8/image.png" alt="">
settings -&gt; advanced에서 </p>
<p>OpenGL ES renderer를
머시기(defalut)에서</p>
<h3 id="angled3d11">ANGLE(D3D11)</h3>
<p>로 변경해주면 된다!</p>
<p>[출처]
<a href="https://stackoverflow.com/questions/44708452/avd-crash-on-second-monitor?noredirect=1&amp;lq=1">https://stackoverflow.com/questions/44708452/avd-crash-on-second-monitor?noredirect=1&amp;lq=1</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0224 Kotlin]]></title>
            <link>https://velog.io/@melon_0/0224-Kotlin</link>
            <guid>https://velog.io/@melon_0/0224-Kotlin</guid>
            <pubDate>Sat, 24 Feb 2024 12:09:15 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/melon_0/post/e9836508-c4e1-4803-b131-189dd0d44d7b/image.png" alt=""></p>
<p>살살 가자 살살</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[ML 0223]]></title>
            <link>https://velog.io/@melon_0/ML-0223</link>
            <guid>https://velog.io/@melon_0/ML-0223</guid>
            <pubDate>Fri, 23 Feb 2024 12:35:15 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/melon_0/post/12a6ee2a-3989-42e6-99a7-b44ff3860207/image.svg" alt=""></p>
<p> 오늘 좀 신기한 걸 했다!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Kotlin 0221 ]]></title>
            <link>https://velog.io/@melon_0/Kotlin-0221</link>
            <guid>https://velog.io/@melon_0/Kotlin-0221</guid>
            <pubDate>Wed, 21 Feb 2024 13:53:13 GMT</pubDate>
            <description><![CDATA[<p>익스텐션, 오버라이드, 클래스 뭐 이런거 저런거</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0220 ML]]></title>
            <link>https://velog.io/@melon_0/0220-ML</link>
            <guid>https://velog.io/@melon_0/0220-ML</guid>
            <pubDate>Tue, 20 Feb 2024 09:09:49 GMT</pubDate>
            <description><![CDATA[<p>휴가를 마치고 돌아왔읍니다</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/72f2f793-7b7d-4b18-a53b-ea81ac23f6d1/image.png" alt=""></p>
<p>피마 인디언 당뇨병 DATA로 
임곗값 조정을 통한 재현율 수치 높이기를 했읍니다.</p>
<p>오늘로
평가지표 단원을 마무리했읍니다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0209 KOTLIN]]></title>
            <link>https://velog.io/@melon_0/0209-KOTLIN</link>
            <guid>https://velog.io/@melon_0/0209-KOTLIN</guid>
            <pubDate>Fri, 09 Feb 2024 05:07:12 GMT</pubDate>
            <description><![CDATA[<ul>
<li><h1 id="함수">함수</h1>
파라미터를 통해 입력되는 모든 값은 변하지 않는 이뮤터블 val이 생략된 형태임</li>
</ul>
<p>파라미터는 정의할 때 =로 기본값 설정 가능</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/c7944bfa-57d6-49a7-93bc-92231e1764d2/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/4fcd0c73-365d-4c59-9270-ada20ccb02f3/image.png" alt="">
오늘 여기까지 </p>
<p>좀 쉬자 ㅎㅎ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0209 ML]]></title>
            <link>https://velog.io/@melon_0/0209-ML</link>
            <guid>https://velog.io/@melon_0/0209-ML</guid>
            <pubDate>Fri, 09 Feb 2024 04:00:54 GMT</pubDate>
            <description><![CDATA[<p>F1 스코어, ROC 곡선, AUC</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/f5e93849-afa9-46b9-b634-8b365d700ed9/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/576f9186-dc13-426b-9f75-3a4ab7030b67/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/68086724-4669-40b9-9eb2-000066b3169b/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/e3296bdd-3893-46c3-a598-f90ea362ad72/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/0827ab8e-1651-439f-94fc-dd24dde6662d/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/e64dc492-2bad-4c1c-8d3c-3f96dab391f5/image.png" alt=""></p>
<p>한 두세번정도 보면 완전히 이해할 것 같은데??
이제 연휴니까 좀 쉬어야이!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0208 KOTLIN]]></title>
            <link>https://velog.io/@melon_0/0208-KOTLIN</link>
            <guid>https://velog.io/@melon_0/0208-KOTLIN</guid>
            <pubDate>Thu, 08 Feb 2024 10:44:58 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/melon_0/post/9476a497-2b06-4c85-9771-42a3f27e16e9/image.png" alt="">
오늘은 너무나도 기본적인거 함</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0208 ML]]></title>
            <link>https://velog.io/@melon_0/0208-ML</link>
            <guid>https://velog.io/@melon_0/0208-ML</guid>
            <pubDate>Thu, 08 Feb 2024 08:14:03 GMT</pubDate>
            <description><![CDATA[<p>와 오늘 정말 힘이 없다..
오늘은 precision, recall을 공부했다.
정밀도와 재현율</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/ed6d792b-095b-4ab2-a57e-05e5293ab133/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/ac4814ca-1021-47e4-842a-ec78fd80c2a4/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/ef9feba7-2d13-4a86-b5c0-669d917bcaa8/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/344ab9f7-575d-4fa2-b4ff-ba31c5840c03/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/502cbf2c-e9c2-418c-ba4f-542a7a7abd4c/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/1474723a-9c15-4fa5-bee6-0a4ef9457ee4/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/3f87ea14-2946-41ef-b99d-010e27ab9b5b/image.png" alt=""></p>
<p>이 책이 정말 대단한게 알기 쉽게 잘 풀어 써져있다.
공룡책 최고</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0207 kotlin]]></title>
            <link>https://velog.io/@melon_0/0207-kotlin</link>
            <guid>https://velog.io/@melon_0/0207-kotlin</guid>
            <pubDate>Wed, 07 Feb 2024 13:42:15 GMT</pubDate>
            <description><![CDATA[<p>오늘은
<img src="https://velog.velcdn.com/images/melon_0/post/374ac099-07bf-457a-8849-d6db976b7109/image.png" alt=""></p>
<p>이만큼 했습니다!</p>
<p>마지막에 immutable collection 얘기가 나와서</p>
<p>변경이 불가능한 것이라면</p>
<p>val로 선언해야하는거고
const는 val 앞에 써야 한대</p>
<p>그래서 든 생각이 이거 다 하면 안되나?? 
구글링 하는데 이런 생각을 한 사람이 많이 없는 것 같아서 
답이 안나와서 직접 해봤습니다.
<img src="https://velog.velcdn.com/images/melon_0/post/05a7d1fd-2679-4603-97cc-8e3c75343d8a/image.png" alt=""></p>
<p>좋은 자료들을 찾았는데</p>
<p>내용은 이렇습니다.</p>
<h4 id="val의-값은-런타임-시-할당--java의-final과-비슷">val의 값은 런타임 시 할당 -java의 final과 비슷</h4>
<h4 id="const-val의-값은-컴파일-시-할당--java의-static-final과-비슷">const val의 값은 컴파일 시 할당 -java의 static final과 비슷</h4>
<p>하다고 한다.</p>
<h4 id="const-val은-객체-할당이-불가능하고-기본-타입만-가능하다">const val은 객체 할당이 불가능하고 기본 타입만 가능하다</h4>
<p>라는 줄과 함께 </p>
<ul>
<li><h3 id="val은-field--getter-메소드가-조합된-것이라고-한다">val은 field + getter 메소드가 조합된 것이라고 한다</h3>
field 로 접근하지만 내부적으로는 getter 메소드가 호출된다고 한다.</li>
</ul>
<p>val  에서 사용되는 getter 메소드는 코드상에서 재정의 할 수 있다고 한다.
하지만 const val은 getter 선언이 불가능하다고 한다.
출처 :<a href="https://findmypiece.tistory.com/243">https://findmypiece.tistory.com/243</a></p>
<ul>
<li><p>val : 런타임 시 결정
val은 독립적인 프로그램 수행 중에 프로그램 수행에 따라 값이 바뀔 수 있다고 한다.
두 숫자를 더한 값을 반환하는 함수로 val의 값을 정한다고 했을 때 이 값은 함수의 parameter로 들어가는 숫자에 따라 언제든지 달라질 수 있다고 한다.</p>
</li>
<li><p>const val : 컴파일 시 결정
클래스의 생성자에 할당될 수 없다.
함수나 클래스 내에서 사용하려면 companion object 아래 중괄호 안에 선언해야 한다고 한다.
출처 : <a href="https://velog.io/@dabin/Kotlin%EB%B3%80%EC%88%98%EC%84%A0%EC%96%B8-val-var">https://velog.io/@dabin/Kotlin%EB%B3%80%EC%88%98%EC%84%A0%EC%96%B8-val-var</a></p>
</li>
</ul>
<h1 id="뭐-이런-정보들을-머리-속에-때려박았더니-아-원래-그런거였지-하고-깨달아-버렸습니다">뭐 이런 정보들을 머리 속에 때려박았더니 아 원래 그런거였지? 하고 깨달아 버렸습니다.</h1>
]]></description>
        </item>
        <item>
            <title><![CDATA[0207 ML]]></title>
            <link>https://velog.io/@melon_0/0207-ML</link>
            <guid>https://velog.io/@melon_0/0207-ML</guid>
            <pubDate>Wed, 07 Feb 2024 07:53:51 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/melon_0/post/c80bfcc3-42f9-47e1-a9ff-cb69253a4659/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/65594860-4494-417b-9b3f-4f5e1e05a245/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/77df3486-d053-47cb-8fb0-4a5180b6621c/image.png" alt=""></p>
<p> 오차행렬까지 함!</p>
<p> 아직 중간중간에 빠뜨려서 기억못하거나 이해 안되는 말들이 좀 있다.
 오늘 유난히 집중이 잘 안돼서 그런가?
 이 단원을 복습할 때 쯤엔 알게 되지 않을까??</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0206 kotlin]]></title>
            <link>https://velog.io/@melon_0/0206-kotlin</link>
            <guid>https://velog.io/@melon_0/0206-kotlin</guid>
            <pubDate>Tue, 06 Feb 2024 11:20:27 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/melon_0/post/d4445fc4-e021-4228-9c05-96602c94e6f2/image.png" alt="">
기초 다지기시작해요
어. 했다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0206 ML]]></title>
            <link>https://velog.io/@melon_0/0206-ML</link>
            <guid>https://velog.io/@melon_0/0206-ML</guid>
            <pubDate>Tue, 06 Feb 2024 07:13:26 GMT</pubDate>
            <description><![CDATA[<p>자 오랜만에 왔죠?</p>
<p>직장체험이 끝나고 휴식기를 잠시 가졌다.</p>
<p>교재를 준비해왔으니 공부를 이어가야지</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/252eefe6-df94-43e2-8cef-90952472f084/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/fa8a1250-76bd-4b7d-8993-255e2ba4ddac/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/d75feb38-f4d5-420f-9ffd-9754fa3a4a76/image.png" alt=""></p>
<p>뭐 이런식으로 데이터 확인하고
<img src="https://velog.velcdn.com/images/melon_0/post/ebc362c4-106a-4887-90d3-ef2b38c1e146/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/7dfec81d-9d62-4baf-9b10-6ca135ec71a0/image.png" alt="">
scale과 encoding을 해봤습니다.</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/6848aa9d-d099-4da3-949b-fc9ae4a6116b/image.png" alt="">
각각 어느 정도의 정확도가 나오는지도 봤고용</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/b3003ac4-15e6-47ab-a69c-54f2ba61d0e4/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/bbab7fe4-cf94-4ae2-afbb-d2a578add4ca/image.png" alt="">
밋밋하던 파이썬에서 이런게 나오니 엄청 신기했읍니다.</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/5a1142f9-9d4c-467d-916e-74d436631b9b/image.png" alt=""></p>
<p>검증까지 한번해보았구요</p>
<p>예 오늘 머신러닝 공부는 여기까지임다 ㅎㅎ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[카카오톡 설치하기]]></title>
            <link>https://velog.io/@melon_0/%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@melon_0/%EC%B9%B4%EC%B9%B4%EC%98%A4%ED%86%A1-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0</guid>
            <pubDate>Tue, 23 Jan 2024 14:01:20 GMT</pubDate>
            <description><![CDATA[<p>꼭 필요한 건 아니지만 그냥 적어본다
이거 하다가 한시간 날렸다
넌 <del>ㅆㅃ</del> 설치 해줄게</p>
<p>아니 설치가 됐는데 파일이 존재하지를 않음
wine 개같은거ㅡㅡ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0123 ML]]></title>
            <link>https://velog.io/@melon_0/0123-ML</link>
            <guid>https://velog.io/@melon_0/0123-ML</guid>
            <pubDate>Tue, 23 Jan 2024 13:57:21 GMT</pubDate>
            <description><![CDATA[<p>교차검증 cross_val_score
K_Fold로 데이터를 학습하고 예측하는 코드</p>
<ol>
<li>폴드 세트를 설정</li>
<li>for 루프에서 반복으로 학습 및 테스트 데이터의 인덱스 추출</li>
<li>반복적으로 학습과 예측을 수행하고 예측 성능을 반환</li>
</ol>
<p>cross_val_score(는 이런 일련의 과정을 한꺼번에 수행해주는 API</p>
<p>cross_val_score(estimator, X, y=None, scoring=None, cv = None, n_jobs=1, verbose =0 , fit_params=None, pre_dispatch=&#39;2*n_jobs&#39;)
이 중 estimator, X, y, scoring, cv가 주요 파라미터</p>
<p>estimator는 사이킷런의 분류 알고리즘 클래스인 classifier 또는 회귀 알고리즘 클래스인 regressor를 의미
X는 피처 데이터 세트
y는 레이블 데이터 세트
scoring은 예측 성능 평가 지표를 기술
cv는 교차 검증 폴드 수
cross_val_score()는 classifier가 입력되면 
stratified K 폴드 방식으로 레이블 값의 분포에 따라 학습/테스트 세트를 분할(회귀인 경우는 stratified k폴드 방식으로 분할할 수 없어서 k폴드로 분할)</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/85eeed78-310d-4a16-a339-e4b290be95e6/image.png" alt=""></p>
<p>cross_val_score()는 cv로 지정된 횟수만큼 scoring 파라미터로 지정된 평가 지표로 평가 결괏값을 배열로 반환.
일반적으로 이를 평균해서 평가 수치로 사용
cross_val_score() api는 내부에서 estimator를 학습(fit) 예측(predict) 평가(evaluation) 시켜주므로 간단하게 교차 검증을 수행할 수 있음.
붓꽃 데이터의 cross_val_score() 수행 결과와 앞 예제의 붓꽃 데이터 stratifiedKFold의 수행 결과를 비교해보면
각 교차 검증별 정확도와 평균 검증 정확도가 모두 동일함.
cross_val_score()가 내부적으로 stratifiedKFold를 이용하기 때문</p>
<p>비슷하게 cross_validate()가 있음. 
cross_val_score는 단 하나의 평가지표만 가능하지만
cross_validate는 여러 개의 평가 지표를 반환할 수 있음.
그리고 학습 데이터에 대한 성능 평가 지표와 수행 시간도 같이 제공
그러나 보통 cross_val_score() 하나로도 대부분의 경우 쉽게 사용함</p>
<p>GridSearchCV - 교차 검증과 최적 하이퍼 파라미터 튜닝을 한 번에</p>
<p>하이퍼 파라미터는 머신러닝 알고리즘을 구성하는 주요 구성 요소. 이값을 조정해 알고리즘의 예측 성능을 개선할 수 있음
사이킷런은 GridSearchCV API를 이용해 classifier나 regressor와 같은 알고리즘에 사용되는 하이퍼 파라미터를 순차적으로 입력하면서
편리하게 최적의 파라미터를 도출할 수 있는 방안을 제공</p>
<pre><code>grid_parameters = {
    &#39;max_depth&#39;:[1,2,3],
    &#39;min_samples_split&#39;: [2,3]
}</code></pre><p>결정 트리 알고리즘의 여러 하이퍼 파라미터를 순차적으로 변경하면서
최고 성능을 가지는 파라미터 조합을 찾으려면
위처럼 파라미터의 집합을 만들고  순차적으로 적용하면서 최적화를 수행할 수 있음</p>
<p>하이퍼 파라미터는 다음과 같이 순차적으로 적용되며 총 6회에 걸쳐 파라미터를 순차적으로 바꿔 실행하면서
최적의 파라미터와 수행결과를 도출.</p>
<p>for 루프로 모든 파라미터를 번갈아 입력하면서 학습시키는 방법을 좀 더 유연하게 api 레벨에서 제공한 것.</p>
<p>1  1  2  2  3  3 
2  3  2  3  2  3
Grid SearchCV는 교차 검증을 기반으로 이 하이퍼 파라미터의 최적 값을 찾게 해줌
이 데이터 세트를 cross-validation을 위한 학습/테스트 세트로 자동으로 분할한 뒤
하이퍼 파라미터 그리드에 기술된 모든 파라미터를 순차적으로 적용해 최적의 파라미터를 찾을 수 있게 해줌</p>
<p>GridSearchCV는 사용자가 튜닝하고자 하는 여러 종류의 하이퍼 파라미터를 다양하게 테스트하면서
최적의 파라미터를 편리하게 찾게 해주지만 동시에 순차적으로 파라미터를 테스트하므로 수행시간이 상대적으로 오래 걸리는 것에 유념해야 함</p>
<p>위의 경우 순차적으로 6회에 걸쳐 하이퍼 파라미터를 변경하면서 교차 검증 데이터 세트에 수행 성능을 측정
CV가 3회라면 개별 파라미터 조합마다 3개의 폴딩 세트를 3회에 걸쳐 학습/평가해 평균 값으로 성능을 측정,
6개의 파라미터 조합이라면 총 CV 3회X6개 파라미터 조합 = 18회의 학습/평가가 이뤄짐</p>
<p>GridSearchCV 클래스의 생성자로 들어가는 주요 파라미터
estimator:classifier, regressot pipeline이 사용될 수 있음
param_grid : key+리스트 값을 가지는 딕셔너리가 주어짐. estimator의 튜닝을 위해 파라미터명과사용될 여러 파라미터 값을 지정함.</p>
<p>scoring: 예측 성능을 측정할 평가 방법을 지정. 보통은 사이킷런의 성능 평가 지표를 지정하는 문자열 &quot;ex: 정확도의 경우 accuracy&quot;로 지정하거나 
별도의 성능 평가 지표 함수도 지정 가능</p>
<p>cv : 교차 검증을 위해 분할되는 학습/테스트 세트의 개수를 지정</p>
<p>refit: 디폴트가 True이며 True로 생성시 가장 최적의 하이퍼 파라미터를 찾은 뒤 입력된 estimator 객체를 해당 하이퍼 파라미터로 재학습 시킴</p>
<p>train_test_split()을 이용해 학습 데이터와 테스트 데이터를 먼저 분리하고 학습 데이터에서 GridSearchCV를 이용해 최적 하이퍼 파라미터를 추출.
결정 트리 알고리즘을 구현한 DecisionTreeClassifier의 중요 하이퍼 파라미터인 max_depth와  min_samples_split의 값을 변화시키면서 최적화
테스트할 하이퍼 파라미터 세트는 딕셔너리 형태로 하이퍼 파라미터의 명친은 문자열 key값으로, 하이퍼 파라미터의 값은 리스트 형으로 설정
<img src="https://velog.velcdn.com/images/melon_0/post/77699456-12a2-459a-8252-f8a93af169d0/image.png" alt=""></p>
<p>학습 데이터 세트를 GridSearchCV 객체의 fit 메서드에 인자로 입력
GridSearchCV 객체의 fit () 메서드를 수행하면 학습 데이터를 cv에 기술된 폴딩 세트로 분할해
param_grid 에 기술된 하이퍼 파라미터를 순차적으로 변경하면서 학습/평가를 수행해서 그 결과를 cv_results_속성에 기록 
cv_results_는 gridsearchcv의 결과 세트로서 딕셔너리 형태로 key값과 리스트 형태의 value값을 가짐.
cv_results_를 Pandas의 DataFrame으로 변환하면 더 쉽게 볼 수 있음.
<img src="https://velog.velcdn.com/images/melon_0/post/57f0b1d7-9386-4761-9438-a295a8d5b329/image.png" alt=""></p>
<p>위의 결과에서 총 6개의 결과를 볼 수 있으며 이는 하이퍼 파라미터 max_depth와 min_samples_split을 순차적으로 총 6번 변경하면서
학습 및 평가를 수행했음을 나타냄.
위 결과의 params 칼럼에는 수행할 때마다 적용된 하이퍼 파라미터 값을 가지고 있음.
맨 마지막에서 두번재 행 인덱스 4를 보면 rank_test_score 칼럼 값이 1. 이는 해당 하이퍼 파라미터의 조합인 max_depth 3 min2로 평가한 결과 예측 성능이 1위</p>
<p>그때의 mean test score가 0.975000으로 가장 높음. 맨 마지막 행도 1위로 공동 1위.
split 123은 cv가 3인 경우.   3개의 폴딩 세트에서 각각 테스트한 성능 수치
mean test score는 세개를 평균한 것</p>
<p>GridSearch CV 객체의 fit을 수행하면 최고 성능을 나타낸 하이퍼 파라미터의 값과 그때의 평가 결과 값이 각각 best_params_, best_score_ 속성에 기록됨.
cv_results, rank test score 1일 때의 값임.</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/301f135c-0797-4bad-8aa4-00660ef930ec/image.png" alt=""></p>
<p>max3, min2일  때 검증용 폴드 세트에서 평균 최고 정확도가 97.5프로로 측정. GridSearchCV 객체의 생성 파라미터로 refit=True가 디폴트
true일 시 GridSearchCV가 최적 성능을 나타내는 하이퍼 파라미터로 Estimator를 학습해 best_estimator_로 저장
이미 학습된 best를 이용해 데이터 세트 예측과 성능 평가
<img src="https://velog.velcdn.com/images/melon_0/post/41235708-ff05-43c0-a13b-ea2ce6efb8ba/image.png" alt=""></p>
<p>별도의 테스트 데이터 세트로 정확도를 측정한 결과 
일반적으로 학습 데이터를 gridSearchCV를 이용해 최적 하이퍼 파라미터 튜닝을 수행한 뒤에 별도의 테스트 세트에서 이를 평가하는 것이
일반적인 머신러닝 모델 적용 방법임</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[직장체험 12일차]]></title>
            <link>https://velog.io/@melon_0/%EC%A7%81%EC%9E%A5%EC%B2%B4%ED%97%98-12%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@melon_0/%EC%A7%81%EC%9E%A5%EC%B2%B4%ED%97%98-12%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Tue, 23 Jan 2024 12:53:15 GMT</pubDate>
            <description><![CDATA[<p>오늘은 하루 종일 프롬프트를 어떻게 만들지 고민하다 끝났다..</p>
<p>이것이 내가 끝마치지 못한 과제로부터 오는 자괴감이 대단했는데</p>
<p>일단 프롬프트 만들기 시작했다
화이팅</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[직장체험 11일차]]></title>
            <link>https://velog.io/@melon_0/%EC%A7%81%EC%9E%A5%EC%B2%B4%ED%97%98-11%EC%9D%BC%EC%B0%A8</link>
            <guid>https://velog.io/@melon_0/%EC%A7%81%EC%9E%A5%EC%B2%B4%ED%97%98-11%EC%9D%BC%EC%B0%A8</guid>
            <pubDate>Mon, 22 Jan 2024 11:01:11 GMT</pubDate>
            <description><![CDATA[<p>오늘 자꾸 단톡방에 방송사고를 냈다
죄송합니다...
면목이 없네</p>
<p>hierarchy 구성마저도 내 손으로 완성하지 못하고
프롬프트 엔지니어링을 시작한다.
문법같은건 쉬운데 텍스트로 많은 양을 짤 수 있게 자동화시켜야한다
할 수 있을 것 같은데
아직 고민중이다
할 수 있다
오늘 진짜 고생했다</p>
<p>무슨 새벽 1시에 눈이 떠져서
말도안되는 생활을 했지만
오늘은 잘 좀 자보자</p>
<p>진자 고생했고
내일도 화이팅이다 ㅅㅅㅅ</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0122 걍 잠]]></title>
            <link>https://velog.io/@melon_0/0122-%EA%B1%8D-%EC%9E%A0</link>
            <guid>https://velog.io/@melon_0/0122-%EA%B1%8D-%EC%9E%A0</guid>
            <pubDate>Mon, 22 Jan 2024 10:58:56 GMT</pubDate>
            <description><![CDATA[<p>4망</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[0121 ML]]></title>
            <link>https://velog.io/@melon_0/0121-ML</link>
            <guid>https://velog.io/@melon_0/0121-ML</guid>
            <pubDate>Sun, 21 Jan 2024 12:46:47 GMT</pubDate>
            <description><![CDATA[<p>stratified k 폴드는 불균형한 분포도를 가진 레이블 (결정 클래스)  데이터 집합을 위한 k 폴드 방식.
불균형한 분포도를 가진 레이블 데이터 집합은 특정 레이블 값이 특이하게 많거나 매우 적어서 값의 분포가 한쪽으로 치우치는 것.</p>
<p>ex
대출사기 데이터</p>
<p>이 데이터 세트는 1억건
수십개의 피처,
대출 사기 여부를 뜻하는 레이블(사기1 정상 0 )</p>
<p>아주 작은 확률로 대출 사기 레이블이 존재. 이렇게 작은 비율로 1레이블 값이 있다면 k 폴드의 아주 작은 확률로 대출사기 레이블이 존재.
K폴드로 랜덤하게 학습 및 테스트 세트의 인덱스를 고르더라도 레이블 값인 0과 1의 비율을 제대로 반영하지 못하는 경우가 쉽게 발생합.</p>
<p>= 레이블 값으로 1이 특정 개별 반복별 학습/테스트 데이터 세트에는 상대적으로 많이 들어있고, 다른 반복 학습/테스트 데이터 세트에는 그렇지 못한 결과가 발생
대출사기 레이블이 1인 레코드는 비록 건수는 작지만 알고리즘이 대출 사기를 예측하기 위한 중요한 피처 값을 가지고 있기 때문에 매우 중요한 데이터 세트.
따라서 원본 데이터와 유사한 대출 사기 레이블 값의 분포를 학습/테스트 세트에도 유지하는 게 매우 중요함</p>
<p>stratified k 폴드는 이처럼 k 폴드가 레이블 데이터 집합이 원본 데이터 집합의 레이블 분포를 학습/테스트세트에 제대로 분배하지 못하는 경우의 문제를 해결해줌</p>
<p>stratified k 폴드는 원본 데이터의 레이블 분포를 먼저 고려한 뒤 이 분포와 동일하게 학습과 검증 데이터 세트를 분배.</p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/27817195-83cb-4849-a384-4450247bfad1/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/a1153b87-0fb4-4740-b561-918782283163/image.png" alt="">
<img src="https://velog.velcdn.com/images/melon_0/post/1db3e029-7885-4e61-b642-3a17e856e8eb/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/a8de128b-2929-4ccd-a1b1-d7a4a7c259bc/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/759532e6-9c29-411c-be60-39dd8aebe99e/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/melon_0/post/a3b1c67e-0e18-4868-a595-58c0a24fb22c/image.png" alt=""></p>
<p>stratified K폴드의 경우 원본 데이터의 레이블 분포도 특성을 반영한 학습 및 검증 데이터 세트를 만ㄷ4ㅡㄹ 수 있으므로</p>
<p>왜곡된 레이블 데이터 세트에서는 반드시 Stratified  K 폴드를 이용해 교차 검증해야함.</p>
<p>일반적으로 분류(classification)에서의 교차 검증은  K폴드가 아니라 stratified k 폴드로 분할되야 함.</p>
<p>회귀(regression)에서는 stratified k 폴드가 지원되지 않음.
회귀의 결정값은 이산값 형태의 레이블이 아니라 연속된 숫자값이기 때문에
결정값별로 분포를 정하는 의미가 없기 때문.</p>
<p>111쪽까지 끝</p>
]]></description>
        </item>
    </channel>
</rss>