금속 코일의 품질을 예측하려고합니다. 나는 너비가 10 미터이고 길이가 1에서 6 킬로미터 인 금속 코일을 가지고있다. 훈련 데이터로서 ~ 600 개의 매개 변수가 각각 10 미터 측정되고 최종 품질 관리 표시가 좋음/나쁨 (전체 코일의 경우)입니다. 나쁜 것은 코일이 나쁘다는 것을 의미하는 최소한 1 개의 장소가 있다는 것을 의미합니다. 정확하게 데이터가 없습니다. 약 10000 개의 코일에 대한 데이터가 있습니다.몇 포인트의 분실, 맞춤형 손실 함수 및 기울기로서의 손실 기능
우리는이 데이터에 대해 로지스틱 회귀를 훈련시키고 싶다고 상상해 봅니다 (2 가지 요인).
X = [[0, 0],
...
[0, 0],
[1, 1], # coil is actually broken here, but we don't know it yet.
[0, 0],
...
[0, 0]]
Y = ?????
나는 분류기를 혼란스럽게 할 것이므로 Y에 "bad"를 넣고 분류기를 실행시킬 수는 없습니다. 나는 나쁜 위치에 있는지 모르기 때문에 "좋은"것과 "나쁜"을 모두 넣을 수는 없습니다.
내가 생각한 해답은 손실 함수를 sum ((Y-min (F (x1, x2)))^2) (1 개의 코일에 속한 모든 F) 아니요 합계 ((YF (x1, x2))^2)입니다. 이 경우 아마도 F가 나쁜 장소를 가리 키도록 올바르게 훈련받습니다. 나는 그라디언트가 필요합니다. 모든 점에서 그것을 계산하는 것은 불가능합니다. 모든 부분에서 분을 구별 할 수는 없지만 대신 (모든 위치에서 코일에서 최소 인 함수 값을 사용하여) 약한 그래디언트를 사용할 수 있습니다.
나는 그것을 스스로 구현하는 법을 어느 정도 알고있다. 질문은 scikit-learn으로 파이썬에서 그것을하는 가장 간단한 방법이다. 이상적으로 그것은 여러 가지 학습 방법 (손실 함수와 그라디언트를 기반으로하는 많은 메소드)과 동일하거나 (쉽게 적용 할 수 있어야합니다.) 가능하면이 방법으로 작동하는 학습 방법에 대한 래퍼를 만들 수 있습니까?
업데이트 : gradient_boosting.py를 보면 : 손실 및 그래디언트를 계산할 수있는 내부 추상 클래스 LossFunction이 있으며, 시각적으로 보입니다. 일반적인 해결책이없는 것처럼 보입니다.
"최소 (F (x1, x2))"란 무엇을 의미합니까 ** 위에서 **이 최소 작업은 무엇입니까? F (x1, x2)는 숫자 일 뿐이므로 일반적인 표기법처럼 보이지 않습니다. 행렬인가요? 따라서 당신은 항상 "비관적"이되고 전체 집합에서의 하락 예측이 무엇이든 예측을 취하고 싶습니까? – lejlot
하나의 코일을 통해, 물론 전체 집합 아닙니다. –
원래 질문이 업데이트되었습니다. –