안녕하세요! 시험이 코앞으로 다가온 시점에서... 순차적으로 강의를 듣고 있는데 데이터 전처리(결측치/이상치 제거) 이후에 학습모델에 적용하기 위해 수치형 데이터들은 스케일링을, 범주형 데이터들은 인코딩을 해서 train 데이터를 만드는 것으로 이해하였습니다. 그다음 평가(예측)를 위해서 모델에 적용할때 ans = (y_test['income'] != '<=50K').astype(int) 와 같이 타겟값을 바꿔야하는 경우와 평가모델별로 predict, predict_proba 를 사용하는 경우가 정해져 있는건지 이 부분이 헷깔립니다 ㅜㅜ
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 # your code import pandas as pd df = pd.read_csv("https://raw.githubusercontent.com/lovedlim/inf/refs/heads/main/p1/members.csv") df.head(3) df = df.sort_values('views',ascending=False).head(10) df r1 = 9690.0 df.iloc[:10,-1] = r1 cond = df['age'] >=80 print(df[cond]['views'].mean()) 안녕하세요 10번째 최소값을 r1= 9690.0 으로 지정 후 df.iloc[:10.-1] = r1로 지정후 결과를 냈더니 9690.0으로 나오는데 왜그런걸까요?
안녕하세요, 예시문제 작업형 3번의 2번 문제 풀이에서 질문있습니다! 여기에서 로지스틱회귀 분석을 위해 범주형 변수 중 인코딩이 되지 않은 Gender 변수에 C(Gender)를 붙이셨더라구요 혹시 인코딩되지 않은 변수의 앞에 C를 붙이는 것이 필수로 수행되어야하는것일까요? 제가 궁금해서 C를 붙이지 않고 모델썸머리를 출력하고 값을 비교해봤는데 모든 표값이 같기는 했습니다. 만약, 필수로 C를 붙여주어야한다면 로지스틱회귀분석 뿐만아니라 분산분석(일원/이원)에도 모두 붙여주어야 할까요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 안녕하세요 헷갈리는 부분이 있어 질문드려요. 회귀분석에서 ols사용시는 ols("종속변수~독립변수1+독립변수2+독립변수3"...) 같은 형태로 사용하고 다중분산분석 ols에서는 ols("종속변수~독립변수1*독립변수2*독립변수3"...) 이렇게 사용해야하는 것이 맞을까요? 회귀분석 : +, 다중분산분석:*
안녕하세요! 강의를 듣던 도중에 의아한 부분이 있습니다. 8분 43초 부터 들은 바에 의하면 문자열 리터럴 로 생성한 문자열은 (1) Runtime Constant Pool에 저장되고, (2) 사용되는 시점에 String Contant Pool 에 복사된다. new 키워드 로 생성한 문자열 객체는 String Constant Pool 에 저장된다. (이 내용은 10분 28초 ) 위 내용을 다음 사진처럼 표현해보았습니다. 여기서 한 가지 의아한 부분이 있는데요. 문자열 리터럴과 new 키워드 로 생성한 문자열 객체 둘 다 String Contstant Pool 에 저장된다면, 동일성 비교에서 true 가 반환되지 않을까요?? 그러나 실제로는 동일성 비교를 하면 false 를 반환하게 됩니다. 제가 이해했던 바로는 문자열 리터럴은 String Constant Pool에 저장 되고, new 키워드를 통한 문자열 객체는 Heap 영역 에 저장되기 때문에 동일성 비교에서 false를 반환한다 라고 생각했습니다. String s1 = "hello"; String s2 = "hello"; String s3 = new String("hello"); s1 == s2; // true s1 == s3; // false 결론적으로 제가 궁금한 부분은.. new 키워드 로 사용한 문자열 객체는 String Constant Pool이 아닌 단순히 JVM Heap 영역 에 저장되는 것이 맞지 않는지 궁금합니다! 좋은 강의 감사합니다!! (11분 08초에 natvie 오타가 있는 것 같습니다!)
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 아래와 같이 코드를 작성하였을 때 예제에는 정상정답이 나오고, 저도 반례를 찾지 못하는데, 채점에서는 오답이라고 나옵니다. 어느부분이 오답인지, 그리고 반례가 뭐가 있을지 궁금합니다.ㅠㅠ import java.util.*; public class Main { public static class schedule implements Comparable<schedule>{ int pay = 0; int day = 0; schedule(int p,int d) { this.pay = p; this.day = d; } @Override public int compareTo(schedule o) { if(this.day == o.day) return o.pay - this.pay; else return o.day - this.day; } } public void solution(List<schedule> list) { Collections.sort(list); int answer = 0; int day = list.get(0).day; Queue<Integer> queue = new PriorityQueue<>(Collections.reverseOrder()); for(schedule s : list) { if(day == s.day) { queue.offer(s.pay); } else { if(!queue.isEmpty()) { int p = queue.poll(); answer += p; } queue.offer(s.pay); day--; } } System.out.println(answer += queue.poll()); } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); List<schedule> list = new ArrayList<>(); for(int i=0; i<n; i++) { int pay = kb.nextInt(); int day = kb.nextInt(); list.add(new schedule(pay, day)); } T.solution(list); } }
=================================== [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요, 수업을 열심히 따라가며 코드를 작성해보면서 궁금한 점이 생겨 이렇게 질문드립니다. 앞서 제네릭 부분에서 타입이레이져 방식 때문에 제네릭 타입정보는 컴파일 이후 모두 사라지고 타입변수의 상한타입으로 바뀐다고 이해하였습니다. 그래서 위 처럼 new 로 직접 타입변수 T의 인스턴스를 생성하거나 instanceof T 구문을 쓰지 못한다고 하셨습니다. 컴파일 이후에는 T에 대한 정보가 없으니까요. 그런데 리스트에서 제네릭을 사용하는 부분을 보면 LinkedList<T>처럼 제네릭 타입을 활용해 클래스를 정의하였고 내부에 new Node<T>(); 와 같은 부분이 있어 위의 언급한 내용과 상충하는 것 같아 이 경우는 왜 가능한지 의문이었습니다. 구글에서 찾기 쉽지않아 직접 T를 생성하는 것(new T(); )과 Node<T>를 생성하는 것(new Node<T>(e);)의 차이를 혼자 고민해보았습니다. T를 생성하는 것은 힙영역에 T 인스턴스를 생성하는 것인데 컴파일 이후 T에 대한 정보가 전혀 없어 T 직접생성이 불가능하지만, Node<T>의 경우 Node의 인스턴스를 생성할 때 T타입인 item이 있지만 이때 T타입의 객체를 생성하는 것이 아니라 언젠가 생성될 T객체의 참조값을 담을 변수만 선언하는 것일 뿐이고 이는 컴파일 이후 T의 정보가 없어 Object 타입으로 변수 item이 선언되더라도 후에 T타입의 객체(의 참조값)가 item에 할당될때 저절로 업캐스팅이 되어 문제없이 item변수를 사용할 수 있다고 결론내렸습니다. 이렇게 생각하면 문제없는걸까요?
데이터 전처리 강의 내용 중에 X_train 데이터와 X_test 데이터의 결측치를 동일하게 채워주라고 말씀해주셨고, X_train의 행삭제는 가능하지만 X_test의 행삭제는 하면 안된다고 말씀해주셨습니다. 이렇게 되면 X_train에서 결측치가 있다고 행삭제를 해버리면 X_test에서는 결측치가 있는 행이 그대로 남아있을텐데 X_train의 행삭제로 결측치를 해소하는 방법이 어떤 의미가 있는지 이해가 잘 되지 않아 문의드립니다.
강의에서 설명하지 않으신 내용인데요 가능한지 궁금하여 여쭈어봅니다. Conda-forge 내에 postgresql package가 있습니다. ( Postgresql | Anaconda.org ) 물론 서비스 시에는 database 서버를 따로 두는게 좋다는건 수업 때 설명으로 이해하였습니다. 그러나 실 서비스 시 postgresql를 사용할 것이라면 개발 시에 sqlite 대신 위 package를 사용하는게 만약 더 적합할까요? 배포 과정 설명 시에 로드 밸런서가 작업을 서버에 할당해준다고 설명해 주셨는데, 보아하니 각 작업을 싱글 쓰레드로 할당하는 것 처럼 보였습니다. 장고의 경우 View 단에 multithread로 작업할 내용이 있다면, 어떻게 처리해야 하나요?