반응형

 

 

 

 

머신러닝이란?

explicit programming : 개발자가 짠대로 하는 프로그래밍

explicit programming의 한계 : 너무 많은 규칙이 있어 개발자가 다 규칙을 설정할 수 없다.

-> 기계가 데이터를 입력받아 스스로 학습할 수 있게 하는 방법이 'machine learning'

 

 

학습하는 방법에 따라 Supervise Learning / Unsupervised Learning

Supervise Learning : label이 있는 데이터로 (training set) 학습시키는 것

ex) 이 사진은 고양이이다, 이 사진은 개이다.

Unsupervised Learning : label이 없는 데이터로 학습시키는 것

ex) 뉴스나 글 분류에 있어서 label을 주지 않고 기계가 알아서 학습하는 것이 unsupervise learning 이다.

 

 

 

Type or supervised learning

1. Regression : label이 큰 범위

2. Binary Classification : label이 참 또는 거짓

3. multi-label classification : label이 여러 개

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

'AI > Machine Learning' 카테고리의 다른 글

Linear Regression  (0) 2021.01.25
How to learn Machine Learning  (0) 2021.01.19
RNN-basic  (0) 2021.01.15
Simple Linear Regression  (0) 2021.01.15
텐서플로우란?  (0) 2021.01.14
반응형

 

 

 

www.acmicpc.net/problem/9184

 

9184번: 신나는 함수 실행

입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다. 입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다.

www.acmicpc.net

 

 

 

 

코드

MAX_NUM = 51
dp = [[[0 for i in range(MAX_NUM)] for i in range(MAX_NUM)] for i in range(MAX_NUM)]

def w(a, b, c):

    if a <= 0 or b <= 0 or c <= 0:
        return 1


    if dp[a][b][c]:
        return dp[a][b][c]


    if a > 20 or b > 20 or c > 20:
        return w(20,20,20)

    elif a < b and b < c:
        dp[a][b][c] = w(a, b, c-1) + w(a, b-1, c-1) - w(a, b-1, c)
        return dp[a][b][c]
    else:
        dp[a][b][c] = w(a-1, b, c) + w(a-1, b-1, c) + w(a-1, b, c-1) - w(a-1, b-1, c-1)
        return dp[a][b][c]


while True:
    x, y, z = map(int, input().split())
    if x == -1 and y == -1 and z == -1:
        break

    print("w(%d, %d, %d) = %d" %(x, y, z, w(x, y, z)))

 

 

 

 

문제에서 알려준 함수대로 구현을 먼저하되,

메모이제이션을 이용해서 이미 구한 적 있는 값은 다음 과정을 거치지 않고 바로 반환할 수 있도록 한다.

 

 

새로 알게된 문법 )

3차원 리스트 초기화하기 !

MAX_NUM = 51
dp = [[[0 for i in range(MAX_NUM)] for i in range(MAX_NUM)] for i in range(MAX_NUM)]

 

MAX_NUM을 5로 한다면,

이렇게 된다고 생각하면 된다.

 

 

 

 

 

반응형
반응형

 

 

 

1. Zip을 이용하여 Vector 계산하기

u = [2,2]
v = [2,3]
z = [3,5]

print("vector의 덧셈")
result = [sum(t) for t in zip(u,v,z)]
print(result)

print("vector의 뺄셈")
result = [x-y-z for x,y,z in zip(u,v,z)]
print(result)
vector의 덧셈
[7, 10]
vector의 뺄셈
[-3, -6]

 

 

 

 

2. Scalar-Vector product

상수(Scalar)와 리스트(Vector)를 한번에 곱하는 방법

print("scalar-vector product")
u = [1,2,3]
v = [4,4,4]
alpha = 2

result = [alpha * sum(z) for z in zip(u, v)]
print(result)
scalar-vector product
[10, 12, 14]

 

 

 

3. Matrix addition

** zip으로 matrix를 풀면 ([3,6]) 이런 식으로 튜플로 묶이기 때문에, asterisk(*)로 풀어줘야 한다.

matrix_a  = [[3, 6], [4, 5]]
matrix_a  = [[5, 8], [3, 7]]

result = [[sum(row) for row in zip(*t)] for t in zip(matrix_a, matrix_b)]

print(result)
Matrix addition
[[8, 14], [7, 12]]

 

 

 

4. Scalar-Matrix Product

matrix_a = [[3, 6], [4, 5]]
alpha = 4
result = [[alpha * element for element in t] for t in matrix_a]

print(result)
Scalar-Matrix Product
[[12, 24], [16, 20]]

 

 

 

5. Matrix Transpose

