묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험응시전략 🆕 updated 2023.11 노션 자료는 어디에서 확인할 수 있나요??
시험응시전략 🆕 updated 2023.11 노션 자료는 어디에서 확인할 수 있나요??
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
자주 활용되는 판다스 예제 quiz 3
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요quiz 3 데이터 수를 구할 때선생님께서 알려주신 len(df[cond]) 외에df[cond].shape[0] 이나 df[cond].count()[0]을 사용해도 괜찮나요??값은 동일하게 나옵니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형 질문드립니다!
안녕하세요!2유형 강의 수강 중 궁금한 점이 생겨서 질문드립니다! IQR 을 사용하여 이상치를 확인 했을 때, 이상치가 전체 행 대비 적게 있을 경우 해당 행 자체를 삭제해도 무방한가요? 스케일링 시, 이상치가 있을 경우 로버스트 스케일링을 사용하는게 좋다라고 하셨는데 이상치가 있는 컬럼에 대해서만 로버스트 스케일링으로 진행하고, 이상치가 없는 컬럼에 대해서는 MinMax 이나 Z-Score 를 사용하여 구분해서 각각 스케일링 하는게 좋은가요? 2-2. 만약 이상치가 없는 경우에도 로버스트 스케일링을 사용할 경우 다른 스케일링 방식에 비해 성능이 떨어지나요? 감사합니다~!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
공부법 질문
퇴근 후 매일 강의를 조금씩 듣고 있습니다.이제서야 작업형 1 강의 목차로 들어왔는데요!저는 강의 들으면서 pause 누르고 타이핑 해보고 저만의 암기노트를 만들면서 시간 있을 때 외우고 있습니다.지금부터 조금씩 외우는 이유는 지금 시간 들여서 강의를 들었는데 쭉쭉 넘어가다보면 (물론 타이핑은 겸하면서) 나중에 또 보면 새로울거 같아서 기억이 있을 때 까먹더라도 외우려고 하고 있긴합니다.다만, 암기를 하니 좀 속도가 더디긴 하네요 ㅠㅠ지금은 암기하지말고 한번 쭉 따라하면서 듣는게 낫나요?저는 문제 풀 때 암기가 되어있지 않으면 안풀리는데 이것은 어떻게 해결하면 될까요?캐글도 풀어야한다고 하셨는데 강의 목차 순서에 있는 것일까요?강의 목록에 있는 것들만 완벽하게 숙지하면 시험에 무리없나요? 추가 사이트 들어가서 공부할 필요 없이 이 강의로만 끝내고 싶어서요
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실기 강의자료는 어디서 볼 수 있나요?
별도 실기 강의 자료가 있을까요? 인쇄해서 보려구요!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
강의 연장 관련 문의
안녕하세요. 31일 강의가 끝나는데! 혹시 연장이 가능한가요?연장하려면 다시 이 강의를 구입해야 하는지요?ㅜ
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
랜덤포레스트 학습시 에러가 납니다.(노트북 블랭크로 연습하던중)
랜덤포레스트로 학습시킬때마다 아래와 같은 에러가 납니다. 어디를 고쳐야할까요?(RandomForest에 random_state 값을 넣어도 똑같았습니다)(모델학습 이전단계에서는 강의와 동일하게 모두 잘 실행되었습니다)아래 검증데이터 분리는 잘된것 사진 첨부했습니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2유형에서 인코딩한 범주형 변수도 스케일링할 때 넣어줘야 하나요?
안녕하세요. 스케일링에 대해서 여쭤보고 싶은게 있습니다. 스케일링을 진행할 때, 인코딩된 범주형 변수와수치형이지만 범주형 성격을 띄는 변수들도 함께 스케일링을 진행해주어야 하는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
하이퍼파라미터튜닝
random_state, max_depth, n_estimators 같은 하이퍼파라미터튜닝은 모든 회귀, 분류 모델에서 사용가능한가요?
-
미해결[초급자를 위한] AutoKeras로 배우는 머신러닝 분석
4강, 집값 예측 예재에 대한 질문입니다.
4강에서 csv 파일을 읽어서 학습/평가한 것 보다 numpy로 처리한 후 학습/평가 한 것이 더 좋은 성능이 나온 이유가 무엇일까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
테스트 사이즈와 랜덤스테이트
선생님, 실제 시험에서 테스트 사이즈와 랜덤 스테이츠를 입력 해 줘야하나요?사이즈값이나 스테이트값 작성하는 기준은 무엇인가요!?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험시 라이브러리 import관련
시험에서는 따로 라이브러리를 추가할 수 없다고 했던것 같은데... 강의에서 공부를 할때 sklearn 등 라이브러리를 불러오는 코드는 시험에서 따로 작성하면 안되지요?예시 : from sklearn.ensemble import RandomForestClassifier 예시 문장을 시험에서 작성해도 되는지 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
사후검정에서 '투키'하고 '본페로니' 둘중에 하나만 알아도 될까요?
사후검정을 진행할 때 선생님이 대표적으로 '투키' 하고 '본페로니' 두개를 많이 쓰신다고 하셨었는데.혹시 투키하고 본페로니 둘다 알아야할까요? 아니면 둘중에 하나만 외워도 될까요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시계열 데이터 관련 문의입니다.
기출문제 1번에서는 출동시간과 도착시간이 년월일시분초 다 있어서 datetime에 문제없는데혹시 출동시간 컬럼에 102030 시분초 또는 년월일만 있어도 datetime으로 변경이 가능한가요?만약 변경이 안된다면 변경하는 방법이 궁금합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
2회 기출유형(작업형1) 문제2번
문제2주어진 데이터셋(members.csv)의 앞에서부터 순서대로 80% 데이터만 활용해 'f1'컬럼 결측치를 중앙값으로 채우기 전 후의 표준편차를 구하고, 두 표준편차 차이 계산하기 (단, 표본표준편차 기준, 두 표준편차 차이는 절대값으로 계산)풀이# your code df = pd.read_csv("members.csv") # df.shape df1 = df.loc[:79] df1.isnull().sum() # print(df1.describe()) bf = 20.574853 # print(df1.head()) # print(df1.isnull().sum()) df1['f1'] = df1['f1'].fillna(df1['f1'].median()) # print(df1.isnull().sum()) # print(df1.head()) # print(df1.describe()) af = 17.010789 print(bf-af) 이런식으로 describe함수에서 나오는 값으로 풀었는데실제 시험에서도 이렇게 문제를 풀어도 상관없을까요?? 영상에서 풀이한 값과 소수점 자리가 다르더라구요..
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
pred[:,1] 완벽 구별법
실제로 시험이 나올때pred[:,1]를 무작정 쓰면 큰일날것 같습니다.어떨때는 pred[:,1]을 쓰고 어떨때는pred[:,0]을 쓰는게 맞는지 알려주시면 감사하겠습니다.단순히 분류값이 0일 확률에 대한건 pred[:,0], 1에 대한건 pred[:,1]로 보는게 맞는건가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 2번 문제에서 '결측치'가 있을 때의 처리방법
작업형 2번에서'결측치'가 있다면 그 결측치들을 삭제하고 진행시키는 게 좋을까요? 아니면 그 결측치들을 전부 0으로 채우는 게 나을까요?혹시 이렇게 그냥 아예 결측치 컬럼을 삭제하거나 0으로 채워도 40점이 나올 수 있을까요.? ㅠ
-
미해결파이썬 기초 라이브러리부터 쌓아가는 머신러닝
파일을 읽어들일 때 질문 있습니다
2분 44초 파일을 읽어들일 때 base_src 에 할당 할 때 machine_learning_data뒤에다가 바로 friend.csv을 이어서 붙이면 안되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
검증데이터 분리 질문
검증데이터를 분리할때X_tr, X_val 은 (909, 12) (161,12) 로 열이 12인데 y_tr, y_val 은 왜 열값이 안나오는지 궁금합니다.이 질문에 대한 답변을 받았는데 답변이 이해가 안가서 재질문합니다~ 이해하기 쉽게 설명이 더 추가될수 있을까요? 받은답변: 와우! 정확히 보셨어요! 거기에 만약 1이 적히면 데이터프레임이 됩니다. 모델 학습시 타겟이 데이터프레임으로 들어가면 워닝이나 에러가 발생할 수 있어요. 시리즈라서 열값이 나오지 않습니다.
-
미해결TensorFlow 2.0으로 배우는 딥러닝 입문
tf.keras.model.reset_states()
파이썬 버전이 다른지 텐서플로우 버전이 다른지 모르겠지만 자꾸 코드가 실행되지 않는 부분들이 있어 조금식 바꿔가면서 강의 듣고 있습니다. 그러던 중 Char-RNN실습에서 tf.keras.Model.reset_states()에 오류가 생겨 질문 드립니다. class exModel(tf.keras.Model): def __init__(self): super(exModel, self).__init__() self.layer = tf.keras.layers.Dense(10, activation = None, kernel_initializer = 'zeros', bias_initializer = 'zeros') def call(self, x): logits = self.layer(x) return logits My_model = exModel() My_model.reset_states()결과 :'exModel' object has no attribute 'reset_states' Tensorflow : 2.16.1Python : 3.10.13실습 파일 : train_and_sampling_v2_keras.py ==================================================================실습 코드 :# -*- coding: utf-8 -*- # Char-RNN 예제 - Keras API를 이용한 구현 # Reference : https://github.com/tensorflow/docs/blob/master/site/en/tutorials/text/text_generation.ipynb from __future__ import absolute_import, division, print_function, unicode_literals #python 2와 호완 from absl import app #Google에서 만든 API / Tensorflow와 같이 쓰이니 공부해두자 import tensorflow as tf import numpy as np import os import time # input 데이터와 input 데이터를 한글자씩 뒤로 민 target 데이터를 생성하는 utility 함수를 정의합니다. def split_input_target(chunk): input_text = chunk[:-1] target_text = chunk[1:] return input_text, target_text # 학습에 필요한 설정값들을 지정합니다. data_dir = tf.keras.utils.get_file('shakespeare.txt', 'https://storage.googleapis.com/download.tensorflow.org/data/shakespeare.txt') # shakespeare #data_dir = './data/linux/input.txt' # linux batch_size = 64 # Training : 64, Sampling : 1 ''' 기존 : [batch_size, data_dimension] 시계열 데이터 : [batch_size, sequence_len,data_dimension] ''' seq_length = 100 # Training : 100, Sampling : 1 #몇 글자를 한 시퀀스로 할 것인가 embedding_dim = 256 # Embedding 차원 hidden_size = 1024 # 히든 레이어의 노드 개수 num_epochs = 10 # 학습에 사용할 txt 파일을 읽습니다. text = open(data_dir, 'rb').read().decode(encoding='utf-8') # 학습데이터에 포함된 모든 character들을 나타내는 변수인 vocab과 # vocab에 id를 부여해 dict 형태로 만든 char2idx를 선언합니다. vocab = sorted(set(text)) # 유니크한 character vocab_size = len(vocab) print('{} unique characters'.format(vocab_size)) char2idx = {u: i for i, u in enumerate(vocab)} ''' character - index(int) mapping ''' idx2char = np.array(vocab) # 학습 데이터를 character에서 integer로 변환합니다. text_as_int = np.array([char2idx[c] for c in text]) # split_input_target 함수를 이용해서 input 데이터와 input 데이터를 한글자씩 뒤로 민 target 데이터를 생성합니다. char_dataset = tf.data.Dataset.from_tensor_slices(text_as_int) sequences = char_dataset.batch(seq_length+1, drop_remainder=True) dataset = sequences.map(split_input_target) # tf.data API를 이용해서 데이터를 섞고 batch 형태로 가져옵니다. dataset = dataset.shuffle(10000).batch(batch_size, drop_remainder=True) #================================데이터 구성=========================================== # tf.keras.Model을 이용해서 RNN 모델을 정의합니다. class RNN(tf.keras.Model): def __init__(self, batch_size): super(RNN, self).__init__() self.embedding_layer = tf.keras.layers.Embedding(vocab_size, embedding_dim) #기본 예제라 특수적으로 임베딩 차원이 더 크게 했다 #batch_input_shape=[batch_size, None] self.hidden_layer_1 = tf.keras.layers.LSTM(hidden_size, return_sequences=True, stateful=True, recurrent_initializer='glorot_uniform') self.output_layer = tf.keras.layers.Dense(vocab_size) def call(self, x): embedded_input = self.embedding_layer(x) features = self.hidden_layer_1(embedded_input) logits = self.output_layer(features) return logits # sparse cross-entropy 손실 함수를 정의합니다. def sparse_cross_entropy_loss(labels, logits): return tf.reduce_mean(tf.keras.losses.sparse_categorical_crossentropy(labels, logits, from_logits=True)) #sparse_categorical_crossentropy : one - hot encoding까지 알아서 해줌 # 최적화를 위한 Adam 옵티마이저를 정의합니다. optimizer = tf.keras.optimizers.Adam() # 최적화를 위한 function을 정의합니다. @tf.function def train_step(model, input, target): with tf.GradientTape() as tape: logits = model(input) loss = sparse_cross_entropy_loss(target, logits) grads = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(grads, model.trainable_variables)) return loss def generate_text(model, start_string): num_sampling = 4000 # 생성할 글자(Character)의 개수를 지정합니다. # start_sting을 integer 형태로 변환합니다. input_eval = [char2idx[s] for s in start_string] input_eval = tf.expand_dims(input_eval, 0) # 샘플링 결과로 생성된 string을 저장할 배열을 초기화합니다. text_generated = [] # 낮은 temperature 값은 더욱 정확한 텍스트를 생성합니다. # 높은 temperature 값은 더욱 다양한 텍스트를 생성합니다. temperature = 1.0 # 여기서 batch size = 1 입니다. model.reset_states() for i in range(num_sampling): predictions = model(input_eval) # 불필요한 batch dimension을 삭제합니다. predictions = tf.squeeze(predictions, 0) # 모델의 예측결과에 기반해서 랜덤 샘플링을 하기위해 categorical distribution을 사용합니다. predictions = predictions / temperature predicted_id = tf.random.categorical(predictions, num_samples=1)[-1,0].numpy() # 예측된 character를 다음 input으로 사용합니다. input_eval = tf.expand_dims([predicted_id], 0) # 샘플링 결과를 text_generated 배열에 추가합니다. text_generated.append(idx2char[predicted_id]) return (start_string + ''.join(text_generated)) def main(_): # Recurrent Neural Networks(RNN) 모델을 선언합니다. RNN_model = RNN(batch_size=batch_size) # 데이터 구조 파악을 위해서 예제로 임의의 하나의 배치 데이터 에측하고, 예측결과를 출력합니다. #Sanity Check : 데이터 문제 없는지 확인 for input_example_batch, target_example_batch in dataset.take(1): example_batch_predictions = RNN_model(input_example_batch) print(example_batch_predictions.shape, "# (batch_size, sequence_length, vocab_size)") # 모델 정보를 출력합니다. RNN_model.summary() # checkpoint 데이터를 저장할 경로를 지정합니다. checkpoint_dir = './training_checkpoints' checkpoint_prefix = os.path.join(checkpoint_dir, "ckpt_{epoch}") for epoch in range(num_epochs): start = time.time() # 매 반복마다 hidden state를 초기화합니다. (최초의 hidden 값은 None입니다.) hidden = RNN_model.reset_states() for (batch_n, (input, target)) in enumerate(dataset): loss = train_step(RNN_model, input, target) if batch_n % 100 == 0: template = 'Epoch {} Batch {} Loss {}' print(template.format(epoch+1, batch_n, loss)) # 5회 반복마다 파라미터를 checkpoint로 저장합니다. if (epoch + 1) % 5 == 0: RNN_model.save_weights(checkpoint_prefix.format(epoch=epoch)) print ('Epoch {} Loss {:.4f}'.format(epoch+1, loss)) print ('Time taken for 1 epoch {} sec\n'.format(time.time() - start)) RNN_model.save_weights(checkpoint_prefix.format(epoch=epoch)) print("트레이닝이 끝났습니다!") sampling_RNN_model = RNN(batch_size=1) sampling_RNN_model.load_weights(tf.train.latest_checkpoint(checkpoint_dir)) sampling_RNN_model.build(tf.TensorShape([1, None])) sampling_RNN_model.summary() # 샘플링을 시작합니다. print("샘플링을 시작합니다!") print(generate_text(sampling_RNN_model, start_string=u' ')) if __name__ == '__main__': # main 함수를 호출합니다. app.run(main)결과 :AttributeError: 'RNN' object has no attribute 'reset_states'tf.keras.layers.Embedding에 batch_input_shape에서 오류가 발생해서,https://www.tensorflow.org/api_docs/python/tf/keras/layers/Embedding 참고해서 지웠고, 다른 부분은 안 건드렸습니다.tf.keras.layers.Embedding( input_dim, output_dim, embeddings_initializer='uniform', embeddings_regularizer=None, embeddings_constraint=None, mask_zero=False, weights=None, lora_rank=None, **kwargs )