<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>채니의 개발일기</title>
    <link>https://xcwaonvy.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Tue, 14 Apr 2026 14:16:46 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>윤채니챈</managingEditor>
    <item>
      <title>전처리가 안될때..-&amp;gt; repr() 함수 사용</title>
      <link>https://xcwaonvy.tistory.com/199</link>
      <description>&lt;pre id=&quot;code_1700467544741&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import re

for i, summary in enumerate(df['book_text_summary']):
    summary = str(summary)
    print(repr(summary))
    summary = summary.replace('.\n', ' . ')
    summary = re.sub(r'\r\n', ' ', summary)  # Replace newline characters with space
    summary = re.sub(r'\\n', '', summary)  # 개행 문자 완전 제거
    summary = summary.replace('.\n', ' . ')
    summary = summary.strip()  # Remove leading and trailing whitespaces

    # Regular expressions to remove unwanted characters
    patterns = [r'\d+\s*쪽', '-', '_', '중에서', r'\(', r'\)', 'p\.']
    for pattern in patterns:
        summary = re.sub(pattern, '', summary)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 이런 저런 코드를 사용해도 '\n' 안지워짐&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대안:&lt;b&gt; repr()함수 사용&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;repr()&lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt; 함수는 파이썬에서 객체를 문자열로 표현하는 데 사용된다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt;이 함수의 주요 목적은 객체를 개발자가 이해할 수 있는 형태로 표현하는 것이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1700467796915&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;s = &quot;Hello\nWorld&quot;
print(s)        # 출력: Hello (new line) World
print(repr(s))  # 출력: 'Hello\nWorld'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt;-&amp;gt; &lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt; &lt;/span&gt;repr()&lt;span style=&quot;color: #0f0f0f; text-align: start;&quot;&gt;은 문자열이나 다른 객체의 내부 표현을 정확히 이해하고자 할 때 매우 유용&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;</description>
      <category>프로그래밍언어/파이썬</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/199</guid>
      <comments>https://xcwaonvy.tistory.com/199#entry199comment</comments>
      <pubDate>Mon, 20 Nov 2023 17:10:17 +0900</pubDate>
    </item>
    <item>
      <title>파이썬 - pandas 라이브러리  unique()</title>
      <link>https://xcwaonvy.tistory.com/198</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;&lt;b&gt;.unique()함수&lt;/b&gt;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: pandas 라이브러리 일부로 해당 열에서 고유한 값들의 배열을 반환한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1699941992583&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import pandas as pd

# 간단한 데이터프레임 생성
data = {
    'book_title': ['Book A', 'Book B', 'Book C', 'Book D', 'Book E'],
    'book_genre': ['Fantasy', 'Science Fiction', 'Fantasy', 'Mystery', 'Science Fiction']
}

df = pd.DataFrame(data)

# book_genre 열에서 고유한 장르 추출
unique_genres = df['book_genre'].unique()

print(unique_genres)&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt;unique한 결과값&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1699942009088&quot; class=&quot;python&quot; data-ke-language=&quot;python&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;['Fantasy', 'Science Fiction', 'Mystery']&lt;/code&gt;&lt;/pre&gt;</description>
      <category>프로그래밍언어/파이썬</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/198</guid>
      <comments>https://xcwaonvy.tistory.com/198#entry198comment</comments>
      <pubDate>Tue, 14 Nov 2023 15:06:53 +0900</pubDate>
    </item>
    <item>
      <title>베이즈정리(확률모델,황금법칙)</title>
      <link>https://xcwaonvy.tistory.com/197</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;예) 스팸분류 모델&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하나의 소프트웨어를 만들고 싶다고 가정하자.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;입력 : 하나의 텍스트(text)&lt;/li&gt;