print("Matrix Transpose")
matrix_a = [[1, 2, 3], [4, 5, 6]]
result = [[element for element in t] for t in zip(*matrix_a)]

print(result)
Matrix Transpose
[[1, 4], [2, 5], [3, 6]]

 

 

 

6. Matrix Product

print("Matrix Product")
matrix_a = [[1, 1, 2], [2, 1, 1]]
matrix_b = [[1, 1], [2, 1], [1, 3]]
result = [[sum(a * b for a, b in zip(row_a, column_b))
          for column_b in zip(*matrix_b)] for row_a in matrix_a]
print(result)
Matrix Product
[[5, 8], [5, 6]]

 

** asterisk를 하고 zip 을 하면 컬럼을 가져올 수 있다 !!

 

 

 

 

 

 

반응형

'AI > Numpy & Pandas' 카테고리의 다른 글

Data preprocessing  (0) 2021.01.22
판다스 기본  (0) 2021.01.20
선형대수 기초  (0) 2021.01.12
반응형

 

 

 

Scala : 하나의 숫자

Vector : 순서가 정해져있는 배열  => 순서가 없는 배열은 Set이라고 한다.

Matrix : 행렬(row, column), two dimensional array

 

 

1. Vector 

Row Vector와 Column Vector 가 있는데, Column Vector를 기본으로 생각한다. Row Vector는 Column Vector를 Transpose하여 나타낸다. 

Column Vector를 매트릭스로 나타내면, R(nx1)

Row Vector를 매트릭스로 나타내면 R(1xn)

 

 

 

 

2. Matrix

1) Square Matrix  (rows = columns)

ex) B = [1 5] [2 3]

 

2) Rectangular Matrix  (rows != columns)

ex) A = [1 6] [3 4][5 2]

 

3) Transpose Matrix

ex) AT = [1 3 5] [6 4 2]

 

4) Ai,j

ex) A2,1 =3

 

5) Ai, : i행의 모든 값

ex) A1, = [1 6]

 

6) A,j : j열의 모든 값

ex) A,2 = [6 4 2]

 

 

 

 

 

 

 

 

 

3. Matrix의 계산

1) 더하기 빼기

행과 열의 개수가 모두 같은 상태에서 그대로 더하고, 그대로 빼주면 된다.

 

2) 곱하기

A3,2 X B2,5 이렇게 두 행렬을 곱할 때,

가운데 2가 동일해야 곱할 수 있다.

 

 

4. Matrix 계산의 성질

1) (AB)^T = B^T x A^T

 

2) AB != BA

같지 않다!

 

 

 

 

반응형

'AI > Numpy & Pandas' 카테고리의 다른 글

Data preprocessing  (0) 2021.01.22
판다스 기본  (0) 2021.01.20
선형대수 파이썬으로 구현해보기 !  (0) 2021.01.14
반응형

 

 

 

 

 

Ordered Dict

일반적인 Dictionary는 입력한대로 순서대로 저장하지 않는다.

Ordered Dict를 사용하면 입력한대로 순서대로 저장해준다.

 

 

 

Default Dict

딕셔너리에서 기본 값을 설정해주어서 키 값만 넣어주어도 밸류 값을 기본 값으로 설정해준다.

 

 

 

Counter

한 단어 안에 알파벳별로 몇 개가 들어있는지 조회해준다.

 

 

 

 

 

반응형

'AI > python' 카테고리의 다른 글

python 문자열 부분 일치, 앞부분 일치, 뒤부분 일치  (0) 2021.06.15
Pythonic Code - Set()  (0) 2021.01.15
Pythonic Code - asterisk  (0) 2021.01.12
Pythonic Code - Lambda & MapReduce  (0) 2021.01.11
Pythonic Code - Enumerate, Zip  (0) 2021.01.10
반응형

 

 

 

 

 

www.acmicpc.net/problem/4949

 

4949번: 균형잡힌 세상

하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마

www.acmicpc.net

 

 

 

 

코드

from collections import deque
deq = deque()

while True:

    s = input()
    flag = 1

    if s[0] == '.':
        break

    for i in range(len(s)):

        if s[i] == '[' or s[i] == '(':
            deq.append(s[i])
        elif s[i] == ']':
            if len(deq) != 0 and deq[len(deq)-1] == '[':
                deq.pop()
            else:
                flag = 0
                break
        elif s[i] == ')':
            if len(deq) != 0 and deq[len(deq)-1] == '(':
                deq.pop()
            else:
                flag = 0
                break

    if flag == 1 and len(deq) == 0:
        print("yes")
    else:
        print("no")

    deq.clear()

 

 

새로 알게된 문법 )

deq.clear() 하면 덱 안의 값이 모두 삭제된다.

 

 

반응형

+ Recent posts