파이썬 이것저것 77

[Python] 다중, 다항회귀분석

데이터가 조금 더 복잡하다면? 각 매체가 얼마나 효율적인지 알아내 보자 FB에 30만원, TV에 100만원, 신문에 50만원의 광고비를 집행했을 때 예상 판매량은 얼마인가? N: 데이터의 개수 FB TV 신문 판매량 X: “Input” 데이터/Feature (광고료) - X1: FB 광고료 - X2: TV 광고료 - X3: 신문 광고료 Y: “Output” 해답/응답 (판매량) (x1(i), x2(i), x3(i), y(i)): i번째 데이터 단순선형회귀분석과 동일 완벽한 예측은 불가능 각 데이터 (x1(i), x2(i), x3(i), y(i)) 의 실제 값과 모델이 예측하는 값을 최소한으로 만들어줌 이 차이를 최소로 하는 β0, β1, β2, β3 을 구하도록 함 다중 회귀 분석 다중 회귀 분석(Mul..

[Python] 머신러닝 단순선형회귀분석

회귀분석이란? 키와 몸무게 데이터가 있다면, 대략 이정도의 몸무게가 될 것이다라는 것을 알 수 있지만, 컴퓨터가 이 데이터를 가지고 얼마나 정확하게 알 수 있을것인가를 봐야함 대학 운동부 학생들의 신체검사 자료 신입생 A가 들어왔다.(키는 175cm이다) 예상 몸무게는 얼마인가? 대학 운동부 학생들의 신체검사 자료 신입생 A가 들어왔다.(키는 175cm이다) 예상 몸무게는 얼마인가? 회귀분석법 데이터를 잘 설명하는 선을 찾는 것이며 제품이 판매 됬을 때, 관찰 할 수 없는 외부변인이 많다는 것이고 광고료에 대해서만 정확하게 알아 낼 수 있는지 분석을 실시함, 넓은 범위에서 판매량을 예측할 수 있으나, 기존의 데이터를 가지고 판매량을 예측할 수 있는게 회귀분석법임 데이터: 광고 분석과 판매량 목표: FB ..

[Python] 기초수학 코드구현

계차수열 # 두 항의 차로 이루어진 수열 # 어떤 수열이 인접하는 또다른 수열 # 계차수열을 이용하여 구할 수 있음 # n번째 항의 값을 출력하는 프로그램 inputAN1 = int(input("a1 입력: ")) inputAN = int(input("an 입력: ")) inputBN1 = int(input("b1 입력: ")) inputBD = int(input("bn 공차 입력: ")) valueAN = 0 valueBN = 0 n = 1 while n inputN): searchN = i flag = False break print() n += 1 print("{} 항 : {}".format(inputN, searchN)) inputN = int(input("n항 입력:")) flag = True ..

[Python] 딥러닝 ResNet 구현하기

ResNet 구현하기 ResNet에 처음 소개된 Residual Connection은 모델 내의 지름길을 새로 만든다고도 하여 Skip Connection이라고도 불리며, 레이어 개수가 매우 많은 경우에 발생할 수 있는 기울기 소실(Vanishing Gradient) 문제를 해결하고자 등장 import tensorflow as tf from tensorflow.keras import layers, Model, Sequential class ResidualBlock(Model): def __init__(self, num_kernels, kernel_size): super(ResidualBlock, self).__init__() # TODO: [지시사항 1번] 2개의 Conv2D Layer를 추가 self...

[Python] 딥러닝 CNN(VGG16 모델 구현하기)

VGGNet은 ILSVRC 2014년도에 2위를 한 모델로 모델의 깊이에 따른 변화를 비교할 수 있게 만든 모델 이전까지의 모델들은 첫 번째 Conv Layer에서는 입력 영상의 축소를 위해 11 x 11, 7 x 7의 filter 를 사용한 것에 비해 VGGNet 은 Convolution Layer 에 3 x 3 filter 를 사용한 것이 특징 import tensorflow as tf from tensorflow import keras def VGG16(): # Sequential 모델 선언 model = keras.Sequential() # TODO : 지시사항을 잘 보고 VGG16 Net을 완성해보세요. # 첫 번째 Conv Block # 입력 Shape는 ImageNet 데이터 세트의 크기와 ..

[Python] 딥러닝 CNN 연산

Fully-connected Layer와 이미지 데이터 FC Layer는 1차원 데이터를 요구 • 이미지를 단순하게 1차원으로 바꾸면 2차원 상에서 가지는 정보를 포기해야 함 - 이미지 내 사물 간의 거리 관계 등 - 색의 변화 → 특히 세로로 변하는 상황 • 즉, 공간 정보(Spatial Information)가 무너짐 • 따라서 이미지 처리에 특화된 딥러닝 모델이 등장 • CNN의 대표적인 구성 요소 - Convolutional Layer - Pooling Layer - 분류기(Classifier): Fully-connected layer로 구성 Convolution 연산 CNN을 구현하는 핵심 연산 • 커널과 Convolution 연산 - 전통적인 이미지 처리 분야에서 커널(또는 필터)이란 것이 존..

[Python] Tensorflow 커스텀 데이터셋 불러오기

Tensorflow 커스텀 데이터셋 불러오기 대용량의 데이터셋은 한번에 메모리에 불러오는 것이 불가능 대용량의 데이터셋을 학습에 사용할 경우에는 해당 데이터를 사용할 때만 메모리에 불러오는 방법을 사용 tensorflow에서는 이 과정을 수행하는 함수를 제공 tensorflow에서 제공하는 ImageDataGenerator는 데이터셋을 불러오는 기능과 데이터 증강을 적용하는 기능을 제공 사전에 dataset폴더에 train과 val을 구분하여 데이터를 만들어준다. import os os.environ['TF_CPP_MIN_LOG_LEVEL'] = '2' import tensorflow as tf from tensorflow.keras.preprocessing.image import ImageDataGen..

[Python] PIL 알아보기

PIL 알아보기 1. PIL(Pillow) 소개 Python에서 자주 사용하는 이미지 처리 라이브러리는 PIL(Python Imaging Library) . 하지만 기존 PIL 라이브러리 개발은 2011년에 중단되었고, 오픈 소스였던 해당 프로젝트를 복제(fork)한 Pillow 라는 이름의 프로젝트가 현재까지 개발되고 있음 2. PIL 시작하기 먼저 Pillow는 PIP를 이용하여 설치 python3 -m pip install Pillow In [4]: pip install Pillow Requirement already satisfied: Pillow in /opt/conda/lib/python3.8/site-packages (8.0.1) Note: you may need to restart the ..

[Python] 딥러닝 순환 신경망 (RNN)

순환 신경망(RNN) 자연어 처리를 위한 딥러닝 모델 MLP 기반 신경망의 자연어 분류 방식 일반적인 뉴럴 네트워크로 학습 한다면, 단어들이 순서에 대해서 기존의 뉴럴 네트워크는 신경을 쓰지 않고 학습을 함 철수가 영희를 좋아한다. 라는 문장이 있다면, 영희가 철수를 좋아한다 이렇게 될경우 의미가 달라지게 됨 자연어 분류를 위한 순환 신경망(Recurrent Neural Network) RNN 모델은 순서를 고려해서 학습을 실시한다. RNN 단어가 들어가서 다음 단어를 예측하려고 한다. 이 다음 단어가 수업 + 이 라는 예측을 하게 하고 그 다음 단어가 예측을 할때, 수업 + 이 가 같이 들어가서 Hidden State랑 합쳐지는 방식으로 다음단어를 예측하고 다시 합쳐져서 학습 하는 방식으로 실시함 순환..

[Python] 딥러닝 자연어 처리를 위한 딥러닝

자연어 처리 Process 1. 자연어 전처리(Preprocessing) 2. 단어 표현 (WordEmbedding) 3. 모델 적용 (Modeling) 원 상태 그대로의 자연어는 전처리 과정이 필요함 자연어는 오류를 어떻게 없앨 것인가 그리고 의미랑 전혀 상관없는 단어를 어떻게 없앨지 오류를 없애는 것을 타이핑을 잘못 했거나, 오타가 있을 경우, 컴퓨터는 단어인가 라고 생각 할 수 있기 때문에 오류를 전처리 해서 없애줘야 함 문장을 나누는것을 토큰으로 나누게 됨 Noise Canceling “안녕하 세요. 반갑 스니다.” => “안녕하세요. 반갑습니다.” Tokenizing 문장을 토큰(Token)으로 나눔, 토큰은 어절, 단어 등으로 목적에 따라 다르게 정의 “딥러닝 기초 과목을 수강하고 있습니다.”..