&lt;li&gt;출력 : 텍스트가 특정 클랙스(스팸 혹은 햄)에 속할확률&lt;/li&gt;
&lt;li&gt;&lt;b&gt;목표 : 하나의 텍스트(text) x가 스팸(spam) y일 확률 계산&amp;nbsp;&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;887&quot; data-origin-height=&quot;404&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EyQfn/btszCutmKUB/75Kr83ZsNkZpdAMkH17kd0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EyQfn/btszCutmKUB/75Kr83ZsNkZpdAMkH17kd0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EyQfn/btszCutmKUB/75Kr83ZsNkZpdAMkH17kd0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEyQfn%2FbtszCutmKUB%2F75Kr83ZsNkZpdAMkH17kd0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;887&quot; height=&quot;404&quot; data-origin-width=&quot;887&quot; data-origin-height=&quot;404&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 이때 텍스트 확률변수를 X, 클래의 확률 변수를 Y라고 하자.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;-&amp;gt; 클래스는 오직 두개만 존재한다고 가정 (y1= 햄, y2=스팸)&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;208&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uGvKj/btszCuUrLNz/Oe8KlYboIYyhNxgAaTCDp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uGvKj/btszCuUrLNz/Oe8KlYboIYyhNxgAaTCDp0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uGvKj/btszCuUrLNz/Oe8KlYboIYyhNxgAaTCDp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuGvKj%2FbtszCuUrLNz%2FOe8KlYboIYyhNxgAaTCDp0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;752&quot; height=&quot;208&quot; data-origin-width=&quot;752&quot; data-origin-height=&quot;208&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: &quot;특가&quot;라는 단어가 포함되었을때, y1 (=햄)이 나올확률과 y2(=스팸)이 나올 확률은 각각 5%,95%이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;문제상황&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 받은 메일 중 70%는 스팸메일, 30%는 정상메일이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스팸메일중 90%가 &quot;대출&quot;이라는 단어가 포함되어있다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정상메일 중 3%가 &quot;대출&quot;이라는 단어가 포함되어있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이때, &quot;대출&quot;이라는 단어가 들어가 있는 메일이 스팸이 확률은?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;- 선수 지식 : 조건부 확률 P(Y|X)&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&amp;nbsp;사건 X가 발생했을 때, 사건 Y가 발생할 확률을 의미&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;베이즈 정리(Bayes' Theorem)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;P(Y|X)를 계산할 수 있으면, 우리가 원하는 프로그램을 만들 수 있다.&lt;/li&gt;
&lt;li&gt;하지만 P(X|Y)를 직접적으로 계산하는것이 어려울때, 베이즈 정리에 기반한 방법을 이용한다.&lt;/li&gt;
&lt;li&gt;베이즈 정리 공식&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;172&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zPt1G/btszCkLkHg2/kaM2hAOjNx4PljU2I4vkc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zPt1G/btszCkLkHg2/kaM2hAOjNx4PljU2I4vkc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zPt1G/btszCkLkHg2/kaM2hAOjNx4PljU2I4vkc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzPt1G%2FbtszCkLkHg2%2FkaM2hAOjNx4PljU2I4vkc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;678&quot; height=&quot;172&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;172&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- P(X) : 특정 텍스트가 나올 확률&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- P(Y): 특정 클래스가 나올 확률&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- P(X|Y) : 특정 클래스에서 특정 텍스트가 나올 확률&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- P(Y|X): 특정 텍스트에서 특정 클래스가 나올 확률&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- P(X,Y) : X와 Y가 동시에 발생할 확률&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;&lt;b&gt; &amp;nbsp;&amp;prop;&amp;nbsp; ℎ &amp;nbsp;&amp;times;&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;(** P(Y|X) = P(X|Y)P(Y) /P(X))&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot; aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;사후확률&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;prop;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;가능도&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;times;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;사전확률&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 사후확률 : 증거를 본 후 가설에 대한 확률 (= 우리가 알고 싶은 것 ) : P(Y|X)&lt;/b&gt;&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 가능도 : 가설 하의 증거 &amp;nbsp;-&amp;gt; P(X|Y)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;- 사전확률 : 증거를 보기 전의 가설에 대한 확률 -&amp;gt;P(Y)&lt;/b&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: #f6e199;&quot;&gt;베이즈 정리 : 조건부 확률을 구하는 공식&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;베이즈 정리를 이용하면, 다양한 확률 문제를 해결 할 수 있다.&lt;/li&gt;
&lt;li&gt;베이즈 정리 공식 :P(A|B) =P(B|A)P(A)/P(B)&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 공식 유도&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;768&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cLedCQ/btszCfQNgig/fEQd0Ep39Zgwn499GcZY5K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cLedCQ/btszCfQNgig/fEQd0Ep39Zgwn499GcZY5K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cLedCQ/btszCfQNgig/fEQd0Ep39Zgwn499GcZY5K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcLedCQ%2FbtszCfQNgig%2FfEQd0Ep39Zgwn499GcZY5K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;868&quot; height=&quot;768&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;768&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다시 문제 해결로..&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 지금까지 받은 메일을 확인해보니 , 70%는 스팸메일, 30%는 정상 메일&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 스팸 메일 중에서 90%는 &quot;대출&quot;이라는 단어 포함&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 정상 메일 중에서 3%는 &quot;대출&quot;이라는 단어 포함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- Q : 이때, &quot;대출&quot;이라는 단어가 들어있는 메일이 스팸 메일일 확률은?&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;X = &quot;대출&quot;단어포함&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Y 1 = 정상, Y2 = 스팸&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;P(스팸) = (Y2)= &amp;nbsp;0.7&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;P(정상) =P(Y1) = 0.3&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;P(대출) = P(X) =? -&amp;gt;구해야할것&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;P(대출|정상) = P(X|Y1) = P(Y1|X)P(X)/P(X)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;P(대출|스팸) = P(X|Y2 ) = P(Y2|X)P(X)/P(X)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;P(X) =&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;&lt;span&gt;P&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;X&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;&lt;span&gt;P&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;X&lt;/span&gt;&lt;span&gt;∣&lt;/span&gt;&lt;span&gt;&lt;span&gt;정상&lt;/span&gt;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;&amp;sdot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;&lt;span&gt;P&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span&gt;정상&lt;/span&gt;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;+&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;&lt;span&gt;P&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;X&lt;/span&gt;&lt;span&gt;∣&lt;/span&gt;&lt;span&gt;&lt;span&gt;스팸&lt;/span&gt;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;span&gt;&amp;sdot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;&lt;span&gt;P&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&lt;span&gt;스팸&lt;/span&gt;&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot;&gt;P(X∣정상)은 메일이 정상일 때 &quot;대출&quot;이라는 단어가 포함될 확률로, 3% 또는 0.03&lt;br /&gt;P(정상)은 메일이 정상일 확률로, 30% 또는 0.3&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;P&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;X&lt;/span&gt;&lt;span&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;를 계산하면:&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;P(X)=(0.03&amp;sdot;0.3)+(0.9&amp;sdot;0.7)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;P(X)=(0.009)+(0.63)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;P(X)=0.639&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;-&amp;gt; 정답 : &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;P(스팸|대출) = P(대출|스팸)P(스팸)/P(대출) =0.9*07/0639&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #374151; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;확률모델&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
- 일반적인 분류모델 P(y|x)은 다음과 같은 공식으로 예측결과 y&amp;#770;를 계산한다.
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이모델은 조건부확률 P(y|x)를 사용하여 주어진 입력 x가 주어졌을때 가능한 각 결과 y를 추정한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;
  y&amp;#770 = argmax&lt;sub&gt;y&lt;/sub&gt; P(y|x)
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 가능한 모든 클래스 중에 가장 높은 클래스를 선택 -&amp;gt; ex: 강아지, 새, 고양이 등의 클래스가 들어갈때, 가장 높은 값을 표현하는 y를 찾는것&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;황금범칙(Golden Rule)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 텍스트 x(이미지나, 텍스트나...)가 주어졌을 때, 이 텍스트는 어떤 클래스(y)로 분류될까?&lt;/p&gt;
&lt;p&gt;
  - y&amp;#94; = argmax&lt;sub&gt;y&lt;/sub&gt; P(y&amp;#124;x) = argmax&lt;sub&gt;y&lt;/sub&gt; P(y&amp;#124;x)P(y) =
   argmax&lt;sub&gt;y&lt;/sub&gt; P(y&amp;#124;x)P(y)
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 따라서 분모에 해당하는 P(x)는 고려하지 않아도 된다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;최대 우도 추정(Maximum Likelihood Estimation)&lt;/h3&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;가능도(likehood)가 가장 높은 클래스를 선택하는 방법&lt;/li&gt;
&lt;li&gt;x는 특징(feature)혹은 데이터를 말한다&lt;/li&gt;
&lt;li&gt;x = 광고성 단어의개수(&quot;특가&quot;)등이라고 해보자&lt;/li&gt;
&lt;li&gt;현재 예시에선 x&amp;gt;= 5이라면 스팬으로 분로하면된다&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;스크린샷 2023-11-03 오전 7.31.09.png&quot; data-origin-width=&quot;548&quot; data-origin-height=&quot;215&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xB0Dz/btszF48HfZ1/BC6HbksJUS7zbeAag7A3Wk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xB0Dz/btszF48HfZ1/BC6HbksJUS7zbeAag7A3Wk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xB0Dz/btszF48HfZ1/BC6HbksJUS7zbeAag7A3Wk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxB0Dz%2FbtszF48HfZ1%2FBC6HbksJUS7zbeAag7A3Wk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;548&quot; height=&quot;215&quot; data-filename=&quot;스크린샷 2023-11-03 오전 7.31.09.png&quot; data-origin-width=&quot;548&quot; data-origin-height=&quot;215&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;- 우리는 사후확률(posterior)을 직접적으로 계산하기 어렵기 때문에 가능도를 이용한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 하지만 가능도만으로 사후확률을 근사할 수 없다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffc9af;&quot;&gt;&lt;b&gt; &amp;nbsp;&amp;prop;&amp;nbsp; ℎ &amp;nbsp;&amp;times;&amp;nbsp; &lt;/b&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;** P(Y|X) = P(X|Y)P(Y) /P(X)&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;&lt;span style=&quot;color: #374151; text-align: start;&quot; aria-hidden=&quot;true&quot;&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;사후확률&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;prop;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;가능도&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&amp;times;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;사전확률&lt;/b&gt;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;- 만약 prior가 uniform distribution을 따르지 않는다면?&lt;/p&gt;</description>
      <category>수학/통계학</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/197</guid>
      <comments>https://xcwaonvy.tistory.com/197#entry197comment</comments>
      <pubDate>Thu, 2 Nov 2023 17:59:47 +0900</pubDate>
    </item>
    <item>
      <title>응답헤더 : Access-Control-Allow-Origin: *</title>
      <link>https://xcwaonvy.tistory.com/195</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;Access-Control-Allow-Origin: *&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;모든 출처에서의 요청을 허용한다는 것을 의미. 즉, 어떤 웹 사이트에서든 해당 서버의 리소스에 접근할 수 있다.&lt;br /&gt;&lt;br /&gt;Ajax&amp;nbsp;사용을&amp;nbsp;허용하는지&amp;nbsp;확인하려면:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;개발자&amp;nbsp;도구&amp;nbsp;사용&lt;/b&gt;:&lt;br /&gt;1. 웹 브라우저에서 개발자 도구를 열고 (대부분의 브라우저에서 F12 키 또는 Ctrl+Shift+I로 열 수 있습니다) 'Network' 탭으로 이동&lt;br /&gt;2. 해당 API 또는 리소스에 요청을 보냅니다.&lt;br /&gt;3. 'Network' 탭에서 해당 요청을 선택하고, 응답 헤더를 확인한다.&lt;br /&gt;Access-Control-Allow-Origin 헤더의 값을 확인한다&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;1650&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bTWXI5/btszlj6wz4b/iRdifgNzMTQoadWbizled1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bTWXI5/btszlj6wz4b/iRdifgNzMTQoadWbizled1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bTWXI5/btszlj6wz4b/iRdifgNzMTQoadWbizled1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbTWXI5%2Fbtszlj6wz4b%2FiRdifgNzMTQoadWbizled1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;717&quot; height=&quot;1062&quot; data-origin-width=&quot;1114&quot; data-origin-height=&quot;1650&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&lt;b&gt;2. 코드를 사용하여 확인:&lt;/b&gt;&lt;br /&gt;&amp;nbsp;1. JavaScript의 XMLHttpRequest 또는 fetch API를 사용하여 해당 리소스에 요청을 보낼 수 있다 .&lt;br /&gt;&amp;nbsp;2. 요청이 성공하면 해당 리소스는 Ajax 요청을 허용하고 있음을 의미.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;3. 그러나 실패하면 CORS 정책 때문에 요청이 차단된 것일 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프론트엔트/Ajax</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/195</guid>
      <comments>https://xcwaonvy.tistory.com/195#entry195comment</comments>
      <pubDate>Mon, 30 Oct 2023 13:19:22 +0900</pubDate>
    </item>
    <item>
      <title>XMLHttpRequest 객체</title>
      <link>https://xcwaonvy.tistory.com/194</link>
      <description>&lt;h3 data-ke-size=&quot;size23&quot;&gt;XMLHttpRequst&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;- XMLHttpRequest&lt;/span&gt;객체는 웹 브라우저의 API 중 하나로, &lt;u&gt;웹페이지가 서버와 비동기적으로 데이터를 교환할 수 있게 해주는 핵심객체&lt;/u&gt;이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이 객체를 사용하면 페이지 전체를 새로고침하지 않고도 서버로부터 데이터를 받아올 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 사용자 경험이 향상되며, 애플리케이션의 반응성이 높아진다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;기본사용방법&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: &quot;XMLHttpRequst'객체를 생성하는 방법에는 여러가지 방법에는 웹브라우저의 종류에 따라 다를 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. XMLHttpRequset 객체 생성 이용 방법 :&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;대부분의 현대 웹 브라우저에서는 'XMLHttpRequset'객체를 내장하고 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;생성방법은 다으과 같다.&lt;/p&gt;
&lt;pre id=&quot;code_1698547119527&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var xhr = new XMLHttpRequest();&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2.&amp;nbsp; ActiveXobject 객체를 이용한 방법:&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구형의 internet Explorer, 특히 IE5와 6에서는 'XMLHttpRequest'객체 대신 'ActiveXObject'를 이용하여 기능을 수행한다.&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698547455952&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var xhr = new ActiveXOject(&quot;Microsoft.XMLHTTP&quot;);&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3.&amp;nbsp; 모든 웹 브라우저에서 호환되는 XMLHttpRequest 객체 생성:&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위으 두 가지 방법을 결합하여 모든 웹 브라우저에서 'XMLHttpRequest'객체를 생성하는 함수를 작성할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게하면 다양한 웹 브라우저에서 동작하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698547730080&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var httpRequest;

function createRequest(){

	if(window.XMLHttpREquest){ // 대부분의 웹 브라우저 
    	httpRequest = new XMLHttpRequest();
    }else if(window.ActiveXObject){ // IE 5와 6
    	httpRequest = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);
    }
    
    if(!httpRequest){
    	aleter(&quot;XMLHTTP 인스턴스를 생성할 수 없다.&quot;);
        return false;
    }
     return httpRequest;
   
  }&lt;/code&gt;&lt;/pre&gt;</description>
      <category>프론트엔트/Ajax</category>
      <category>XMLHttpRequest</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/194</guid>
      <comments>https://xcwaonvy.tistory.com/194#entry194comment</comments>
      <pubDate>Sun, 29 Oct 2023 11:51:03 +0900</pubDate>
    </item>
    <item>
      <title>DOM API</title>
      <link>https://xcwaonvy.tistory.com/193</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DOM API&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;** DOM이란? 웹페이지 구조를 표현하는 프로그래밍 인터페이스&amp;nbsp;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;DOM은 웹페이지의 모든 요소를 객체로 표현하며, 이 객체들은 프로퍼티와 메서드를 가지고 있어 웹페이지의 내용,구조, 스타일 등을 동적으로 변경 할 수 있다. &lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;:&amp;nbsp; Ajax&amp;nbsp;&lt;/b&gt;를 이용하여 웹페이지의 일부만을 갱신하려면 더욱 다양한 DOM 속성을 활용해야한다.&lt;b&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;따라서, DOM과 관련된 다양한 API를 이용하여 노드를 동적으로 생성하고, 조작할 수 있어야 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;노드의 추가&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 웹페이지의 DOM 구조를 동적으로 변경하기 위해 노드를 추가하는 것은 자주 사용되는 작업 중 하나&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;b&gt;appendChild()&lt;/b&gt; : appendChild() 메소드는 새로운 노드를 해당 노드의 자식 노드 리스트의 맨 마지막에 추가한다. 만약 추가하려는 노드가 이미 DOM에 존재한다면, 해당 노드는 현재 위치에서 제거되고 새로운 위치에 추가하게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;insertBefoer() &lt;/b&gt;: insertBefoer() 메소드는 새로운 노드를 지정한 참조 노드의 바로 앞에 추가한다. 이 메소드는 두개의 인자를 받는다. 추가하려는 노드와 참조 노드이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;b&gt;insertData()&lt;/b&gt; : insertData() 메소드는 테스트 노드의 특정 위치에 새로운 텍스트 데이터를 추가한다. 이 메소드는 텍스트 노드에만 사용할 수 있으며, 시작 위치와 추가할 텍스트를 인자로 받는다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698546776138&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function appendNode(){

	var parent = document.getElementById(&quot;list&quot;); 
    // 아이디가 &quot;list&quot;인 요소선택&quot;
    var NewItem = document.createElement(&quot;li&quot;); //새로운 &amp;lt;li&amp;gt;요소 생성
    newItem.textContent =&quot;새로운항목 &quot;; // &amp;lt;li&amp;gt;요소의 텍스트 내용 설정
    parent.appendChild(newItem);//'list'요소의 맨 마지막 자식 노드로 추가한다. 
 
 }&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;노드의 생성&lt;/h4&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;생성할 노드의 종류에 따라 다음과 같은 메소드를 사용할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;createElement() :&amp;nbsp;새로운 요소 노드를 생성함.&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;2.&amp;nbsp;createAttribute() :&amp;nbsp;새로운 속성 노드를 생성함.&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;background-color: #ffffff; color: #575757; text-align: left;&quot;&gt;3.&amp;nbsp;createTextNode() :&amp;nbsp;새로운 텍스트&amp;nbsp;노드를 생성함.&lt;/span&gt;&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698546830996&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;function createNode() {
    var criteriaNode = document.getElementById(&quot;text&quot;); // 기준이 되는 요소로 아이디가 &quot;text&quot;인 요소를 선택함.
    var newNode = document.createElement(&quot;p&quot;);          // 새로운 &amp;lt;p&amp;gt; 요소를 생성함.
    newNode.innerHTML = &quot;새로운 단락입니다.&quot;;
    document.body.insertBefore(newNode, criteriaNode);  // 새로운 요소를 기준이 되는 요소 바로 앞에 추가함.
}&lt;/code&gt;&lt;/pre&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;노드의 제거&lt;/h4&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;다음 메소드를 사용하면 특정 노드를 제거할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;1.&amp;nbsp;removeChild() :&amp;nbsp;기존의 노드 리스트에서 특정 노드를 제거함.&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;2.&amp;nbsp;removeAttribute() :&amp;nbsp;속성의 이름을 이용하여 특정 속성 노드를 제거함.&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698546868468&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var parent = document.getElementById(&quot;list&quot;);      // 아이디가 &quot;list&quot;인 요소를 선택함.
var removedItem = document.getElementById(&quot;item&quot;); // 아이디가 &quot;item&quot;인 요소를 선택함.
parent.removeChild(removedItem);                   // 지정된 요소를 삭제함.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;노드의 값&amp;nbsp;변경&lt;/h4&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;nodeValue 프로퍼티를 사용하면 특정 노드의 값을 변경할 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;또한, setAttribute() 메소드는 속성 노드의 속성값을 변경할 수 있게 해준다.&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698546890833&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var para = document.getElementById(&quot;text&quot;); // 아이디가 &quot;text&quot;인 요소를 선택함.
function changeText() {
    para.firstChild.nodeValue = &quot;텍스트 변경 완료!&quot;;
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 style=&quot;color: #333333; text-align: left;&quot; data-ke-size=&quot;size20&quot;&gt;노드의 교체&lt;/h4&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;replaceChild() 메소드를 사용하면 특정 노드 그 자체를 다른 노드로 바꿀 수 있다.&lt;/p&gt;
&lt;p style=&quot;color: #575757; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1698546915673&quot; class=&quot;javascript&quot; data-ke-language=&quot;javascript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;var parent = document.getElementById(&quot;parent&quot;); // 부모 노드를 선택함.
var first = document.getElementById(&quot;first&quot;);
var third = document.getElementById(&quot;third&quot;);
function changeNode() {
    parent.replaceChild(third, first);          // first 요소를 삭제하고, 그 대신 third 요소를 삽입함.
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>프론트엔트/Ajax</category>
      <category>DOMAPI</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/193</guid>
      <comments>https://xcwaonvy.tistory.com/193#entry193comment</comments>
      <pubDate>Sun, 29 Oct 2023 11:35:37 +0900</pubDate>
    </item>
    <item>
      <title>Wodr2Vec</title>
      <link>https://xcwaonvy.tistory.com/192</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;- &quot;&lt;u&gt;비슷한 문맥에서 나타나는 단어들은 비슷한 의미를 가진다&lt;/u&gt;&quot;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 단어의 의미를 반영한 임베딩 벡터를 만드는 대표적인 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 벡터가 된 단어들은 이제 '벡터'이므로 서로 연산이 가능하다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Word2Vec의 두가지 학습 모델&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;476&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Copod/btszbulhHSB/C6AerCnPEVsKIms0dppWC1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Copod/btszbulhHSB/C6AerCnPEVsKIms0dppWC1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Copod/btszbulhHSB/C6AerCnPEVsKIms0dppWC1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCopod%2FbtszbulhHSB%2FC6AerCnPEVsKIms0dppWC1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1532&quot; height=&quot;476&quot; data-origin-width=&quot;1532&quot; data-origin-height=&quot;476&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1.&lt;b&gt;CBOW&lt;/b&gt; : 주변의 단어들을 기반으로 중심단어 예측&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;SKip-Gram&lt;/b&gt; : 중심단어를 기반으로 주변단어 예측&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;CBOW&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 주변 단어들(context words)을 기반으로 중심단어(center word)를 예측한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>인공지능/자연어처리</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/192</guid>
      <comments>https://xcwaonvy.tistory.com/192#entry192comment</comments>
      <pubDate>Wed, 25 Oct 2023 13:31:03 +0900</pubDate>
    </item>
    <item>
      <title>다층퍼셉트론(소트맥스 회귀와 다층 퍼셉트론)</title>
      <link>https://xcwaonvy.tistory.com/191</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;작성예정...&lt;/p&gt;</description>
      <category>인공지능/자연어처리</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/191</guid>
      <comments>https://xcwaonvy.tistory.com/191#entry191comment</comments>
      <pubDate>Wed, 25 Oct 2023 10:30:14 +0900</pubDate>
    </item>
    <item>
      <title>다층퍼셉트론(로지스틱회귀)</title>
      <link>https://xcwaonvy.tistory.com/190</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;작성예정..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>인공지능/자연어처리</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/190</guid>
      <comments>https://xcwaonvy.tistory.com/190#entry190comment</comments>
      <pubDate>Wed, 25 Oct 2023 10:29:41 +0900</pubDate>
    </item>
    <item>
      <title>머신러닝 분류(지도학습,비지도학습, 자기지도학습,강화학습)</title>
      <link>https://xcwaonvy.tistory.com/189</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;지도학습 vs 비지도학습 vs 자기지도학습 vs 강화학습&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;지도학습 (Supervised Learining)&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 기계학습의 한 방법으로, &lt;u&gt;입력값과 그에 상응하는 출력값(정답 레이블)을 포함하는 학습 데이터를 사용하여 모델을 학습&lt;/u&gt;시키는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 학습과정에서 모델은 입력값과 출력값 사이의 관계를 학습하게 되며, 이를 통해 새로운 이볅값에 대한 예측을 수행할 수 있게 된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 정답(뭐가 출력돼야 할지)를 알 고 있다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ex) 강아지사진과 고양이 사진을 입력값으로 사용할 때 &amp;nbsp;CNN모델을 넣으면 강아지면 1, 고양이면 0을 출력한다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;219&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pp6Gl/btsy465SFTH/IojuyJIk4ecvo3ARVy5OIk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pp6Gl/btsy465SFTH/IojuyJIk4ecvo3ARVy5OIk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pp6Gl/btsy465SFTH/IojuyJIk4ecvo3ARVy5OIk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fpp6Gl%2Fbtsy465SFTH%2FIojuyJIk4ecvo3ARVy5OIk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;531&quot; height=&quot;219&quot; data-origin-width=&quot;531&quot; data-origin-height=&quot;219&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 지도학습의 예)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 회귀(retression) : 회귀는 연속적인 값을 예측한다. 예를들어, 집의 크기, 위치, 방의 수등의 특징을 기반으로 집의 가격을 예측하는 문제는 회귀문제이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp; - 분류(Classification) : 분류는 주어진 입력밧을 두 개 이상의 클래스 중 하나로 분류하는 문제에 사용된다. 위의 강아 고양이 분류 문제의 예이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;비지도학습&amp;nbsp;&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 정답을 모른다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 학습 데이터에 정답 레이블이 포함되어 있지 안는 방법으로 &lt;u&gt;데이터의 숨겨진 패턴,구조,관계등을 찾아내는데 중점&lt;/u&gt;을 둔다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;1. 군집화(Clustering)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;nbsp;군집화는 &lt;u&gt;비슷한 특성을 가진 데이터를 같은 그룹으로 묶는 방법&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 예) 몸무게와 키의 입력값을 기반으로 사람들을 여러 그룹으로 분류하는것. 이때, 각 그룹은 비슷한 몸무게와 키를 가진 사람들로 구성된다.&lt;br /&gt;- 대표적인 알고리즘 : &amp;nbsp;ex)k-means, DBSCAN, ...&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 차원축소 (Dimensionality Reduction)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- &amp;nbsp;차원축소는 데이터의 특성(차원)을 줄이면서도 데이터의 중요한 정보는 최대한 유지하는 방법&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 주로 시각화,데이터의 압축, 노이즈 제거 등의 목적으로 사용&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 대표적인 알고리즘 : PCA(주성분 분석) ,SVD(특이값 분해) ,...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;3. GAN(Generative Adversarial Network)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- GAN은 두개의 신경망, 생성자(Generator)와 판별자(Discriminator)를 사용하여 데이터를 생성하는 모델&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 생성자는 실제 데이터와 유사한 가짜 데이터를 생성하고, 판별자는 생성된 데이터가 진짜인지 가짜인지 판별한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 이 두 신경망이 서로 경쟁하면서 학습을 진행하게 되는데, 학습이 진행될수록 생성자는 더욱 정교한 가짜 데이터를 생성하게 된다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;자기지도 학습&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: lable(정답)이 없는 대량의 데이터를 활용하여 모델을 학습시키는 방식&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 이 방식은 데이터 내&lt;u&gt;부의 정보를 사용하여 '보조문제 (pretext task)'를 정의하고, 이 보조 문제를 통해 모델을 사전학습(pre-training)&lt;/u&gt;한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 이후 사전학습된 모델을&lt;u&gt; 실제문제(downstream task)에 적용하기 위해 전이학습(transfer learning)을 수행&lt;/u&gt;한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자기주도학습 주요기법&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;b&gt;Context Prediciton&lt;/b&gt; :&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 방법은 데이터의 일부를 가리거나 제거하고, 모델에게 그 가려진 부분을 예측하게 한다&lt;/li&gt;
&lt;li&gt;예) BERT 모델에서 텍스트 일부 단어를 가리고, 가려진 단어를 예측하는 방법&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;Contrastive Learning&lt;/b&gt; :&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이 방법은 데이터의 다양한 변형 버전을 생성하고, 이러한 변형들이 원래 데이터와 얼마나 유사한지 판결한다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;주요 아이디어는 유사한 데이터 포인터는 가까이 있어야하고, 다른 데이터 포인트는 멀리 떨어져있어야한다.&lt;/li&gt;
&lt;li&gt;예) SimCLR, Moco와 같은 알고리즘&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1806&quot; data-origin-height=&quot;945&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHKEbf/btsyXYBKqvw/nNv1DzIrbwrYupN8jkR1TK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHKEbf/btsyXYBKqvw/nNv1DzIrbwrYupN8jkR1TK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHKEbf/btsyXYBKqvw/nNv1DzIrbwrYupN8jkR1TK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHKEbf%2FbtsyXYBKqvw%2FnNv1DzIrbwrYupN8jkR1TK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1806&quot; height=&quot;945&quot; data-origin-width=&quot;1806&quot; data-origin-height=&quot;945&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;자기지도 학습과정&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;b&gt;Pretext Task 학습(Pre-training)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 먼저, 보조문제(pretext task)를 통해 모델을 학습시킨다. 이 단계에서 레이블이 필요하지않는다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;DownStream Task 학습(Trnasfer Learning)&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 사전 학습된 모델을 실제 문제(downstream task)에 적용하기 위해 전이학습을 수행한다. 이 단계에서는 일반적으로 레이블이 있는 작은 데이터셋을 활용한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style2&quot; /&gt;
&lt;h3 style=&quot;color: #000000; text-align: start;&quot; data-ke-size=&quot;size23&quot;&gt;강화학습&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;: 기계학습의 한 분야로, &lt;b&gt;에이전트(agent)가 환경(environment)과 상호작용하여 보상(reward)를 최대화하는 방향&lt;/b&gt;으로 학습하는 방향론이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: circle;&quot; data-ke-list-type=&quot;circle&quot;&gt;
&lt;li&gt;강화학습 과정&lt;/li&gt;
&lt;li&gt;1. 초기화 :&lt;br /&gt;에이전트와 환겨을 초기화 상태로 설정 -&amp;gt; 에이전트의 학습파라미터(ex: 가치함수,정책)을 초기화한다.&lt;/li&gt;
&lt;li&gt;2. 상호작용:&lt;br /&gt;에이전트는 현재 상태를 기반으로 행동을 선택한다. 이 행동 선택은 &lt;u&gt;탐험(exploration)과 활용(exploitation)의 균형을 유지&lt;/u&gt;하면서 이루어진다.&lt;br /&gt;선택된 행동을 환경에 적용한다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;3. 보상 및 다음상태(Observation):&lt;br /&gt;환경은 에이전트의 행동에 반응하여 보상과 다음상태를 제공한다&lt;/li&gt;
&lt;li&gt;4. 학습(Learning):&lt;br /&gt;&amp;nbsp;에이전트는 받은 보상과 다음 상태를 사용하여 학습알고리즘(예: Q-learning,SARSA,Acotr-Critic등)을 적용하여 자신의 정책 또는 가치함수를 업데이트한다.&lt;/li&gt;
&lt;li&gt;5. 반복(Iteration):&amp;nbsp;&lt;br /&gt;에이전트는 종료조건(ex: 최대 에피소드 수, 학습의 수렵 등) 이 반복될때까지 상호작용과 학습과정을 반복한다.&lt;/li&gt;
&lt;li&gt;평가(Evaluation):&amp;nbsp;&lt;br /&gt;주기적으로 또는 학습이 종료된 후에 에이전트의 성능을 평가한다. 이를 통해 학습의 진행상황을 모니터링하고 필요한 경우 학습 파라미터를 조정한다.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 예를 들어 강화학습를 체스에 비유하자면,,,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. &lt;b&gt;에이전트(Agent)&lt;/b&gt; : 체스 플레이어&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. &lt;b&gt;환경(Environment)&lt;/b&gt; : 체스판과 상대방 플레이어이다. 플레이의 움직에 반응하여 게임의 상태를 변경하고, 결과를 제공한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. &lt;b&gt;행동(Action)&lt;/b&gt;: 플레이어가 &lt;u&gt;선택할 수 있는 모든 가능한 체스를 움직인&lt;/u&gt;다. 예를 들어, 폰을 한 칸 전진시키거나, 나이트를 L자 형태로 움직이는 것&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4.&lt;b&gt; 상태(state)&lt;/b&gt;: &lt;u&gt;체스판의 현재 배치&lt;/u&gt;이다. 모든 체스 말의 위치와 그들의 상태(ex: 왕이 체크 상태인지 아닌지)를 포함한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5. &lt;b&gt;보상(Reward)&lt;/b&gt;: 플레이어의 움직임에 따른 결과로, &lt;u&gt;게임에서 얻는 점수나 피드백&lt;/u&gt;이다. 예를 들어, 상대방의 말을 잡았을 때의 점수나, 게임에서 승리했을 때의 큰 보상, 또는 체크메이트를 당했을때 얻는 패널티 등이 잇다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6. &lt;b&gt;에피소드:&lt;/b&gt; 초기 상태에서 시작하여 종료 상태의 도달할때까지&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt; 상태, 행동 ,보상의 연속된 시퀀스&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;*&lt;span style=&quot;background-color: #ffc1c8;&quot;&gt;시퀀스&lt;/span&gt;란 ? : 일련의 요소들을 순서대로 갖는 데이터 구조 ex)리스트, 튜플, 문자열등..&lt;/p&gt;
&lt;p style=&quot;color: #333333; text-align: start;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;a style=&quot;color: #0070d1;&quot; href=&quot;https://xcwaonvy.tistory.com/177&quot;&gt;2023.10.13 - [프로그래밍언어/파이썬] - 파이썬- 시퀀스란?&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1698196777146&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;파이썬- 시퀀스란?&quot; data-og-description=&quot;시퀀스: 일련의 요소들을 순서대로 갖는 데이터 구조를 의미. 시퀀스는 여러 항목들을 정렬된 순서로 저장하며, 각 항목은 고유한 인덱스를 통해 접근 할 수 있다. 시퀀스 타입 1. 리스트(list) : &quot; data-og-host=&quot;xcwaonvy.tistory.com&quot; data-og-source-url=&quot;https://xcwaonvy.tistory.com/177&quot; data-og-url=&quot;https://xcwaonvy.tistory.com/177&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/9JCF8/hyUgTzCrgi/QYYBLTCG5GiOeWvkGUdY01/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/csfIRo/hyUgTzCrfK/3tFpQfOT0G7iIf98ktI7m0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bP5dQc/hyUgVc66Zj/rMAAPEZwL6iNpH7tZ3KhGk/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400&quot;&gt;&lt;a href=&quot;https://xcwaonvy.tistory.com/177&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://xcwaonvy.tistory.com/177&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/9JCF8/hyUgTzCrgi/QYYBLTCG5GiOeWvkGUdY01/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/csfIRo/hyUgTzCrfK/3tFpQfOT0G7iIf98ktI7m0/img.png?width=800&amp;amp;height=800&amp;amp;face=0_0_800_800,https://scrap.kakaocdn.net/dn/bP5dQc/hyUgVc66Zj/rMAAPEZwL6iNpH7tZ3KhGk/img.png?width=400&amp;amp;height=400&amp;amp;face=0_0_400_400');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;파이썬- 시퀀스란?&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;시퀀스: 일련의 요소들을 순서대로 갖는 데이터 구조를 의미. 시퀀스는 여러 항목들을 정렬된 순서로 저장하며, 각 항목은 고유한 인덱스를 통해 접근 할 수 있다. 시퀀스 타입 1. 리스트(list) :&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;xcwaonvy.tistory.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;7. &lt;b&gt;정책 (policy)&lt;/b&gt;: 플레이어의 전략이다. 주어진 체스판의 상태에서 어떤 움직임을 선택할지 결정하는 규칙또는 방법론을 의미한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;- 체스 게임에서 강화학습 과정&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;플레이어(에이전트)는 체스판의 현재 상태를 기반으로 움직임(행동)을 선택한다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;환경(체스판과 상대방)은 움직이에 반응하여 게임의 상태를 변경하고, 그 결과(보상또는 패널티)를 플레이어에 제공한다&lt;/li&gt;
&lt;li&gt;플레이어는 이러한 경험을 통해 자신의 전략(정책)을 변경하고 개선하려고한다.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;이과정은 여러게임(에피소드)동안 반복되며, 플레이어는 각 게임에서의 경험을 통해 더 나은 전략을 학습하게 된다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000; font-size: 1.25em; letter-spacing: -1px;&quot;&gt;옵티마 (최단패스)찾기 :&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;옵티마 또는 최단 경로 문제는 그래프에서 두 노드 사이의 가장짧은 경로를 찾는 문제이다. 이 문제는 다양한 알고리즘으로 해결할 수 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #000000;&quot;&gt;Discount Factor :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000;&quot;&gt;강화학습에서의 &quot;dicount facor&quot;는 미래의 보상을 현재의 가치로 환산하는데 사용되는 계수이다. 보통 0과 1사이의 값으로 설정되며, 이값이 1에 가까울 수록 미래의 대한 보상을 중요하게 여기고, 0에 가까울수록 현재의 보상을 더 중요하게 여긴다.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;</description>
      <category>인공지능/인공지능 기초</category>
      <category>강화학습</category>
      <category>비지도학습</category>
      <category>자기지도학습</category>
      <category>지도학습</category>
      <author>윤채니챈</author>
      <guid isPermaLink="true">https://xcwaonvy.tistory.com/189</guid>
      <comments>https://xcwaonvy.tistory.com/189#entry189comment</comments>
      <pubDate>Mon, 23 Oct 2023 23:52:55 +0900</pubDate>
    </item>
  </channel>
</rss>