ทำไมไม่จัดหมวดหมู่ผ่านการถดถอย?


51

เนื้อหาบางอย่างที่ฉันเห็นในการเรียนรู้ของเครื่องบอกว่าเป็นความคิดที่ไม่ดีที่จะเข้าถึงปัญหาการจัดหมวดหมู่ผ่านการถดถอย แต่ฉันคิดว่าเป็นไปได้เสมอที่จะทำการถดถอยอย่างต่อเนื่องเพื่อให้พอดีกับข้อมูลและตัดทอนการทำนายอย่างต่อเนื่องเพื่อให้ได้การจำแนกประเภทที่ไม่ต่อเนื่อง เหตุใดจึงเป็นความคิดที่ไม่ดี


ฉันคิดว่าการถดถอยนั้นซับซ้อนกว่าการจำแนกประเภทในสภาพแวดล้อมการผลิต

คำตอบ:


57

".. จำแนกปัญหาผ่านการถดถอย .. "โดย "การถดถอย" ฉันจะถือว่าคุณหมายถึงการถดถอยเชิงเส้นและฉันจะเปรียบเทียบวิธีการนี้กับวิธีการ "การจำแนก" ของการปรับรูปแบบการถดถอยโลจิสติก

ก่อนที่เราจะทำสิ่งนี้เป็นสิ่งสำคัญที่จะต้องชี้แจงความแตกต่างระหว่างรูปแบบการถดถอยและการจำแนกประเภท ตัวแบบการถดถอยทำนายตัวแปรอย่างต่อเนื่องเช่นปริมาณน้ำฝนหรือความเข้มของแสงแดด พวกเขายังสามารถทำนายความน่าจะเป็นเช่นความน่าจะเป็นที่ภาพมีแมวอยู่ แบบจำลองการถดถอยความน่าจะเป็นสามารถใช้เป็นส่วนหนึ่งของลักษณนามโดยกำหนดกฎการตัดสินใจตัวอย่างเช่นถ้าความน่าจะเป็น 50% หรือมากกว่าให้ตัดสินใจว่าเป็นแมว

การถดถอยโลจิสติกทำนายความน่าจะเป็นดังนั้นจึงเป็นขั้นตอนวิธีการถดถอย อย่างไรก็ตามมันถูกอธิบายโดยทั่วไปว่าเป็นวิธีการจัดหมวดหมู่ในวรรณคดีการเรียนรู้ของเครื่องเพราะมันสามารถ (และมักจะ) ใช้ในการทำลักษณนาม นอกจากนี้ยังมีอัลกอริธึมการจัดหมวดหมู่ "ของจริง" เช่น SVM ซึ่งทำนายผลและไม่ให้โอกาสเท่านั้น เราจะไม่พูดถึงอัลกอริทึมแบบนี้ที่นี่

การถดถอยเชิงเส้น vs. โลจิสติกส์เกี่ยวกับปัญหาการจำแนก

ดังที่ Andrew Ng อธิบายไว้ด้วยการถดถอยเชิงเส้นคุณพอดีกับพหุนามผ่านข้อมูล - พูดเช่นในตัวอย่างด้านล่างเราจะใส่เส้นตรงผ่านชุดตัวอย่าง{ขนาดเนื้องอกชนิดเนื้องอก}

ป้อนคำอธิบายรูปภาพที่นี่

ข้างต้นเนื้องอกมะเร็งได้รับและคนที่ไม่ใช่มะเร็งได้รับและสายสีเขียวคือสมมติฐานของเรา(x) ในการทำนายเราอาจบอกได้ว่าขนาดของเนื้องอกใด ๆ ที่กำหนดหากมีขนาดใหญ่กว่าเราจะคาดการณ์เนื้องอกที่ร้ายกาจ10h(x)xh(x)0.5

ดูเหมือนว่าวิธีนี้เราสามารถทำนายตัวอย่างชุดฝึกซ้อมได้อย่างถูกต้อง แต่ตอนนี้เรามาเปลี่ยนงานเล็กน้อย

โดยสังหรณ์ใจมันชัดเจนว่าเนื้องอกทั้งหมดมีขนาดใหญ่กว่าเกณฑ์บางอย่างที่เป็นมะเร็ง ลองเพิ่มตัวอย่างอีกอันที่มีขนาดก้อนโตมากและรันการถดถอยเชิงเส้นอีกครั้ง:

