한국폴리텍대학교 하이테크과정

2024. 08.23 전익진 교수님 수업 2학기 시작 - 공부해야 할 목록들

복숭아 백설아 2024. 8. 23. 16:38

-공간의 개념

스칼라 : 점, 벡터 : 선, 메트릭스 , 텐서

피타고라스 공식과 y=ax+b의 공식

 

 

-PCA : 결측치가 실제인지 아닌지 판단, 전처리 - 정규화, 표준화. 정규화를 해도 스케일이 큰 것은 크고,

표준화와 정규화 모두 중요한 개념이다. 주 성분 분석, Classification 의사결정방법 머신러닝 이해도가 중요하다. 

정규화는 0과 1 사이로 데이터 값들을 바꿔주는 것이다. 평균 기준선이 0이고 표준편차가 1인가?

분산값이 가장 큰(기저는 벡터 1차원 선) 딥러닝은 PCA가 핵심이다. 기존 갖고있던 잔차 값을 보존하여 저차원으로 옮겨 분산이 커지는 것. 차원을 높이면 반대로 분산이 작아지는가? 

 

원본 데이터를 PCA에 사용(투영) 시키면 원분산의 70%를 보존, 핵심요인 즉 중요한 인자를 판단할 때 확률을 봐야한다. 시작은 표준화이다. 이 개념에 대해 암기가 필요하다. 핵심인자인지 아닌지 판단하는 게 주성분 분석의 중요한 부분이다. 차원을 낮추는 방법에서 분산값이 가장 큰 것을 찾는 것이 세부이며 하위 방법. 

 

 

- 주성분 분석 : 주 성분 분석은 차원을 축소해서 나타내는 것. 공간의 개념이 중요하다. 

 

- 군집 모델, 회귀 모델, 분류 모델 등의 차이점 

:  군집은 y가 없다. 

 

- 평균, 분산. 분산이란? 편차의 제곱값. 방향성을 고려하진 않으나 그래프로부터 떨어진 정도를 파악, 변수를 추출하기 위해 한다. 이해하는데 핵심 단어는 기저. 

 

-잔차&기저&

평균선과 데이터 차이가 잔차 같다. (졸면서 들었기 때문에 개념 재확인이 중요하므로 복습하자) 잔차는 무엇이고 기저는 무엇인가? 기저 선은 주성분 분석 1번 선이 된다. 

 

-표준화

중심값을 옮기고 중앙으로 이동된 후 선을 긋고 거리를 잰다. 3번이 데이터들 간의 거리를 측정했을 때 제일 멀다면, 3번을 택한다. 그러나 이게 끝이 아니고 하나의 기저를 찾는다고 하여도 끝이 아니다. 왜 그럴까? x 값이 있으니 y값이 있어야 한다. x 값을 기준으로 90도 되는 선을 하나 더 구한다. 직선에 직각으로 대비되는 선을 긋는다. 즉, x 선으로부터 y 선을 구한 것이다. 

 

-공분산 행렬

행렬이 메트릭스이며 공분산하면, 상관계수가 나오도록 외워야한다. 유사한 개념이고 얼마나 관계가 있는지 보려 하는 것. 

 

import sklearn
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt

from sklearn.datasets import load_iris

iris = load_iris()
iris_df = pd.DataFrame(data=iris.data, columns=iris.feature_names)
iris_df['target'] = iris.target

makers = ["*", "s", "o"]

for i, marker in enumerate(makers):
  x_val = iris_df[iris_df["target"] ==i]["sepal length (cm)"]
  y_val = iris_df[iris_df["target"] ==i]["sepal width (cm)"]
  plt.scatter(x_val, y_val, marker=marker, label=iris.target_names[i])

  plt.legend()
  plt.xlabel("sepal legnth")
  plt.ylabel("sepal width")
  plt.show()

 

 

<visual studio>

Sub data_in()

Dim Arr01(10) As String

Arr01(0) = Worksheets("sheet1").Cells(4, 3).Value
Arr01(1) = Worksheets("sheet1").Cells(4, 5).Value
Arr01(2) = Worksheets("sheet1").Cells(4, 7).Value
Arr01(3) = Worksheets("sheet1").Cells(5, 3).Value
Arr01(4) = Worksheets("sheet1").Cells(5, 6).Value
Arr01(5) = Worksheets("sheet1").Cells(5, 9).Value
Arr01(6) = Worksheets("sheet1").Cells(5, 12).Value
Arr01(7) = Worksheets("sheet1").Cells(6, 3).Value
Arr01(8) = Worksheets("sheet1").Cells(6, 9).Value
Arr01(9) = Worksheets("sheet1").Cells(6, 11).Value
Arr01(10) = Worksheets("sheet1").Cells(6, 13).Value

Dim Conn_DB As ADODB.Connection
Set Conn_DB = New ADODB.Connection

Dim Conn_RS As ADODB.Recordset
Set Conn_RS = New ADODB.Recordset

CONN_STRING = "Provider=SQLOLEDB;Data Source=DESKTOP-56V8VR4\SQLEXPRESS;Initial Catalog=MNG_T;USER ID=DBMaster;PASSWORD=192837"
Conn_DB.Open CONN_STRING

IN_STRING1 = "INSERT INTO [dbo].[HR_Employee_T] ([E_ID]) values ('" & Arr01(2) & "')"
IN_STRING1 = IN_STRING1 & "('" & Aree01(2) & " ',' " & Arr01(0) & "')"
Conn_DB.Execute SQL_STRING1

