การถดถอยเชิงเส้นและการถดถอยแบบโลจิสติกเป็นโมเดลแมชชีนเลิร์นนิงที่จะช่วยให้คุณสร้างการคาดการณ์ที่มีความหมายจากข้อมูลการโฆษณาได้
- การถดถอยเชิงเส้นจะสร้างฟังก์ชันที่จะปรับเส้นให้พอดีกับข้อมูลที่จะลดระยะห่างระหว่างจุดข้อมูลกับเส้นให้เหลือน้อยที่สุด ซึ่งจะทำให้สามารถใช้โมเดลนี้เพื่อคาดการณ์ค่าตัวเลขตามข้อมูลป้อนเข้า เช่น การคาดการณ์มูลค่าตลอดอายุการใช้งานของผู้ใช้ตามการซื้อ การโต้ตอบก่อนหน้านี้ ฯลฯ
- การถดถอยแบบโลจิสติกใช้สำหรับปัญหาการจัดประเภทแบบคาดการณ์ โมเดลอาจเป็น 1 ใน 2 ประเภทก็ได้ ขึ้นอยู่กับจำนวนตัวแปรที่คุณระบุ
- การถดถอยแบบไบนารีโลจิสติกจะตอบคำถามแบบ "ใช่/ไม่ใช่" เช่น แนวโน้มที่เหตุการณ์ Conversion จะเกิดขึ้น
- การถดถอยแบบโลจิสติกแบบมัลติคลาสใช้เพื่อคาดการณ์ค่าต่างๆ ที่เป็นไปได้ เช่น พิจารณาว่าลูกค้าเป็น "มูลค่าต่ำ" "มูลค่าปานกลาง" หรือ "มูลค่าสูง"
ทั้งการถดถอยเชิงเส้นและการถดถอยแบบโลจิสติกจะเรียนรู้จากข้อมูลการฝึกอบรม (ในกรณีนี้คือข้อมูลการโฆษณาของคุณ) ซึ่งมอบโมเดลการคาดการณ์เพื่อให้คุณตัดสินใจเกี่ยวกับการโฆษณาได้ โดยทั่วไปแล้ว การให้ข้อมูลเพิ่มเติมและการตรวจสอบให้แน่ใจว่าข้อมูลที่คุณระบุมีคุณภาพสูงจะช่วยปรับปรุงความแม่นยำของโมเดล ทั้ง 2 โมเดลจะทำงานได้ดีขึ้นเมื่อได้รับข้อมูลการฝึกที่อยู่ในกลุ่มแน่น
Differential Privacy
การถดถอยเชิงเส้นและด้านโลจิสติกส์ใช้ 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
จะควบคุมเปอร์เซ็นต์ของข้อมูลที่ใช้สำหรับการตรวจสอบได้
สร้างโมเดล
ระบุพารามิเตอร์และข้อมูลอินพุตสำหรับฝึกโมเดล
แนวทางปฏิบัติแนะนำ
ปัจจัยที่สำคัญที่สุดอย่างหนึ่งต่อคุณภาพของโมเดลคือขนาดของชุดการฝึก อย่างไรก็ตาม ขนาดและคุณภาพที่จะแลกกันจะแตกต่างกันไปตามปัญหาและปัจจัยที่ระบุไว้ด้านล่าง โปรดแชร์ประสบการณ์การใช้งานของคุณให้เราทราบ
- เราเห็นว่าความแม่นยำมากกว่า 0.70 สำหรับโมเดลการถดถอยแบบโลจิสติกส์ซึ่งสร้างจากชุดการฝึกที่มีผู้ใช้อย่างน้อย 100,000 คน
- เราพบว่า r-squared > 0.70 สำหรับโมเดลการถดถอยเชิงเส้นที่สร้างขึ้นจากชุดการฝึกที่มีผู้ใช้อย่างน้อย 800,000 คน
มีปัจจัยอื่นๆ ที่ทำให้คุณภาพของโมเดลลดลงได้
- โมเดลโลจิสติกส์ที่คลาสหนึ่งมีการนำเสนอมากกว่าอีกคลาสมาก โดยเฉพาะอย่างยิ่ง เมื่อป้ายกำกับหนึ่งมีผู้ใช้ชุดการฝึกน้อย การมีผู้ใช้ชุดการฝึกจำนวนมากที่มีป้ายกำกับอื่นๆ อาจไม่ช่วยมากนักสำหรับความแม่นยำของโมเดลในป้ายกำกับขนาดเล็ก เช่น ผู้ใช้ในชุดการฝึก 20,000 และ 1,000 คนสำหรับป้ายกำกับ 2 ป้ายแย่กว่า 10,000 และ 2,000
- ข้อมูลฟีเจอร์ที่ไม่ได้ให้สัญญาณที่ชัดเจนสำหรับป้ายกำกับ
- ข้อมูลดิบที่ต้องใช้วิศวกรรมฟีเจอร์ที่ครอบคลุมมากขึ้น ตัวอย่างเช่น บางช่องอาจมีค่าที่เป็นไปได้จำนวนมาก วิธีหนึ่งในการปรับปรุงข้อมูลประเภทนี้คือการแปลงค่าให้เป็นฟีเจอร์ที่มีหมวดหมู่หรือที่เก็บข้อมูลจำนวนน้อยกว่า
รวบรวมข้อมูลเชิงลึก
คุณสามารถเรียกใช้ฟังก์ชันเพื่อประเมินประสิทธิภาพของโมเดลเกี่ยวกับข้อมูลการตรวจสอบ ตรวจสอบฟีเจอร์และข้อมูลเกี่ยวกับการฝึกซ้ำ (เช่น น้ำหนักพื้นฐานที่โมเดลใช้ระหว่างการคาดการณ์) และคาดการณ์ข้อมูลที่ยังไม่ดู
สร้างคำสั่งรูปแบบการระบุแหล่งที่มา
คำสั่ง 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 |
15 | 8 |
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
- หากจำนวนรวมของฟีเจอร์การฝึกมากกว่า 10,000 รายการ ระบบจะใช้กลยุทธ์
batch_gradient_descent
- ในกรณีที่มีปัญหาเรื่องความเหมาะสม (จำนวนตัวอย่างในการฝึกน้อยกว่า 10 รายการ • จำนวนสมาชิกในเซ็ตทั้งหมด) จะใช้กลยุทธ์
batch_gradient_descent
- ระบบใช้กลยุทธ์
NORMAL_EQUATION
สำหรับกรณีอื่นๆ ทั้งหมด
"BATCH_GRADIENT_DESCENT
" (แบบโลจิสติกเท่านั้น) จะฝึกโมเดลโดยใช้วิธีการสืบทอดการไล่ระดับสีแบบกลุ่ม ซึ่งจะเพิ่มประสิทธิภาพฟังก์ชันการสูญเสียโดยใช้ฟังก์ชันการไล่ระดับสี
"NORMAL_EQUATION
" (เชิงเส้นเท่านั้น) คำนวณผลเฉลยกำลังสองน้อยที่สุดของโจทย์การถดถอยเชิงเส้นด้วยสูตรการวิเคราะห์ ไม่สามารถใช้สมการปกติในกรณีต่อไปนี้
- ระบุ
l1_reg
แล้ว - ระบุ
warm_start
แล้ว - จำนวนสมาชิกในเซ็ตของฟีเจอร์การฝึกรวมมากกว่า 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
สำหรับ "yes", FALSE
สำหรับ "ไม่" ค่าเริ่มต้นคือ TRUE
min_rel_progress
(ไม่บังคับ) การปรับปรุงการสูญเสียสัมพัทธ์ขั้นต่ำที่จำเป็นต่อการฝึกต่อเมื่อตั้งค่า EARLY_STOP
เป็น "จริง" เช่น ค่า 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
(ไม่บังคับ) ปรับขนาดคอลัมน์ฟีเจอร์ parameter_expression ที่ระบุแต่ละคอลัมน์ในช่วง 0 ถึง 1 กำหนดสูงสุดด้วย MIN
และ MAX
ในแถวทั้งหมด
ระบบจะใช้ MIN
และ MAX
เดียวกันในการคาดการณ์โดยอัตโนมัติ หากข้อมูลการคาดการณ์อยู่นอกช่วง MIN
ช่วง MAX
จะมีขีดจำกัดเป็น 0 หรือ 1
อาร์กิวเมนต์
อาร์เรย์ของ string_value
โดยที่ string_value
แต่ละรายการคือ STRING แทนชื่อคอลัมน์ที่จะเปลี่ยนรูปแบบ
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 รายการเท่านั้น
- ต้องตั้งชื่อคอลัมน์ 1 คอลัมน์ในชุดการฝึกเป็น "label" ขณะนี้ยังไม่รองรับป้ายกำกับหลายรายการ
- คอลัมน์ป้ายกำกับต้องไม่มีค่าว่าง หากคอลัมน์ป้ายกำกับมีค่าว่าง คุณจะค้นหาไม่สำเร็จ
- คอลัมน์ฟีเจอร์ทั้งหมดอาจไม่ได้มาจาก user_id
- แต่ละแถวต้องแสดงถึงผู้ใช้ที่ไม่ซ้ำ 1 รายเท่านั้น แถว 1 แถวแสดงข้อมูลจากผู้ใช้มากกว่า 1 รายไม่ได้ กรณีนี้อาจเกิดขึ้นกับการรวมบางอย่าง เช่น CROSS JOIN
- ผู้ใช้จะอยู่ใน 2 แถวแยกกันไม่ได้
- ด้วยเหตุผลด้านความเป็นส่วนตัว ใช้ได้เฉพาะตัวเลือกที่อธิบายไว้ในส่วนไวยากรณ์เท่านั้น ระบบยังไม่รองรับตัวเลือกอื่นๆ ที่อาจพบในเอกสารการค้นหาสร้างโมเดล BQML
ฟังก์ชันการประเมิน
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
เพื่อสาธิตวิธีสร้างโมเดล
ข้อมูลการฝึกในส่วนเลือกภายใน (แทรกเนื้อหาหลัก)
ตัวอย่างต่อไปนี้ใช้น้ำหนักแรกเกิด เพศ สัปดาห์การตั้งครรภ์ อายุของมารดา และเชื้อชาติของมารดาเพื่อคาดการณ์น้ำหนักของทารกในครรภ์
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
ข้อมูลการฝึกในส่วนที่เลือกภายใน (ลอจิสติกส์)
ตัวอย่างต่อไปนี้ใช้น้ำหนักแรกเกิด เพศ สัปดาห์การตั้งครรภ์ อายุของแม่ และเชื้อชาติของแม่เพื่อคาดการณ์เพศของเด็ก
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