ป้อนคำอธิบายรูปภาพที่นี่

ตอนนี้เราไม่ทำงานอีกต่อไป เพื่อให้การคาดการณ์ถูกต้องเราจำเป็นต้องเปลี่ยนเป็นหรือบางอย่าง - แต่นั่นไม่ใช่วิธีที่อัลกอริทึมควรทำงานh(x)>0.5malignanth(x)>0.2

เราไม่สามารถเปลี่ยนสมมติฐานได้ทุกครั้งที่มีตัวอย่างใหม่มาถึง แต่เราควรเรียนรู้จากข้อมูลชุดฝึกอบรมจากนั้น (โดยใช้สมมติฐานที่เราได้เรียนรู้) ทำการทำนายที่ถูกต้องสำหรับข้อมูลที่เราไม่เคยเห็นมาก่อน

หวังว่านี่จะอธิบายว่าทำไมการถดถอยเชิงเส้นไม่เหมาะที่สุดสำหรับปัญหาการจำแนกประเภท! นอกจากนี้คุณอาจต้องการดูVI การถดถอยโลจิสติก. วิดีโอการจำแนกประเภทในml-class.orgซึ่งจะอธิบายแนวคิดในรายละเอียดเพิ่มเติม


แก้ไข

ความน่าจะเป็นทางตรรกะถามว่าตัวจําแนกที่ดีจะทําอย่างไร ในตัวอย่างนี้คุณอาจใช้การถดถอยโลจิสติกซึ่งอาจเรียนรู้สมมติฐานเช่นนี้ (ฉันเพิ่งทำไป):

ป้อนคำอธิบายรูปภาพที่นี่

โปรดทราบว่าทั้งการถดถอยเชิงเส้นและการถดถอยโลจิสติกให้คุณเป็นเส้นตรง (หรือพหุนามคำสั่งที่สูงกว่า) แต่เส้นเหล่านั้นมีความหมายต่างกัน:

  • h(x)สำหรับ interpolates การถดถอยเชิงเส้นหรือ extrapolates เอาท์พุทและคาดการณ์ค่าสำหรับเราไม่ได้เห็น มันเหมือนกับการเสียบใหม่และรับหมายเลขดิบและเหมาะสำหรับงานเช่นการคาดคะเนพูดว่าราคารถยนต์ขึ้นอยู่กับ{ขนาดรถยนต์อายุรถยนต์}ฯลฯxx
  • h(x)สำหรับการถดถอยโลจิสติกจะบอกคุณถึงความน่าจะเป็นที่เป็นของคลาส "บวก" นี่คือเหตุผลที่มันถูกเรียกว่าอัลกอริธึมการถดถอย - ประมาณปริมาณอย่างต่อเนื่องความน่าจะเป็น อย่างไรก็ตามถ้าคุณตั้งค่าขีด จำกัด บนความน่าจะเป็นเช่นคุณจะได้ลักษณนามและในหลาย ๆ กรณีนี่คือสิ่งที่ทำกับเอาต์พุตจากรูปแบบการถดถอยโลจิสติก สิ่งนี้เทียบเท่ากับการวางบรรทัดลงบนพล็อต: ทุกจุดที่อยู่เหนือบรรทัดตัวแยกประเภทเป็นของหนึ่งคลาสxh(x)>0.5

ดังนั้นสิ่งที่สำคัญที่สุดคือในสถานการณ์การจำแนกประเภทเราใช้การใช้เหตุผลที่แตกต่างอย่างสิ้นเชิงและอัลกอริทึมที่แตกต่างอย่างสิ้นเชิงกว่าในสถานการณ์การถดถอย


@ การลงทะเบียน: แต่จะเกิดอะไรขึ้นถ้าค่าผิดปกติทั้งหมดถูกลบหรือถูกตัดทอนการถดถอยเชิงเส้นยังคงเป็นความคิดที่ไม่ดี?
Tomek Tarczynski

ตัวอย่างของคุณดี แต่ไม่แสดงว่า "ตัวแยกประเภทที่ดี" จะทำอย่างไร คุณจะสามารถเพิ่มสิ่งนี้ได้ไหม โปรดทราบว่าการเพิ่มจุดข้อมูลควรเปลี่ยนบรรทัดสำหรับวิธีการใดก็ได้ คุณยังไม่ได้อธิบายว่าทำไมการเปลี่ยนแปลงนี้จึงไม่ดี
ความน่าจะเป็นทาง

