การถดถอยเชิงเส้นและการถดถอยเชิงโลจิสติกส์เป็นโมเดลแมชชีนเลิร์นนิงที่ช่วยให้คุณสร้างการคาดการณ์ที่สื่อความหมายจากข้อมูลการโฆษณาได้
- การหาค่าสัมประสิทธ์เชิงเส้นจะสร้างฟังก์ชันเพื่อปรับเส้นให้พอดีกับข้อมูลเพื่อให้ระยะทางระหว่างจุดข้อมูลกับเส้นมีระยะทางน้อยที่สุด จากนั้นจึงใช้รูปแบบนี้เพื่อคาดการณ์ค่าตัวเลขตามอินพุต เช่น คาดการณ์มูลค่าตลอดอายุการใช้งานของผู้ใช้ตามการซื้อ การโต้ตอบก่อนหน้านี้ ฯลฯ
- การถดถอยแบบโลจิสติกใช้สำหรับปัญหาการจัดประเภทตามการคาดการณ์ รูปแบบอาจเป็น 1 ใน 2 ประเภทต่อไปนี้ โดยขึ้นอยู่กับจํานวนตัวแปรที่คุณระบุ
- การถดถอยเชิงสถิติแบบโลจิสติกแบบ 2 ค่าจะตอบคําถามแบบ "ใช่/ไม่ใช่" เช่น ความเป็นไปได้ที่เหตุการณ์ Conversion จะเกิดขึ้น
- การถดถอยเชิงเส้นโลจิสติกแบบหลายคลาสใช้เพื่อคาดการณ์ค่าที่เป็นไปได้หลายค่า เช่น ระบุว่าลูกค้ามี "มูลค่าต่ำ" "มูลค่าปานกลาง" หรือ "มูลค่าสูง"
ทั้งการถดถอยเชิงเส้นและการถดถอยเชิงลอจิสติกส์จะเรียนรู้จากข้อมูลการฝึก (ในกรณีนี้คือข้อมูลการโฆษณา) ซึ่งจะให้โมเดลการคาดการณ์สําหรับตัดสินใจด้านการโฆษณา โดยทั่วไปแล้ว การให้ข้อมูลมากขึ้นและตรวจสอบว่าข้อมูลที่คุณให้มีคุณภาพสูงจะช่วยเพิ่มความแม่นยำของโมเดล โมเดลทั้ง 2 รูปแบบมีประสิทธิภาพดีขึ้นเมื่อได้รับข้อมูลการฝึกที่กระจุกตัวกันมาก
Differential Privacy
ทั้งการถดถอยเชิงเส้นและการถดถอยเชิงโลจิสติกส์ใช้ความเป็นส่วนตัวแบบที่แตกต่างกัน ซึ่งเป็นระบบการตรวจสอบความเป็นส่วนตัวที่แตกต่างจากที่การดำเนินการอื่นๆ ใน Ads Data Hub ใช้ Differential Privacy รักษาความเป็นส่วนตัวของผู้ใช้ปลายทางโดยการแทรกสัญญาณรบกวนลงในผลลัพธ์ระหว่างกระบวนการฝึก ระดับนี้ยังคงต่ำพอที่ผลลัพธ์สุดท้ายจะยังคงมีประโยชน์ แต่สูงพอที่จะไม่สามารถระบุผู้ใช้ปลายทางได้ นอกจากนี้ ระดับของสัญญาณรบกวนยังไม่ใช่ค่าที่แน่นอน ทำให้ผลลัพธ์มีระดับสัญญาณรบกวนที่ไม่สอดคล้องกัน ซึ่งช่วยรักษาความเป็นส่วนตัวของผู้ใช้ปลายทางได้มากขึ้น
การจํากัดคําค้นหา
คุณค้นหาการประมาณการถดถอยเชิงเส้นและเชิงลอจิสติกได้สูงสุด 100 รายการต่อ "วันข้อมูล" เมื่อใช้ EPSILON_PER_MODEL
เริ่มต้น วันที่มีข้อมูลหมายถึงเหตุการณ์ที่เกิดขึ้นในวันหนึ่งๆ เหตุการณ์เหล่านี้สอดคล้องกับวันที่เริ่มต้นและวันที่สิ้นสุดที่คุณระบุเมื่อเรียกใช้การค้นหา และวันที่เริ่มต้นและวันที่สิ้นสุดที่ใช้เมื่อสร้างตารางที่การค้นหาใช้ เช่น ตารางชั่วคราวที่ใช้สำหรับการฝึก ซึ่งหมายความว่าข้อมูล 1 วันจะใช้ได้ในโมเดลไม่เกิน 100 รายการ หากเลือกระบุค่า EPSILON_PER_MODEL มากกว่าค่าเริ่มต้น คุณสามารถสร้างโมเดลได้น้อยลง แต่โมเดลเหล่านั้นจะมีคุณภาพสูงขึ้น และหากเลือกค่า EPSILON_PER_MODEL ที่น้อยลง คุณจะฝึกโมเดลได้มากขึ้น แต่โมเดลเหล่านั้นจะมีคุณภาพต่ำลง
วิธีการทำงาน
เวิร์กโฟลว์จะเป็นไปตามขั้นตอนสำคัญต่อไปนี้
- เตรียมข้อมูลการฝึก
- สร้างโมเดล
- รวบรวมข้อมูลเชิงลึกจากโมเดล
เตรียมข้อมูลการฝึก
ดังที่กล่าวไว้ข้างต้น โดยทั่วไปแล้วการใช้ชุดข้อมูลขนาดใหญ่ที่มีคุณภาพสูงจะให้ผลลัพธ์ที่ดีกว่า นอกจากนี้ เนื่องจากข้อมูลอินพุตได้รับการปรับขนาดโดยใช้การปรับขนาดขั้นต่ำ-สูงสุด ข้อมูลคลัสเตอร์ที่กระจัดกระจายหรือข้อมูลที่มีค่าผิดปกติที่สำคัญอาจส่งผลเสียต่อโมเดลโดยการย้ายค่าเฉลี่ย
โดยค่าเริ่มต้น Ads Data Hub จะสุ่มเลือกข้อมูลการฝึก 18% เพื่อใช้ในการตรวจสอบ เปอร์เซ็นต์ของข้อมูลที่ใช้ในการตรวจสอบจะควบคุมได้ด้วยตัวเลือก data_split_eval_fraction
สร้างโมเดล
ระบุพารามิเตอร์และข้อมูลอินพุตสำหรับการฝึกโมเดล
แนวทางปฏิบัติแนะนำ
ปัจจัยสําคัญที่สุดอย่างหนึ่งที่ส่งผลต่อคุณภาพของโมเดลคือขนาดชุดข้อมูลการฝึก อย่างไรก็ตาม การแลกเปลี่ยนขนาด/คุณภาพจะแตกต่างกันไปตามปัญหาและปัจจัยที่ระบุไว้ด้านล่าง โปรดแจ้งให้เราทราบถึงประสบการณ์ของคุณ
- เราพบว่าความแม่นยำของโมเดลการถดถอยเชิงโลจิสติกส์ที่สร้างจากชุดข้อมูลการฝึกอบรมที่มีผู้ใช้อย่างน้อย 100,000 รายนั้นมีค่ามากกว่า 0.70
- เราพบว่าค่า r-squared มากกว่า 0.70 สำหรับโมเดลการถดถอยเชิงเส้นที่สร้างจากชุดข้อมูลการฝึกที่มีผู้ใช้อย่างน้อย 800,000 คน
นอกจากนี้ยังมีปัจจัยอื่นๆ ที่อาจทำให้โมเดลมีคุณภาพต่ำลง
- โมเดลโลจิสติกส์ที่คลาสหนึ่งมีการแสดงผลสูงกว่าคลาสอื่นๆ มาก กล่าวโดยละเอียดคือ เมื่อป้ายกำกับหนึ่งมีผู้ใช้ชุดข้อมูลการฝึกน้อย การมีผู้ใช้ชุดข้อมูลการฝึกจำนวนมากที่มีป้ายกำกับอื่นๆ อาจไม่ได้ช่วยเพิ่มความแม่นยำของโมเดลในป้ายกำกับที่มีผู้ใช้น้อยมากนัก เช่น ผู้ใช้ชุดการฝึก 20,000 คนและ 1,000 คนสําหรับป้ายกำกับ 2 รายการมีประสิทธิภาพต่ำกว่า 10,000 คนและ 2,000 คน
- ข้อมูลฟีเจอร์ที่ไม่ได้ให้สัญญาณที่ชัดเจนสำหรับป้ายกำกับ
- ข้อมูลดิบที่ต้องอาศัยการสร้างฟีเจอร์อย่างละเอียดยิ่งขึ้น เช่น ช่องบางช่องอาจมีค่าที่เป็นไปได้จํานวนมาก วิธีหนึ่งในการปรับปรุงข้อมูลประเภทนี้คือการเปลี่ยนค่าให้เป็นฟีเจอร์ที่มีจํานวนหมวดหมู่หรือที่เก็บข้อมูลน้อยลง
รวบรวมข้อมูลเชิงลึก
คุณสามารถเรียกใช้ฟังก์ชันเพื่อประเมินประสิทธิภาพของโมเดลในข้อมูลที่ใช้ตรวจสอบ ตรวจสอบฟีเจอร์และข้อมูลเกี่ยวกับการวนซ้ำการฝึก (เช่น น้ำหนักพื้นฐานที่โมเดลใช้ในระหว่างการคาดการณ์) และคาดการณ์ข้อมูลใหม่
คำสั่ง CREATE MODEL
คำสั่ง CREATE MODEL
จะสร้างโมเดลที่มีชื่อและชุดข้อมูลที่คุณระบุ หากมีชื่อรูปแบบอยู่แล้ว CREATE MODEL
จะแทนที่รูปแบบที่มีอยู่
ไวยากรณ์ CREATE MODEL
CREATE MODEL
model_name
OPTIONS
(
// model_option_list:
// Required parameter.
MODEL_TYPE = { 'ADH_LINEAR_REGRESSION' | 'ADH_LOGISTIC_REGRESSION'}
// Optional tuning parameters.
[, L1_REG = float64_value ]
[, L2_REG = float64_value ]
[, DATA_SPLIT_EVAL_FRACTION = float64_value ]
[, OPTIMIZE_STRATEGY = { 'AUTO_STRATEGY' | 'BATCH_GRADIENT_DESCENT' |
'NORMAL_EQUATION' } ]
[, MAX_ITERATIONS = int64_value ]
[, LEARN_RATE_STRATEGY = { 'LINE_SEARCH' | 'CONSTANT' } ]
[, LEARN_RATE = float64_value ]
[, EARLY_STOP = { TRUE | FALSE } ]
[, MIN_REL_PROGRESS = float64_value ]
[, LS_INIT_LEARN_RATE = float64_value ]
[, EPSILON_PER_MODEL = float64_value ]
[, AUTOMATIC_IMPUT_SCALING = bool_value ]
[, MIN_MAX_SCALED_COLS = [string_value, string_value... ] ]
[, STANDARD_SCALED_COLS = [string_value, string_value... ] ]
[, QUANTILE_BUCKETIZED_COLS = [
STRUCT(string_value AS col_name, int64_value AS num_buckets),
STRUCT(string_value AS col_name, int64_value AS num_buckets)... ] ]
)
AS query_statement
model_name
ชื่อที่เป็นตัวอักษรและตัวเลขคละกัน รวมถึงขีดล่างและขีดกลางยาว ต้องไม่มีจุด หากชื่อรุ่นที่คุณระบุมีอยู่แล้ว ระบบจะเขียนทับรุ่นเก่า
query_statement
ระบุการค้นหา SQL มาตรฐานที่ใช้สร้างข้อมูลการฝึก หากคุณสร้างหลายรูปแบบโดยใช้ข้อมูลการฝึกเดียวกัน ให้สร้างตารางชั่วคราวที่มีข้อมูลการฝึกและอ้างอิงที่นี่ กลยุทธ์นี้จะช่วยหลีกเลี่ยงข้อผิดพลาดที่อาจเกิดขึ้นในการตรวจสอบความแตกต่างเนื่องจากการลบล้างหรือสแปมที่เกิดขึ้นช้า
model_option_list
model_type
(ต้องระบุ) ตัวเลือกเดียวที่ต้องระบุ อาจเป็น "adh_linear_regression
" หรือ "adh_logistic_regression
"
l1_reg
(ไม่บังคับ) จำนวนการปรับเปลี่ยน L1 ที่ใช้ การปรับ L1 จะลงโทษน้ำหนักตามสัดส่วนกับผลรวมของค่าสัมบูรณ์ของน้ำหนัก อาจเป็นตัวเลขใดก็ได้ที่ไม่ใช่ค่าลบ โดยค่าเริ่มต้นคือ 0
l2_reg
(ไม่บังคับ) ปริมาณการถ่วงน้ำหนัก L2 ที่ใช้ การปรับ L2 จะลงโทษน้ำหนักตามสัดส่วนกับรากที่สองของผลรวมของค่ากำลังสองของน้ำหนัก อาจเป็นตัวเลขใดก็ได้ที่ไม่ใช่ค่าลบ โดยค่าเริ่มต้นคือ 0
data_split_eval_fraction
(ไม่บังคับ) ต้องอยู่ระหว่าง .01 ถึง .99 โดยค่าเริ่มต้นคือ .18 กําหนดเศษส่วนของข้อมูลที่จะอยู่ในชุดการประเมิน ซึ่งส่งผลต่อความแม่นยําของโมเดลโดยการลดจํานวนแถวที่ปรากฏในโมเดล แต่ก็จะเพิ่มจํานวนโมเดลที่ผู้ใช้สามารถเรียกใช้ได้ด้วย แผนภูมิความสัมพันธ์ดังกล่าวคือสมมติว่าโมเดลทุกรายการในชุดข้อมูลหนึ่งๆ มีเศษส่วนเดียวกัน
เศษส่วนของการตรวจสอบ | คำค้นหาที่อนุญาต |
---|---|
0.01 | 7 |
0.1 | 8 |
0.15 | 8 |
0.18 | 9 |
0.2 | 9 |
0.3 | 10 |
0.5 | 14 |
0.9 | 50 |
optimize_strategy
(ไม่บังคับ) กลยุทธ์ในการฝึกโมเดลการหาค่าสัมประสิทธิ์การถดถอยเชิงเส้น
อาร์กิวเมนต์
"AUTO_STRATEGY
" กําหนดกลยุทธ์การฝึกอบรมดังนี้
- หากระบุ
l1_reg
หรือwarm_start
ระบบจะใช้กลยุทธ์batch_gradient_descent
- หาก Cardinality ทั้งหมดของฟีเจอร์การฝึกอบรมมากกว่า 10,000 ระบบจะใช้กลยุทธ์
batch_gradient_descent
- หากมีปัญหาการพอดีมากเกินไป (จํานวนตัวอย่างการฝึกน้อยกว่า 10 • Cardinality ทั้งหมด) ระบบจะใช้กลยุทธ์
batch_gradient_descent
- ระบบจะใช้กลยุทธ์
NORMAL_EQUATION
สำหรับกรณีอื่นๆ ทั้งหมด
'BATCH_GRADIENT_DESCENT
' (เฉพาะแบบลอจิสติก) จะฝึกโมเดลโดยใช้วิธีการลดเชิงลาดแบบเป็นกลุ่ม ซึ่งจะเพิ่มประสิทธิภาพฟังก์ชันการสูญเสียโดยใช้ฟังก์ชันเชิงลาด
'NORMAL_EQUATION
' (เชิงเส้นเท่านั้น) คำนวณวิธีแก้ปัญหากำลังสองน้อยที่สุดของปัญหาการถดถอยเชิงเส้นโดยตรงด้วยสูตรวิเคราะห์ สมการปกติใช้ไม่ได้ในกรณีต่อไปนี้
- มีการระบุ
l1_reg
- มีการระบุ
warm_start
- Cardinality ทั้งหมดของฟีเจอร์การฝึกอบรมมากกว่า 10,000 รายการ
- ค่าเริ่มต้นคือ
AUTO_STRATEGY
max_iterations
(ไม่บังคับ) จำนวนรอบหรือขั้นตอนการฝึก เนื่องจากคําค้นหานี้จะสร้างต้นไม้ 1 ต้นสําหรับแต่ละรอบ ผลลัพธ์ที่ได้จึงเท่ากับจํานวนต้นไม้ ต้องเป็นจํานวนเต็มที่มากกว่า 1 ค่าเริ่มต้นคือ 20
learn_rate_strategy
(ไม่บังคับ เฉพาะแบบโลจิสติกส์) กลยุทธ์ในการระบุอัตราการเรียนรู้ระหว่างการฝึก
อาร์กิวเมนต์
'LINE_SEARCH
' ใช้วิธีการค้นหาเส้นเพื่อคํานวณอัตราการเรียนรู้ อัตราการเรียนรู้เริ่มต้นของการค้นหาบรรทัดคือค่าที่ระบุสำหรับ LS_INIT_LEARN_RATE
- การค้นหาบรรทัดจะทําให้การฝึกช้าลงและจํานวนไบต์ที่ประมวลผลเพิ่มขึ้น แต่โดยทั่วไปจะบรรลุความสอดคล้องกันแม้จะมีอัตราการเรียนรู้เริ่มต้นที่ระบุไว้สูงกว่า
'CONSTANT
' จะตั้งค่าอัตราการเรียนรู้เป็นค่าที่ระบุสำหรับ LEARN_RATE
ค่าเริ่มต้นคือ LINE_SEARCH
learn_rate
(ไม่บังคับ เฉพาะแบบลอจิสติกส์) อัตราการเรียนรู้สำหรับการลดเชิงลาดเมื่อตั้งค่า LEARN_RATE_STRATEGY
เป็น CONSTANT
หากตั้งค่า LEARN_RATE_STRATEGY
เป็น "LINE_SEARCH
" ระบบจะแสดงข้อผิดพลาด
อาร์กิวเมนต์
float64_value
อาจเป็นตัวเลขทศนิยม 64 บิตใดก็ได้ ค่าเริ่มต้นคือ 0.1 (10%)
early_stop
(ไม่บังคับ) การฝึกควรหยุดหลังจากการทำซ้ำครั้งแรกที่การปรับปรุงการสูญเสียแบบสัมพัทธ์น้อยกว่าค่าที่ระบุสำหรับ MIN_REL_PROGRESS
หรือไม่
อาร์กิวเมนต์
TRUE
สำหรับ "ใช่" และ FALSE
สำหรับ "ไม่" ค่าเริ่มต้นคือ TRUE
min_rel_progress
(ไม่บังคับ) การปรับปรุงการสูญเสียแบบสัมพัทธ์ขั้นต่ำที่จำเป็นต่อการฝึกต่อไปเมื่อตั้งค่า EARLY_STOP
เป็น true เช่น ค่า 0.01 ระบุว่าแต่ละรอบต้องลดการสูญเสียลง 1% เพื่อให้การฝึกฝนต่อไปได้
อาร์กิวเมนต์
float64_value
อาจเป็นตัวเลขทศนิยม 64 บิตใดก็ได้ ค่าเริ่มต้นคือ 0.1 (10%)
ls_init_learn_rate
(ไม่บังคับ) ตั้งค่าอัตราการเรียนรู้เริ่มต้นที่ LEARN_RATE_STRATEGY='LINE_SEARCH'
ใช้ ตัวเลือกนี้จะใช้ได้ก็ต่อเมื่อระบุ LINE_SEARCH
เท่านั้น
หาก LEARN_RATE
ของโมเดลดูเหมือนว่าจะเพิ่มขึ้นเป็น 2 เท่าทุกครั้งที่วนซ้ำตามที่ ML.TRAINING_INFO
ระบุ ให้ลองตั้งค่า LS_INIT_LEARN_RATE
เป็นอัตราการเรียนรู้ที่เพิ่มขึ้นเป็น 2 เท่าครั้งล่าสุด อัตราการเรียนรู้เริ่มต้นที่ดีที่สุดจะแตกต่างกันไปในแต่ละโมเดล อัตราการเรียนรู้เริ่มต้นที่ดีสำหรับโมเดลหนึ่งอาจไม่ใช่อัตราการเรียนรู้เริ่มต้นที่ดีสำหรับอีกโมเดลหนึ่ง
อาร์กิวเมนต์
float64_value
อาจเป็นตัวเลขทศนิยม 64 บิตใดก็ได้
epsilon_per_model
(ไม่บังคับ) ระบุจํานวนงบประมาณความเป็นส่วนตัวที่จะใช้ในการฝึกโมเดลนี้ ลูกค้าข้อมูลโฆษณาแต่ละรายจะได้รับงบประมาณด้านความเป็นส่วนตัว 10.0 ต่อวันที่มีข้อมูล โมเดลที่ฝึกเสร็จแล้วจะใช้งบประมาณ EPSILON_PER_MODEL สำหรับแต่ละวันของข้อมูลในช่วงวันที่ที่ระบุเมื่อเรียกใช้การค้นหา การใช้ค่าเริ่มต้นของ ln(3)/10 จะอนุญาตให้สร้างโมเดลได้ประมาณ 100 รายการ หากใช้ค่าที่สูงขึ้น คุณสามารถสร้างโมเดลได้น้อยลง แต่โมเดลเหล่านั้นจะมีคุณภาพสูงขึ้น หากใช้ค่าที่น้อยลง คุณจะสร้างโมเดลคุณภาพต่ำได้มากขึ้น
อาร์กิวเมนต์
float64_value
อาจเป็นเลขทศนิยม 64 บิตบวกใดก็ได้ที่น้อยกว่า ln(3) ซึ่งมีค่าประมาณ 1.0986 ค่าเริ่มต้นคือ ln(3)/10
automatic_input_scaling
(ไม่บังคับ) เมื่อ TRUE
ระบบจะใช้ min_max_scaling
กับคอลัมน์ฟีเจอร์ตัวเลขทั้งหมดโดยอัตโนมัติ ราวกับว่ามีการระบุชื่อคอลัมน์อย่างชัดเจนในตัวเลือก min_max_scaled_cols
ยกเว้นคอลัมน์ที่มีการระบุอย่างชัดเจนในตัวเลือก standard_scaled_cols
หรือ quantile_bucketized_cols
อาร์กิวเมนต์
bool_value
คือ BOOL
ค่าเริ่มต้นคือ TRUE
min_max_scaled_cols
(ไม่บังคับ) ปรับขนาดคอลัมน์ฟีเจอร์ numerical_expression ที่ระบุแต่ละคอลัมน์ให้อยู่ในช่วง 0 ถึง 1 โดยจำกัดด้วย MIN
และ MAX
ในแถวทั้งหมด
ระบบจะใช้ MIN
และ MAX
เดียวกันในการคาดการณ์โดยอัตโนมัติ หากข้อมูลการคาดการณ์อยู่นอกช่วง MIN
, MAX
ระบบจะจำกัดข้อมูลนั้นไว้ที่ 0 หรือ 1
อาร์กิวเมนต์
อาร์เรย์ของ string_value
โดยที่ string_value
แต่ละรายการคือสตริงที่แสดงถึงชื่อคอลัมน์ที่จะเปลี่ยนรูปแบบ
standard_scaled_cols
(ไม่บังคับ) กำหนดมาตรฐานnumerical_expression
คอลัมน์ฟีเจอร์ที่ระบุในแถวทั้งหมด
ระบบจะใช้ STDDEV
และ MEAN
ที่คำนวณเพื่อทำให้นิพจน์เป็นมาตรฐานในการคาดการณ์โดยอัตโนมัติ
อาร์กิวเมนต์
อาร์เรย์ของ string_value
โดยที่แต่ละ string_value
คือ STRING
ที่แสดงถึงชื่อคอลัมน์ที่จะเปลี่ยนรูปแบบ
quantile_bucketized_cols
จัดกลุ่มคอลัมน์ฟีเจอร์ตัวเลขต่อเนื่องที่ระบุเป็น STRING
โดยให้ชื่อกลุ่มเป็นค่าตามควอร์ไทล์
ระบบจะใช้ควอร์ไทล์เดียวกันในการคาดการณ์โดยอัตโนมัติ
อาร์กิวเมนต์
อาร์เรย์ของ STRUCT(string_value AS col_name, int64_value AS num_buckets)
โดยที่แต่ละ string_value คือ STRING
ที่แสดงถึงชื่อคอลัมน์ตัวเลขต่อเนื่องที่จะเปลี่ยนรูปแบบ และแต่ละ int64_value
คือจํานวนกลุ่มที่จะแยกค่าตัวเลข
การตรวจสอบความถูกต้อง
- วันที่มีข้อมูลแต่ละวันในช่วงวันที่ที่ระบุสําหรับการค้นหานี้ต้องมีงบประมาณความเป็นส่วนตัวเพียงพอ ซึ่งมากกว่า EPSILON_PER_MODEL ไม่เช่นนั้นการค้นหาจะดำเนินการไม่สำเร็จ
- ระบบจะตรวจสอบพารามิเตอร์การปรับแต่งที่ไม่บังคับ (หากระบุ) สำหรับช่วงต่างๆ ที่แสดงด้านบน
- คุณต้องระบุพารามิเตอร์ model_type ที่จำเป็นเพียง 1 รายการเท่านั้น
- คอลัมน์หนึ่งในชุดการฝึกอบรมต้องตั้งชื่อว่า "label" ขณะนี้ระบบยังไม่รองรับป้ายกำกับหลายรายการ
- คอลัมน์ป้ายกำกับต้องไม่มีค่า NULL หากคอลัมน์ป้ายกำกับมีค่า NULL การค้นหาจะไม่สําเร็จ
- คอลัมน์ฟีเจอร์ต้องไม่มาจาก user_id
- แต่ละแถวต้องแสดงถึงผู้ใช้ที่ไม่ซ้ำกัน 1 ราย แถวหนึ่งแสดงข้อมูลจากผู้ใช้ได้มากกว่า 1 ราย ปัญหานี้อาจเกิดขึ้นกับการรวมบางประเภท เช่น การรวมข้าม
- ผู้ใช้ต้องไม่อยู่ใน 2 แถวแยกกัน
- เนื่องด้วยเหตุผลด้านความเป็นส่วนตัว คุณจะใช้ได้เฉพาะตัวเลือกที่อธิบายไว้ในส่วนไวยากรณ์ ขณะนี้ระบบยังไม่รองรับตัวเลือกอื่นๆ ที่อาจพบในเอกสารประกอบของคําค้นหา BQML CREATE MODEL
ฟังก์ชันการประเมิน
ML.EVALUATE
ใช้ฟังก์ชัน ML.EVALUATE
เพื่อประเมินเมตริกรูปแบบ ฟังก์ชัน ML.EVALUATE
ใช้ได้กับโมเดลการถดถอยเชิงเส้นหรือการถดถอยเชิงลอจิสติก
SELECT
*
FROM ML.EVALUATE(MODEL `linear_model_test`);
ML.ROC_CURVE
ใช้ฟังก์ชัน ML.ROC_CURVE
เพื่อประเมินเมตริกเฉพาะของโลจิสติกส์รีเกรชัน ML.ROC_CURVE
จะประเมินเฉพาะโมเดลการถดถอยเชิงโลจิสติกเท่านั้น
SELECT
*
FROM ML.ROC_CURVE(MODEL `logistic_model_test`);
ฟังก์ชันการคาดการณ์
ML.PREDICT
คุณสามารถใช้ฟังก์ชัน ML.PREDICT
เพื่อคาดการณ์ผลลัพธ์โดยใช้โมเดล ผลลัพธ์ที่ได้โดยใช้ ML.PREDICT
จะได้รับการตรวจสอบความเป็นส่วนตัวเช่นเดียวกับผลลัพธ์อื่นๆ ใน Ads Data Hub ดูข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบความเป็นส่วนตัว
การถดถอยเชิงเส้น
/* This example outputs the average value for labels that the model predicted */
SELECT
AVG(predicted_label) AS average_predicted_label
FROM
ML.PREDICT(MODEL `linear_model_test`, TABLE tmp.linear_training_set);
การถดถอยแบบโลจิสติก
/* This example outputs the model's prediction and probabilities for said prediction over individual users. It groups by label and prediction, counting the number of users in each prediction */
SELECT
label,
predicted_label, /* one of the two input labels, depending on which label has the higher predicted probability */
COUNT(*) AS num /* a tally of users */
FROM
ML.PREDICT(MODEL `logistic_model_test`, TABLE tmp.logistic_training_set)
GROUP BY 1, 2;
ฟังก์ชันการตรวจสอบโมเดลและฟีเจอร์
ML.TRAINING_INFO
ฟังก์ชัน ML.TRAINING_INFO
ช่วยให้คุณดูข้อมูลเกี่ยวกับการวนซ้ำการฝึกโมเดลได้
SELECT
*
FROM ML.TRAINING_INFO(MODEL `logistic_model_test`);
ML.FEATURE_INFO
ฟังก์ชัน ML.FEATURE_INFO
ช่วยให้คุณดูข้อมูลเกี่ยวกับฟีเจอร์อินพุตที่ใช้ฝึกโมเดลได้
SELECT
*
FROM ML.FEATURE_INFO(MODEL `logistic_model_test`);
ML.WEIGHTS
ฟังก์ชัน ML.WEIGHTS
ช่วยให้คุณดูน้ำหนักพื้นฐานที่โมเดลใช้ในระหว่างการคาดการณ์ได้
SELECT
*
FROM ML.WEIGHTS(MODEL `linear_model_test`);
ตัวอย่าง
สร้างโมเดล
ตัวอย่างต่อไปนี้ทั้งหมดใช้natality
ตารางตัวอย่างเพื่อสาธิตวิธีสร้างโมเดล
ข้อมูลการฝึกใน Inner-Select (เชิงเส้น)
ตัวอย่างต่อไปนี้ใช้น้ำหนักแรกเกิด เพศ อายุครรภ์ อายุมารดา และเชื้อชาติของมารดาเพื่อคาดการณ์น้ำหนักแรกเกิดของทารก
CREATE MODEL `natality_model`
OPTIONS
(model_type='adh_linear_regression') AS
SELECT
weight_pounds as label,
is_male,
gestation_weeks,
mother_age,
CAST(mother_race AS string) AS mother_race
FROM
`bigquery-public-data.samples.natality`
WHERE
weight_pounds IS NOT NULL
ข้อมูลการฝึกอบรมใน Inner-Select (Logistic)
ตัวอย่างต่อไปนี้ใช้น้ำหนักแรกเกิด เพศ สัปดาห์ที่ปฏิสนธิ อายุของมารดา และเชื้อชาติของมารดาเพื่อคาดการณ์เพศของทารก
CREATE MODEL `natality_model`
OPTIONS
(model_type='adh_logistic_regression') AS
SELECT
weight_pounds,
is_male as label,
gestation_weeks,
mother_age,
CAST(mother_race AS string) AS mother_race
FROM
`bigquery-public-data.samples.natality`
WHERE
weight_pounds IS NOT NULL
การเปิดใช้งานกลุ่มเป้าหมาย
คุณสร้างการคาดการณ์ได้โดยใช้โมเดลการถดถอยเชิงเส้นที่มีอยู่ซึ่งมีน้ำหนักที่ทราบโดยไม่ต้องใช้ ML.PREDICT
และแม้จะไม่มีสิทธิ์เข้าถึงโมเดลก็ตาม ดูวิธีได้ที่การประมาณการถดถอยสําหรับการเปิดใช้งานกลุ่มเป้าหมายใน Codelab