Conn_DB.Close
Set Conn_DB = Nothing


End Sub

 

 

 

“(‘문자’)”

 

문자’ >> 입력된 세트

& “문자2”

 

“(”&“‘문자’”

 

Arr01은 변수

사용자가 입력한 값은 이해해야함

 

“(‘”

 

(’“& Arr01(2) & ”’)“

>>Arr01(2) 변수

 

(‘” & Arr01(2) & “’입력한 값,‘” Arr01(0)

 

-sqld 구문 오류

https://hannom.tistory.com/195

 

[MS_SQL]접속에러 Microsoft SQL Server, 오류: 18456

Microsoft SQL Server Management Studio 17에서 접속시 위와같은 에러를 뿜는 문제가 발생하였다.이번에는 바로 Alert이 떴었고 TimeOut문제가 아니다. 오류코드로 검색해보니역시 MS답게 관련 문서가 잘 정리

hannom.tistory.com

 

 

-자동화 오류

https://learn.microsoft.com/ko-kr/office/vba/language/reference/user-interface-help/automation-error-error-440?f1url=%3FappId%3DDev11IDEF1%26l%3Dko-KR%26k%3Dk(vblr6.chm1000440)%3Bk(TargetFrameworkMoniker-Office.Version%3Dv16)%26rd%3Dtrue

 

Automation error (Error 440)

Office VBA reference topic

learn.microsoft.com

 

-액셀 메크로를 실행할 수 없습니다.

https://www.oppadu.com/%EC%97%91%EC%85%80-%EB%A7%A4%ED%81%AC%EB%A1%9C%EB%A5%BC-%EC%8B%A4%ED%96%89%ED%95%A0-%EC%88%98-%EC%97%86%EC%8A%B5%EB%8B%88%EB%8B%A4/

 

엑셀 매크로를 실행할 수 없습니다 - 상황별 오류 해결법 - 오빠두엑셀

엑셀 매크로를 실행할 수 없습니다 - 상황별 오류 해결법 엑셀 매크로를 실행할 수 없습니다 오류 해결 방법 "엑셀 매크로를 실행할 수 없습니다" 오류, 어떻게 해결하나요? 회사에서 매크로가

www.oppadu.com

 

 

Sub data_in()

    ' 배열 선언
    Dim nvar(10) As String
    Dim Arr01(10) As String
    Dim Arr02(8) As String
    Dim Arr03(11) As String

    ' 변수 초기화
    Arr01_J1 = 3
    Arr01_J2 = 3
    Arr01_J3 = 3
    
    Arr02_J1 = 2
    Arr02_J2 = 2
    Arr02_J3 = 2
    
    ' 기본 정보 시작
    For i = 0 To 10
    
        If i < 3 Then
            Arr01(i) = Worksheets("sheet1").Cells(4, Arr01_J1).Value
            Arr01_J1 = Arr01_J1 + 2
        ElseIf i < 7 Then
            Arr01(i) = Worksheets("sheet1").Cells(5, Arr01_J2).Value
            Arr01_J2 = Arr01_J2 + 3
        Else
            Arr01(i) = Worksheets("sheet1").Cells(6, Arr01_J3).Value
            Arr01_J3 = Arr01_J3 + 6
            If Arr01_J3 > 8 Then
                Arr01_J3 = Arr01_J3 + 2
            End If
        End If
    
    Next i
    ' 기본 정보 끝

    ' 학력 정보 시작
    Arr03(0) = Worksheets("sheet1").Cells(16, 2).Value
    Arr03(1) = Worksheets("sheet1").Cells(16, 4).Value
    Arr03(2) = Worksheets("sheet1").Cells(16, 7).Value
    Arr03(3) = Worksheets("sheet1").Cells(16, 8).Value
    Arr03(4) = Worksheets("sheet1").Cells(17, 2).Value
    Arr03(5) = Worksheets("sheet1").Cells(17, 4).Value
    Arr03(6) = Worksheets("sheet1").Cells(17, 7).Value
    Arr03(7) = Worksheets("sheet1").Cells(17, 8).Value
    Arr03(8) = Worksheets("sheet1").Cells(18, 2).Value
    Arr03(9) = Worksheets("sheet1").Cells(18, 4).Value
    Arr03(10) = Worksheets("sheet1").Cells(18, 7).Value
    Arr03(11) = Worksheets("sheet1").Cells(18, 8).Value

    For j = 0 To 11 ' 중복된 i 대신 j 사용
        Worksheets("sheet1").Cells(j + 2, 17).Value = Arr03(j)
    Next j
    ' 학력 정보 끝

    ' 데이터베이스 연결
    Dim Conn_DB As ADODB.Connection
    Set Conn_DB = New ADODB.Connection

    CONN_STRING = "Provider=SQLOLEDB;Data Source=DESKTOP-56V8VR4\SQLEXPRESS;Initial Catalog=MNG_T;USER ID=DBMaster;PASSWORD=192837"
    Conn_DB.Open CONN_STRING
    SQL_STRING1 = "SELECT * FROM HR_Career"
    Conn_RS.Open SQL_STRING1, Conn_DB, 1



    Conn_DB.Close
    Set Conn_DB = Nothing

End Sub