안녕하세요 강의 정말 잘 듣고 있습니다. 궁금한게 생겨서 질문 드립니다. 1번. PCA 할 때 타겟 변수 포함 여부 380페이지에서 아래와 같은 내용이 있는데 from sklearn.preprocessing import StandardScaler iris_scaled = StandardScaler().fit_transform(irisDF) from sklearn.decomposition import PCA pca = PCA(n_components=2) pca.fit(iris_scaled) iris_pca = pca.transform(iris_scaled) 여기서는 예시를 보여주시려고 target도 포함 하신 건가요? 타겟을 빼면 [0.88 0.88 0.88] 이렇게 나옵니다...! 실무에서 적용할 때도 일반적으로 target데이터를 포함하는 건가요? 2번. 책에는 서포트벡터머신이 없지만...트리기반 모델과 차이가 무엇인지 궁금합니다. 트리기반 모델을 설명해주셔서 사용하려고 하는데 왜 SVM같은 모델을 쓰지 않느냐고 질문을 받으면.... 트리는 이해하기 쉽고 설명하기 좋다 라는 것 말고 어떤 차이나 장단점이 있는지 궁금합니다....! 3번. train_test_split과 cross_val_score 사용 기준이 궁금합니다. 이전에 다른께 답변 달아주신 내용을 보고 아래와 같이 이해하고 있는데 실무에서 저렇게 사용하는게 맞는지 궁금합니다...! 1. 전체 데이터를 train과 test로 나누고 2. train에 cross_val_score를 적용 3. 최종적으로 test로 확인한다 감사합니다!
대략적 엔티티 구조 public class Level { ... @OneToMany(mappedBy = "level", cascade = CascadeType.ALL) private List<LevelCreator> levelCreators = new ArrayList<>(); } public class LevelCreator { ... @ManyToOne(fetch = LAZY) @JoinColumn(name = "level_id") @NotNull private Level level; } 위와같이 Level과 LevelCreator가 1:N으로 설계된 상태에서 QueryDSL을 사용하여 Level을 levelCreators가 전부 채워진 상태로 cartesian product와 n + 1 문제 없이 fetch하는 방법이 무엇인가요? 현재의 경우는 cartesian product가 발생하더라도 단순히 1개의 쿼리로 처리하는 것이 더 효율적일 수 있다고 생각하고 있습니다만 추후 1:N을 2개 이상 fetch join해야할 경우가 나왔을 때 이를 풀어나가기 위해 질문합니다. Dirty Checking을 사용해 자동으로 업데이트를 수행하기 위해 Dto등을 사용하지 않아 Projection사용이 곤란한 상태입니다. 만약 Projection을 사용하여서 cartesian product와 n + 1을 전부 피하면서 Dirty Checking도 가능한 방법이 있다면 알려주시면 감사하겠습니다. 현재 시도해본 것. 1. queryFactory.selectFrom(level).fetch(); // n+1 2. queryFactory.selectFrom(level) .join(level.levelCreators).fetchJoin().fetch(); // cartesian product 3. List<Level> levelList = queryFactory.selectFrom(level).fetch(); Map<Long, List<LevelCreator>> levelCreatorMap = queryFactory.selectFrom(levelCreator) .innerJoin(levelCreator.level, level) .fetchJoin().fetch().stream() .collect(Collectors.groupingBy(lc -> lc.getLevel().getId())); levelList.forEach(levelEntity -> { levelEntity.getLevelCreators().clear(); List<LevelCreator> levelCreatorList = levelCreatorMap.get(levelEntity.getId()); if (levelCreatorList != null) levelEntity.getLevelCreators().addAll(levelCreatorList); }); // n + 1 해결방법을 찾았습니다. Test환경에서 따로 application파일을 생성해야 할 경우 해당 파일에도 default_batch_fetch_size를 설정해주어야 했습니다. List<Level> results = queryFactory.selectFrom(level) .fetch(); results.stream().map(Level::getLevelCreators) .forEach(Hibernate::initialize); return results; 또한 해당 코드를 사용해 Hibernate initialize를 호출함으로써 batch size를 활용한 n+1문제 해결이 가능했습니다. 참고함 : https://blog.leocat.kr/notes/2020/01/13/querydsl-duplication-problem-on-fetchjoin-with-onetomany
안녕하세요 영한님! 강의가 참 유익합니다 감사합니다. 강의를 다 마치고 개인 프로젝트를 만들어 보고 있는데, 궁금한 것이 생겨서 질문 올립니다. Album이라는 도메인이 여러개의 Theme를 가질 수 있습니다. 이 Theme는 enum으로 {sad, happy, interresting..} 이런 식으로 미리 정해두고, 사용자는 자신의 Album에 맞는 Theme를 최대 5개를 선택하여 저장할 수 있습니다. 생각나는 방법은 다음의 2가지입니다. Album에 String필드로 구분자를 이용해 저장하는 방법. ex) sad%happy%interresting Album에 값타입 컬렉션으로 Set<Theme>을 넣는 방법. Theme는 enum. 저는 테마로 검색도 가능하도록 하고싶습니다. 검색 조건에 여러 Theme를 지정하여 해당 Theme를 모두 가진 Album만 조회하고 싶습니다. 두 방법 모두 제 생각엔 가능할 것으로 보이는데, 제가 궁금한 것은 무엇이 합리적인방법인지, 만약 흑백으로 가려지지 않는다면 장단점이 무엇인지 알 고 싶습니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
옆으로 발사할때만 화살을 0.5만큼 위로 올리려고 하는데 CellPos를 Vec3Int로 설정해서 정수밖에 설정이 안되네요 ArrowController의 Init에서 transform.position 설정을 해도 안되고.. Instantiate에서 ac.CellPos를 바꾸려 하니 Vector3Int에서 걸리고... 혹시 이것에 관해서 어떻게 해야하는지 정답은 아니고 조언정도를 좀 구할 수 있을까요?
안녕하세요. 강사님 이번 파트를 들으면서 웹을 하나 만들어보았습니다. blazor 서버 웹을 통해서 약간 인터넷 쇼핑 비슷하게 구성해보았습니다. 그래서 이 사이트를 통해서 물건을 팔고 싶다는 생각을 해보게 되었습니다. 그러려면 모든 컴퓨터에서 제가 만든 blazor 웹의 주소를 쳐서 들어올 수 있도록 해야 하는데 그것은 어떻게 하는 건가요? 질문이 너무 막연하다고 생각하지만 너무 궁금합니다. 이것을 실제 네이버나 구글처럼 사람들이 컴퓨터를 통해서 들어오려면 어떻게 해야 하죠?
foreach(AudioSource audio in _audioSources) { audio.Stop(); audio.clip = null; } _audioClips.Clear(); 이 부분에서 강의 코드에선 stop 함수가 clip =null 보다 아래 있던데 Stop이 clip을 멈추는 거로 아는데 clip을 먼저 초기화해도 문제가 발생하지 않네요. audiosource 내부적으로 재생중인 clip을 위에서 지정한 clip의 메모리 외에 별도의 공간에 따로 저장하고 있는 거로 생각해도 될까요?