ปัญญาประดิษฐ์

บ้าน AI คืออะไร? ความฉลาดของมนุษย์ ประวัติศาสตร์ภาษา ประวัติของตัวเลข ประวัติคอมพิวเตอร์ หุ่นยนต์ เปลี่ยนงาน ตัวอย่างของ AI ทฤษฎีความคิด การเขียนโปรแกรม JavaScript AI ในเบราว์เซอร์

คณิตศาสตร์

คณิตศาสตร์ ฟังก์ชันเชิงเส้น พีชคณิตเชิงเส้น เวกเตอร์ เมทริกซ์ เทนเซอร์

สถิติ

ความน่าจะเป็น สถิติ การกระจาย

กราฟิก

AI Plotter AI กราฟเชิงเส้น แผน AI กระจาย

AI Science

วิทยาศาสตร์ การรวบรวมข้อมูล การจัดกลุ่ม การถดถอย การเรียนรู้ของเครื่อง โครงข่ายประสาทเทียม

การเรียนรู้ของเครื่อง

Perceptrons การยอมรับ การฝึกอบรม การทดสอบ การเรียนรู้ คำศัพท์ Brain.js

TensorFlow

TFJS กวดวิชา TFJS Operations TFJS รุ่น TFJS Viewer

ตัวอย่าง 1

Ex1 Intro ข้อมูล Ex1 รุ่น Ex1 การฝึกอบรม Ex1

ตัวอย่าง 2

บทนำ Ex2 ข้อมูล Ex2 รุ่น Ex2 การฝึกอบรม Ex2

JS กราฟิก

บทนำ กราฟแคนวาส กราฟ Plotly.js กราฟ Chart.js กราฟ Google กราฟ D3.js

การถดถอยเชิงเส้น

การถดถอยเป็นวิธีการกำหนดความสัมพันธ์ระหว่างตัวแปรหนึ่ง ( y ) กับตัวแปรอื่น ( x )

ในสถิติ การถดถอยเชิงเส้นเป็นแนวทางในการสร้างแบบจำลองความสัมพันธ์เชิงเส้นระหว่าง y และ x

ใน AI การถดถอยเชิงเส้นคืออัลกอริธึมการเรียนรู้ของเครื่องภายใต้การดูแล

พล็อตกระจาย

นี่คือแผนภาพกระจาย (จากบทที่แล้ว):

4060801001201401606810121416
House Prices vs. SizeSquare MetersPrice in Millions

ตัวอย่าง

var xArray = [50,60,70,80,90,100,110,120,130,140,150];
var yArray = [7,8,8,9,9,9,10,11,14,14,15];

// Define Data
var data = [{
  x:xArray,
  y:yArray,
  mode: "markers"
}];

// Define Layout
var layout = {
  xaxis: {range: [40, 160], title: "Square Meters"},
  yaxis: {range: [5, 16], title: "Price in Millions"},
  title: "House Prices vs. Size"
};

Plotly.newPlot("myPlot", data, layout);

การทำนายค่า

จากข้อมูลที่กระจัดกระจายข้างต้น เราจะทำนายราคาในอนาคตได้อย่างไร

  • ใช้กราฟเชิงเส้นที่วาดด้วยมือ
  • จำลองความสัมพันธ์เชิงเส้น
  • จำลองการถดถอยเชิงเส้น

กราฟเชิงเส้น

นี่คือกราฟเชิงเส้นที่ทำนายราคาโดยพิจารณาจากราคาต่ำสุดและราคาสูงสุด:

4060801001201401606810121416
trace 0trace 1House Prices vs. SizeSquare MetersPrice in Millions

ตัวอย่าง

var xArray = [50,60,70,80,90,100,110,120,130,140,150];
var yArray = [7,8,8,9,9,9,9,10,11,14,14,15];

var data = [
  {x:xArray, y:yArray, mode:"markers"},
  {x:[50,150], y:[7,15], mode:"line"}
];

var layout = {
  xaxis: {range: [40, 160], title: "Square Meters"},
  yaxis: {range: [5, 16], title: "Price in Millions"},
  title: "House Prices vs. Size"
};

Plotly.newPlot("myPlot", data, layout);

จากบทที่แล้ว

กราฟเชิงเส้นสามารถเขียนได้เป็นy = ax + b

ที่ไหน:

  • yคือราคาที่เราต้องการทำนาย
  • aคือความชันของเส้นตรง
  • xคือค่าอินพุต
  • bคือการสกัดกั้น

ความสัมพันธ์เชิงเส้น

โมเดลนี้ทำนายราคาโดยใช้ความสัมพันธ์เชิงเส้นระหว่างราคาและขนาด:

4060801001201401606810121416
trace 0trace 1House Prices vs. SizeSquare MetersPrice in Millions

ตัวอย่าง

var xArray = [50,60,70,80,90,100,110,120,130,140,150];
var yArray = [7,8,8,9,9,9,10,11,14,14,15];

// Calculate Slope
var xSum = xArray.reduce(function(a, b){return a + b;}, 0);
var ySum = yArray.reduce(function(a, b){return a + b;}, 0);
var slope = ySum / xSum;

// Generate values
var xValues = [];
var yValues = [];
for (var x = 50; x <= 150; x += 1) {
  xValues.push(x);
  yValues.push(x * slope);
}

ในตัวอย่างข้างต้น ความชันคือค่าเฉลี่ยที่คำนวณได้ และค่าตัดขวาง = 0


การใช้ฟังก์ชันการถดถอยเชิงเส้น

โมเดลนี้ทำนายราคาโดยใช้ฟังก์ชันการถดถอยเชิงเส้น:

4060801001201401606810121416
trace 0trace 1House Prices vs. SizeSquare MetersPrice in Millions

ตัวอย่าง

var xArray = [50,60,70,80,90,100,110,120,130,140,150];
var yArray = [7,8,8,9,9,9,10,11,14,14,15];

// Calculate Sums
var xSum=0, ySum=0 , xxSum=0, xySum=0;
var count = xArray.length;
for (var i = 0, len = count; i < count; i++) {
  xSum += xArray[i];
  ySum += yArray[i];
  xxSum += xArray[i] * xArray[i];
  xySum += xArray[i] * yArray[i];
}

// Calculate slope and intercept
var slope = (count * xySum - xSum * ySum) / (count * xxSum - xSum * xSum);
var intercept = (ySum / count) - (slope * xSum) / count;

// Generate values
var xValues = [];
var yValues = [];
for (var x = 50; x <= 150; x += 1) {
  xValues.push(x);
  yValues.push(x * slope + intercept);
}