1
@ andreister: ตัวอย่างของคุณแสดงข้อมูลที่ไม่ดีบางอย่างอาจทำให้การถดถอยเชิงเส้น แต่เราสามารถใช้การถดถอยแบบสี่เหลี่ยมหรือสมมุติฐานที่ซับซ้อนกว่านี้เพื่อทำให้ "การถดถอย" เป็นตัวจําแนกที่ดีได้หรือไม่
Strin

1
@probabilityislogic - จุดที่ดีฉันปรับปรุงคำตอบ
andreister

2
@Strin: สมมติฐานที่ซับซ้อนมากขึ้นมีแนวโน้มที่จะทำให้ข้อมูลเหมาะสม (นั่นคือเพื่อให้พอดีกับนิสัยใจคอของข้อมูลที่คุณมีอยู่ในมือส่งผลให้ข้อมูลในอนาคตไม่เหมาะสม) ฉันจำได้ว่าเป็นคลาสที่ฉันใช้เวลาที่ผู้ชายคนหนึ่งในแถวหน้ามั่นใจว่าศาสตราจารย์กำลังรั้งเราไว้ ไม่ให้อัลกอริธึมที่ซับซ้อนที่จะให้เราฆ่าในตลาดไฟฟ้า ... เขาไม่เคยเข้าใจถึงการบรรจุเกินจริง ๆ
เวย์น

14

ฉันไม่สามารถนึกถึงตัวอย่างที่การจำแนกประเภทเป็นเป้าหมายสูงสุดจริง ๆ เป้าหมายที่แท้จริงเกือบทุกครั้งคือการคาดการณ์ที่แม่นยำเช่นความน่าจะเป็น ในจิตวิญญาณนั้นการถดถอย (โลจิสติก) คือเพื่อนของคุณ


5
สำหรับฉันแล้วสิ่งที่จำแนกอย่างมีประสิทธิภาพคือเป้าหมายในกระบวนการอัตโนมัติส่วนใหญ่ซึ่งเป็นไปไม่ได้หรือเป็นไปไม่ได้ที่จะมีการแทรกแซงหรือการตัดสินของมนุษย์ เมื่อได้รับพูดว่าสัญญาณดิจิตอลที่ส่งสัญญาณรบกวนผู้รับจะไม่สามารถตัดสินใจได้ว่าบิตใดควรเป็น 0.97 แทนที่จะเป็น 0 หรือ 1
cardinal

6
ยกเว้นความจริงที่ว่าค่าใช้จ่ายของค่าบวกปลอมหรือค่าลบเป็นค่าลบนั้นไม่ค่อยอยู่ภายใต้การควบคุมของนักวิเคราะห์ที่ทำการจำแนกประเภทดังนั้นนักวิเคราะห์ดั้งเดิมจึงไม่สามารถเลือกจุดตัด "ขวา" สำหรับการจำแนกได้อย่างน่าเชื่อถือ นอกจากนี้ก็ควรที่จะมี "โซนสีเทา" ของความเสี่ยงระดับกลางซึ่งไม่มีการจำแนกประเภทและคำแนะนำคือ "รับข้อมูลเพิ่มเติม"
Frank Harrell

1
ฉันคิดว่าฉันเชื่อในสิ่งที่ตรงกันข้ามกับคำกล่าวอ้างในคำตอบนี้และไม่เคยพบมุมมองนี้ในการศึกษาระดับมหาวิทยาลัยทั้งหมดในการเรียนรู้ด้วยเครื่อง ฉันประหลาดใจมากที่มีคนพูดแบบนี้ ในทางปฏิบัติฉันมักจะประสบปัญหาที่ผู้คนคิดว่าพวกเขาต้องการทำนายปริมาณอย่างต่อเนื่อง แต่จริง ๆ แล้วพวกเขาต้องการทำนายการเป็นสมาชิกในกลุ่มที่แตกต่างกันของปริมาณนั้น ฉันพยายามหาอินสแตนซ์ที่การทำนายปริมาณต่อเนื่องจริง ๆ แล้วมีประโยชน์ในแง่ของการอนุมานที่สำคัญที่เป็นต้นเหตุของปัญหา
ely

