질문이 2개인데요... 문제 풀이영상을 보면 sum + (input[a][b]) * di ; input[a][b]에 %10을 넣으면 뭐 때문에 순차적으로 0 , 10, 100, 1000, 00000, 100000 이렇게 되는지 이해가 안되고, 2번째는 di가 1부터 시작을 하고 di*2면 2,4,6,8,10 이렇게 커지는거 아닌가요? 그렇다면 2의2승 2의3승 2의4승 2의5승 이렇게 커지지 않으니까 계산이 안되는 것 같은데 ㅠ.. 좀 어렵네요
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 3-6. 쿼리플랜이란? 여기까지 이해하신 내용은 무엇인가요? 옵티마이저가 스토리지 엔진으로부터 가장 효율적으로 데이터를 가져오기 위해 쿼리플랜을 작성한다는 것을 이해했습니다. 2. 어려움을 겪는 부분 어떤 개념이 헷갈리시나요? 이때 인덱스를 참고해서 데이터를 가져온다면 이 인덱스는 메모리에 올라와 있는 상태인가요?? 아니면 디스크에 있는 인덱스를 확인하고 디스크에서 데이터를 가져오는 건가요? 데이터를 가져오는 전체적인 흐름이 궁금합니다! 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 에러가 발생했다면 어떤 에러인가요? 현재 작성하신 코드를 공유해주세요 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!
안녕하세요! 강의 너무 잘 들었습니다. 덕분에 데이터분석 학습 과정에 대한 로드맵을 설정할 수 있었습니다. 다름 아니라 독학으로 데이터분석 취업하기 파트에 질문이 있어 글 남겼는데요, 책을 통한 학습을 제시해주셨는데 책 대신 강의 (예를들면 인프런의 강의들) 로 교체해도 무방한지 아니면 책으로 하는게 더 좋을지 강의자님의 고견 구하고자 합니다. 저의 백그라운드 및 목적 및 목표 설명드리자면 비전공자로 현재 데이터분석 부트 캠프를 진행중이며 부트캠프 수업 과정과는 별개로 스스로의 커리큘럼을 추천해주신 강의 커리큘럼을 참고해서 진행하려고 합니다. 목적은 일련의 학습과정을 통해 포트폴리오를 작성할 만한 실력을 쌓는 것 이며, 이에 도달하는 과정을 최대 6개월 가능하면 3개월 이내로 줄이는 것이 목표 입니다.
# your code import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/main/p1/members.csv") #1 #print(df.shape) df = df.dropna(subset=['views']) #print(df.shape) #2 df['f3'] = df['f3'].fillna(0) df['f3'] = df['f3'].replace('silver',1) df['f3'] = df['f3'].replace('gold',2) df['f3'] = df['f3'].replace('vip',3) print(int(df['f3'].sum())) 이렇게 작성 후 실행하면 결과가 밑에 처럼 나옵니다. 133 <ipython-input-57-2ecc61ea0b50>:14: FutureWarning: Downcasting behavior in `replace` is deprecated and will be removed in a future version. To retain the old behavior, explicitly call `result.infer_objects(copy=False)`. To opt-in to the future behavior, set `pd.set_option('future.no_silent_downcasting', True)` df['f3'] = df['f3'].replace('vip',3) 문제 3번에서 두번째 점과 관련된 질문입니다. 강의에서 알려주신 넘파이를 꼭 사용해야 하나요? 이전 강의에서 넘파이에 대한 내용이 따로 언급이 없으셔서 혼자 문제 풀어볼 때 넘파이 사용하지 않고 풀어본 것인데.. 깔끔하게 133만 나오지 않아서요ㅜㅜ
안녕하세요 :) 현재 문제를 풀었을 땐, sklearn.metrics 에서 문제에서 주어진 모든 평가지표를 제공하고 있는데 시험 때도 동일하게 사용하면 될까요? from sklearn.metrics import r2_score, mean_absolute_error, mean_squared_error, root_mean_squared_error, root_mean_squared_log_error, mean_absolute_percentage_error lightGBM 모델을 사용하면 RMSLE에 대해 마이너스 값에 대한 에러가 발생하는데, 이 경우 해당 모델을 사용하지 않는 게 좋을까요? 문제에 제시된 모든 평가지표들에 대해서 에러가 안 떠야 채점 받을 때 불이익이 없는 건지 궁금합니다..! r-squared 값이 0.18 로 굉장히 작은 편인데.. 결과가 이럴 수도 있나요? 보니까 수업에서 배우지 않은 모델들도 굉장히 많은데 (ex. 릿지, 라쏘, XGBoost) , 분류/회귀 모두 '랜덤포레스트, lightGBM' 모델만 사용해서 문제를 풀어도 괜찮을까요? (여유가 되면 XGBoost 까지)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 개인프로젝트에서 운영 및 로컬DB는 mysql을 사용하고 유저 테이블 이름을 user 라고 하였고, User.java 엔티티 클래스를 만들었습니다. 테스트DB는 h2 인메모리db를 사용하여 진행했는데, h2에서 user 는 예약어이기 때문에 테스트 도중 sql구문이 맞지 않아 실패했다고 합니다. Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "insert into [*]user (login_id,password,user_id) values (?,?,default)"; expected "identifier"; SQL statement: 위 문제를 해결하기 위해 구글링해보았는데 mysql에서 테이블 명을 바꾸고 자바 코드의 User 이름들도 바꾼다. User.java 엔티티클래스에 @Table(name = "\"user\"") 를 추가하여 sql 구문이 생성될때 "user" 로 생성되게 하여 H2의 예약어 user를 피한다. 테스트 db를 mysql로 설정한다. 이런 방법들을 찾았습니다. 일단 추가적인 사이드 이펙트가 발생하지 않는 1번으로 했는데, 만약 김영한 선생님이라면 이 방법들중 어떤 방법을 사용할지, 아니면 또 다른 방법이 있는지 궁금합니다.
안녕하세요 :) '문제 2-2'에서 '문제 2-1'에 적합한 모델의 결정계수를 구하라고 돼있는데, 다중회귀분석은 수정결정계수를 봐야 하지 않나요? 다른 분의 같은 질문에 대한 답변을 보니까 '적합한'을 '작업한'으로 이해하면 된다고 하셨는데 '기출 7회 - 작업형3 - 문제 2-2'에서는 다중회귀분석의 적합한 결정계수를 구하는 건 수정결정계수를 구해야 한다고 하셨거든요. '적합한 모델'이든 '적합한 결정계수'든 '적합한'의 위치에 상관 없이 다중회귀분석의 결정계수는 수정결정계수를 봐야 하지 않나요?!
트랜잭션도 @Transactional을 사용하면 일종의 aop로 작동하지 않습니까? @Transactional은 그러면 우선순위가 어느정도인지 궁금합니다. 그리고 커스텀aop를 적용할때 트랜잭션보다 먼저 적용해야하는 건지도 궁금합니다. 그리고 @Repository를 사용하면 sql 체크 예외를 DataAccess 언체크 예외로 바꿔주는 aop가 있다는데, 그러면 @Repository가 @Transactional보다 우선순위가 낮아야지 언체크 예외로 변한 예외를 보고 트랜잭션이 롤백을 할텐데, 그러면 Repository는 무조건 Transactional 보다 우선순위가 낮게 만들어진건지도 궁금합니다.
섹션 11-9 JPQL 함수에서, 사용자 정의 함수(group_concat) 구현 시 Hibernate(6.4.2.Final)버전을 사용할 때 가능한 방법 공유드립니다. 강의에서 MyH2Dialect 클래스 구현하는 대신, FunctionContributor를 구현 public class MyH2FunctionContributor implements FunctionContributor { @Override public void contributeFunctions(FunctionContributions fc) { TypeConfiguration typeConfig = fc.getTypeConfiguration(); SqmFunctionRegistry registry = fc.getFunctionRegistry(); // ✅ 문자열 반환 타입을 직접 조회 BasicType<?> stringType = typeConfig.getBasicTypeRegistry().getRegisteredType("string"); // ✅ 사용자 정의 함수 등록 registry.registerPattern( "group_concat", "group_concat(?1)", stringType ); } } 서비스 등록 (META-INF/services/org.hibernate.boot.model.FunctionContributor) jpql.MyH2FunctionContributor 예시 쿼리 Team team = new Team(); team.setName("teamA"); em.persist(team); Member member = new Member(); member.setUsername("관리자"); member.setAge(10); member.setType(MemberType.ADMIN); Member member2 = new Member(); member2.setUsername("사용자2"); member2.setAge(10); member2.setType(MemberType.USER); member.changeTeam(team); em.persist(member); em.persist(member2); em.flush(); em.clear(); String query = "select group_concat(m.username) from Member m"; List<String> result = em.createQuery(query, String.class).getResultList(); for (String s : result) { System.out.println("s = " + s); } 결과 쿼리 Hibernate: /* select group_concat(m.username) from Member m */ select group_concat(m1_0.username) from Member m1_0 s = 관리자,사용자2
강의를 듣기전에 혼자 풀어보고 그러고 있는데 저는 아래와 같이 코드를 짜서 풀었는데 일단 답은 나오는데 이런식으로 앞으로 풀면 나중에 문제를 헤쳐나가기에 어느부분이 부족할까요 정말 단순하게 생각하고 짜본 코드입니다. ㅜ import pandas as pd df=pd.read_csv("data6-1-2.csv") df['학생전체']=df['1학년']+df['2학년']+df['3학년']+df['4학년']+df['5학년']+df['6학년'] #학생전체/교사수(교사한명당) df['교사한명당']=df['학생전체']/df['교사수'] df.sort_values('교사한명당',ascending=False) #re=df.groupby("학교명")["교사수"].sum() #re.sort_values()
위의 내용과 같이 언제, 어떻게 만료 시킬 지에 대한 만료 방식을 cache eviction이라고 해주셨는데 검색해보니까 내용 상의 차이가 있다는 것을 알게 됐습니다. TTL, TTI와 같은 특정 시간, 점유 시간에 대해 발동되어 cache expiration으로 정의가 됐습니다. 반면 cache eviction은 메모리 공간이 부족한 경우 발동되어 LRU, LFU, FIFO 등으로 구분됐습니다. 결국 둘 다 캐시 삭제 기법이긴 하나, 트리거 조건에 차이가 있었습니다. 면접에서 eviction 관련 질문을 받는다면 둘을 혼용해도 무방할까요?