train = pd.DataFrame({ '과일': ['사과', '배', '포도'], '색상': ['빨강', '노랑', '보라'], '가격': [5000, 7000, 10000] }) test = pd.DataFrame({ '과일': ['딸기', '배', '포도'], '색상': ['빨강', '노랑', '보라'], '가격': [15000, 7000, 10000] }) 이 상태에서, Label Encoding을 진행할 경우 ValueError : y contains previously unseen labels: '딸기' 라는 오류 문구가 뜹니다. 선생님께서는 이렇게, train과 test의 카테고리가 다를 경우, train과 test의 데이터를 합친 이후, Label Encoding을 진행하고, 그 후 분리하라고 강의에서 설명하셨습니다. 하지만 해당 방법을 시험에서 적용하지 못할 경우, 그 대안으로, 차라리 train과 test의 과일 컬럼을 아이에 삭제하고 수행해도, 문제 풀이에는 큰 지장이 없을까요? roc_auc_score, accuracy, 등의 평가지표가 조금 낮게 나오고, 정상적으로 제출에는 이상이 없는지, 아니면 제출 자체에도 이상이 생기는지 궁금합니다.
강의 내용 외 개인적인 실습 사이트의 질문은 답변이 제공되지 않습니다. 문제가 생긴 코드, 에러 메세지 등을 꼭 같이 올려주셔야 빠른 답변이 가능합니다. 코드를 이미지로 올려주시면 실행이 불가능하기 때문에 답변이 어렵습니다. 답변은 바로 제공되지 않을 수 있습니다. 실력 향상을 위해서는 직접 고민하고 검색해가며 해결하는 게 가장 좋습니다. 쿠팡 아이템 리스트를 html로 작성해서 호스팅 주소에 올리는 과정입니다. 파이썬 파일 돌리면 로그인 과정에서 실패합니다. 주소 id pw는 제대로 입력한 것 확인 했는데 무엇이 문제인지 알려주세요...
최소 최대 가격을 수정할 때 최소 금액이 0보다 작을 때 최대 금액이 최소 금액보다 작을 때 위 같은 조건을 처리할 때 관련 질문입니다 describe 사용 여부 // 1 describe('최소 최대 가격 확인 테스트', () => { it("최소 금액이 0보다 작을 때, 이렇게~ 처리", () => {}); it("최대 금액이 최소 금액보다 작을 때, 이렇게~ 처리", () => {}); it("최소 최대 가격을 수정하면 setMinPrice, setMaxPrice action이 호출된다", () => {}) }) // 2 it("최소 금액이 0보다 작을 때, 이렇게~ 처리", () => {}); it("최대 금액이 최소 금액보다 작을 때, 이렇게~ 처리", () => {}); it("최소 최대 가격을 수정하면 setMinPrice, setMaxPrice action이 호출된다", () => {}) 위 같은 조건 테스트를 작성 하는게 좋은지 아니면 아예 입력 처리를 해서 작성 안하는게 좋은지 확인 (0보다 작은수는 입력되지 않고, 최대 금액은 최소 금액보다 무조건 크게 작성하도록 처리 등)
IOS17로 업데이트 됨에 따라, @Observable 매크로를 활용하여 ViewModel을 활용하면, 상태 변화를 감지하여 'View에서 자동적으로 업데이트 된다.'라고 알고 있습니다. @Observable 매크로를 사용해서 코드를 업데이트하던 중 궁금증이 생겨 질문을 남겨봅니다. ContentView, VideoView에서 AnimalViewModel의 인스턴스를 갖고 있을 때, var로 정의했을 때와 let으로 정의를 했을 때의 차이점이 있을까요? struct ContentView: View { // let이나 var이나 상관없는가? let vm: AnimalViewModel var body: some View { NavigationStack{ List{ // 1. Cover Image - hero Image CoverImageView(vm: vm) 관련내용을 공부하다보니, 해당 링크에서 https://www.donnywals.com/comparing-observable-to-observableobjects/ " Defining an @Observable as a let property" 부분에 HomeView에서 ViewModel에 @State 프로퍼티 래퍼를 사용한 후 let을 사용한다? 라는 내용을 본적이 있습니다. GalleryView에서 @State 프로퍼티 래퍼와 @Bindable 프로퍼티 래퍼를 사용했을 때의 차이점이 뭘까요 ㅠㅠ . 우선, @State로 했을 때는 변화의 감지를 HomeView에서도 GalleryView에서도 잘 작동하여, 슬라이더를 변화시켰을 때 Grid의 개수가 바뀝니다. 하지만 @Bindable 프로퍼티 래퍼를 사용했을 때에는 GalleryView에서만 슬라이더 변화를 감지 하고, HomeView에서는 변화를 감지하지 못하는 상황이 벌어집니다. @State var vm: AnimalViewModel @Bindable var vm: AnimalViewModel struct GallaryView: View { @State var vm: AnimalViewModel var body: some View { NavigationStack{ ScrollView(.vertical, showsIndicators: false){ VStack(spacing: 30){ // 1. Image Image(vm.selectedAnimal) .resizable() .scaledToFill() .frame(width: 250, height: 250) .clipShape(Circle()) .overlay(Circle().stroke(Color.accentColor, lineWidth: 5)) // 2. Slider Slider(value: $vm.gridColumn, in: 2...4, step: 1) .padding(0) .onChange(of: vm.gridColumn) { withAnimation(Animation.easeInOut(duration: 1.0)){ vm.gridSwitch() } } // 3. Grid LazyVGrid(columns: vm.gridLayout, spacing: 20){ ForEach(vm.animals){ animal in Image(animal.image) .resizable() .scaledToFill() .frame(width: 80, height: 80) .clipShape(Circle()) .overlay(Circle().stroke(Color.white, lineWidth: 1)) .onTapGesture { withAnimation(Animation.spring()){ vm.selectedAnimal = animal.image } } } } } //:VSTACK .padding() } //:SCROLL .navigationTitle("갤러리") .navigationBarTitleDisplayMode(.inline) } //:NAVIGATION } } 추가로, @Observable 매크로를 이용한 예시가 잘 정리되어 있는 문서들이 있을까요?? 제가 잘 이해를 못한 건지, 이 부분이 너무 어렵네요. 감사합니다 😀
문제에서 데이터수를 구하라고 할 때, sum이나 len을 사용하곤 하는데요. 어떨때 보면 sum으로 구할때와 len으로 구할때의 값이 다릅니다. 실례를 들어보면 [캐글 , 작업형1, 26번에서] menu컬럼에 "라떼" 키워드가 있는 데이터의 수는? df['menu'].str.contains('라떼').sum() len(df['menu'].str.contains('라떼')) 이렇게 sum과 len으로 구할 때 답이 다르게 나옵니다. 혹시 어떨 때 sum과 len을 써야할까요? 둘다 같은 의미로 알고 있는데.. 제가 잘못 이해하고 있는걸까요.?
#1.문제정의 #평가:ROC-AUC #target:'성별' 1 #최종파일:"result.csv"(컬럼 1개 pred, 1확률값) #2.라이브러리 및 데이터 불러오기 import pandas as pd train = pd.read _csv("data/customer_train.csv") test = pd.read _csv("data/customer_test.csv") #3.탐색적 데이터분석(EDA). shape head info isnull.sum. value_counts. describe target pd.set_option('display.max_columns', None) print(train.shape, test.shape) print(train.head(2)) print(test.head(2)) print( train.info ()) print( test.info ()) print(train.isnull().sum()) print(test.isnull().sum()) print(train['성별'].value_counts()) #결측치채우기 train = train.fillna(0) test = test.fillna(0) print(train.isnull().sum()) print(test.isnull().sum()) # 4.데이터전처리 - object데이터를 인코딩 df = pd.concat([train,test]) df = pd.get_dummies(df) train = df[:len(train)].copy() test = df[len(train):].copy() print(train.shape, test.shape) #5. 검증 데이터 분할 from sklearn.model_selection import train_test_split X_tr, X_val, y_tr, y_val = train_test_split(train.drop('성별', axis=1), train['성별'], test_size=0.2, random_state=10) print(X_tr.shape, X_val.shape, y_tr.shape, y_val.shape) #6. 머신러닝 학습 및 평가 from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import roc_auc_score model = RandomForestClassifier(random_state=0) model.fit (X_tr, y_tr) pred = model.predict_proba(X_val) score = roc_auc_score(y_val, pred[:,1]) print(score) # 7. 예측 및 평가 파일 생성 pred = model.predict_proba(test) submit = pd.DataFrame({'pred':pred[:,1]}) submit.to _csv("result.csv") print( pd.read _csv("result.csv")) 이렇게 했는데요. pred = model.predict_proba(test)만 작성하면 오류가 나는 이유가 뭘까요?? Makefile:6: recipe for target 'py3_run' failed make: *** [py3_run] Error 1 Traceback (most recent call last): File "/goorm/Main.out", line 64, in <module> pred = model.predict_proba(test) File "/usr/local/lib/python3.9/dist-packages/sklearn/ensemble/_forest.py", line 674, in predict_proba X = self._validate_X_predict(X) File "/usr/local/lib/python3.9/dist-packages/sklearn/ensemble/_forest.py", line 422, in validate X_predict return self.estimators_[0]._validate_X_predict(X, check_input=True) File "/usr/local/lib/python3.9/dist-packages/sklearn/tree/_classes.py", line 407, in validate X_predict X = self._validate_data(X, dtype=DTYPE, accept_sparse="csr", File "/usr/local/lib/python3.9/dist-packages/sklearn/base.py", line 421, in validate data X = check_array(X, **check_params) File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 63, in inner_f return f(*args, **kwargs) File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 720, in check_array assert all_finite(array, File "/usr/local/lib/python3.9/dist-packages/sklearn/utils/validation.py", line 103, in assert all_finite raise ValueError( ValueError: Input contains NaN, infinity or a value too large for dtype('float32').
안녕하세요 선생님, 작업형3 범주형 변수 인코딩 질문드립니다. [예시문제 작업형3(신버전)]의 6:37 부분을 보면 Gender는 인코딩이 되지않아서 C로 감싸주시더라구요. 근데 [시험응시전략] 강의에서는 '회귀, 로지스틱 회귀에서 숫자이지만, 범주형 변수로 명시된 것이 있다면 C()로 감싸서 처리할 것, 범주형 변수 object 값이 문자로 있다면 알아서 바꿔준다'라고 말씀하셨어요. 이부분이 헷갈립니다. 1) [시험응시전략]에서 말씀대로라면 [예시문제 작업형3]의 Gender는 C 처리할 필요없이, 알아서 바뀌는게 아닌가요? 2) 캐글에 T3-2-example-py 을 보면, 여기서는 gender를 C로 감싸서 인코딩 해주지 않으셨더라구요. 기준이 헷갈립니다.
'age'컬럼의 이상치를 모두 더하시오! print(sum(df['age']<lower) + sum(df['age']>upper)) 컬럼의 이상치를 다 더한다는 의미를 이렇게 해석했는데,, # 이상치 age합 print(df[cond1|cond2]['age'].sum()) 왜 선생님은 '또는'이라는 조건을 사용하셨나요?
안녕하세요. 섹션12 3회 기출유형 작업형 1 강의 9:54 경에서 '하드코딩 하지말라' 라는 메시지가 나오는데, 정답이 있는 작업형 1, 3은 정답만 맞으면 만점처리 되는거 아닌가요? 하드코딩을 하거나 눈으로 세거나 혹시 채점하면서 코드문(풀이과정)까지 봐서, 답은 맞아도 풀이가 정답이 아니라면 틀릴수도 있나요...? 아래 비슷한 질문이 있는거같은데, 응시자 유의사항 보면 정답만 맞추라는 뉘앙스인데, 이번 8회 실기는 어떻게 해야하나요?