9
ฉันคิดว่าคุณได้เรียนรู้วิธีการใช้งานเครื่อง คุณกำลังทำข้อสันนิษฐานที่ไม่เป็นที่ยอมรับจำนวนมาก หนึ่งในนั้นคือผู้คนต้องการตัวเลือกที่ถูกบังคับในถังอย่างเด็ดขาด พวกเขาอาจอ้างว่าต้องการสิ่งนี้ แต่พวกเขาไม่ต้องการสิ่งนี้ในสถานการณ์ส่วนใหญ่ ตัวเลือกไม่จำเป็นต้องถูกบังคับ ทางเลือกที่ดีคือ "ไม่ต้องตัดสินใจรับข้อมูลเพิ่ม" การคาดการณ์ปริมาณต่อเนื่องที่จำเป็นมักเป็นสิ่งที่จำเป็น มันจะคุ้มค่าในขณะที่คุณศึกษาทฤษฎีการตัดสินใจ (Bayes) ที่เหมาะสม หากคุณสามารถให้ตัวอย่างที่เป็นรูปธรรมฉันจะแสดงความคิดเห็นเพิ่มเติม
Frank Harrell

11
+1 บนความคิดเห็นของ @Frank Harrell ตัวอย่างเช่นการทำนายอุณหภูมิปริมาณน้ำฝนระดับแม่น้ำมีประโยชน์อย่างมากมายมากกว่าการคาดการณ์ว่าจะร้อนหรือเปียกหรือน้ำท่วม แม้ว่าปัญหาคือแกะหรือแพะ? ค่าประมาณของ pr (แกะ) เป็นข้อมูลมากกว่าไบนารี "แกะ" หรือ "แพะ"
Nick Cox

1

ทำไมไม่ลองดูหลักฐานบ้างล่ะ? แม้ว่าหลายคนอาจแย้งว่าการถดถอยเชิงเส้นนั้นไม่เหมาะสำหรับการจำแนกประเภท แต่ก็อาจใช้งานได้ เพื่อให้ได้รับสัญชาติญาณบางอย่างผมรวมถึงการถดถอยเชิงเส้น (ใช้เป็นลักษณนาม) ลง scikit การเรียนรู้ของการเปรียบเทียบลักษณนาม นี่คือสิ่งที่เกิดขึ้น:

ป้อนคำอธิบายรูปภาพที่นี่

ขอบเขตการตัดสินใจแคบกว่าตัวแยกประเภทอื่น ๆ แต่ความแม่นยำนั้นเหมือนกัน เหมือนกับตัวแยกลแบบเวกเตอร์เชิงเส้นสนับสนุนโมเดลการถดถอยจะให้ไฮเปอร์เพลนที่แยกคลาสในพื้นที่คุณลักษณะ

อย่างที่เราเห็นการใช้การถดถอยเชิงเส้นเป็นลักษณนามสามารถทำงานได้ แต่เช่นเคยฉันจะข้ามการตรวจสอบการทำนาย

สำหรับเร็กคอร์ดนี่คือลักษณะรหัสลักษณนามของฉัน:

class LinearRegressionClassifier():

def __init__(self):
    self.reg = LinearRegression()

def fit(self, X, y):
    self.reg.fit(X, y)

def predict(self, X):
    return np.clip(self.reg.predict(X),0,1)

def decision_function(self, X):
    return np.clip(self.reg.predict(X),0,1)

def score(self, X, y):
    return accuracy_score(y,np.round(self.predict(X)))


0

เพิ่มเติมเพื่อขยายคำตอบที่ดีอยู่แล้วสำหรับงานการจัดประเภทใด ๆ นอกเหนือจาก bivariate การใช้การถดถอยจะทำให้เรากำหนดระยะทางและสั่งซื้อระหว่างชั้นเรียน กล่าวอีกนัยหนึ่งเราอาจได้ผลลัพธ์ที่แตกต่างกันเพียงแค่สับเลเบลของคลาสหรือเปลี่ยนสเกลของค่าตัวเลขที่กำหนด (กล่าวว่าคลาสที่มีเลเบลเป็นเทียบกับ ) ซึ่งเอาชนะวัตถุประสงค์ของปัญหาการจำแนกประเภท1,10,100,...1,2,3,...

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.