<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Kejkaew Thanasuan</title>
    <description>The latest articles on DEV Community by Kejkaew Thanasuan (@ketnas).</description>
    <link>https://dev.to/ketnas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1049215%2Fbf0cd41d-d890-4346-bc0b-9b1d5e8b920b.jpeg</url>
      <title>DEV Community: Kejkaew Thanasuan</title>
      <link>https://dev.to/ketnas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ketnas"/>
    <language>en</language>
    <item>
      <title>สร้าง Simple Linear Regression model โดยใช้ Python</title>
      <dc:creator>Kejkaew Thanasuan</dc:creator>
      <pubDate>Wed, 22 Mar 2023 14:35:57 +0000</pubDate>
      <link>https://dev.to/ketnas/sraang-simple-linear-regression-model-odyaich-python-3ofo</link>
      <guid>https://dev.to/ketnas/sraang-simple-linear-regression-model-odyaich-python-3ofo</guid>
      <description>&lt;p&gt;ถ้าเราจะต้องทำนายค่าจำนวนจริง เช่น ราคาหุ้นวันพรุ่งนี้ ยอดขายของปีหน้า หรือจำนวนสินค้าที่เราจะขายได้ในอนาคต หนึ่งในวิธีที่ง่ายและเหมาะสมที่ใช้สำหรับการทำนายข้อมูลแบบนี้ คือ การใช้ Linear Regression &lt;/p&gt;

&lt;p&gt;บทความนี้ เราจะมาดู Linear Regression ใน Python กัน เราจะใช้ Google Colab ในการรันโค้ด โดย dataset ที่เราจะใช้เป็นตัวอย่างคือ mtcars ซึ่งเป็นข้อมูลรถ ได้มาจาก 1974 Motor Trend US magazine&lt;/p&gt;

&lt;p&gt;ข้อมูลประกอบไปด้วย 32 แถว นั้นคือมีรถทั้งหมด 32 ประเภท (เป็นรถระหว่างปี 1973 - 1974)&lt;br&gt;
ข้อมูลประกอบด้วย 11 columns ดังนี้&lt;/p&gt;

&lt;p&gt;[, 1]   &lt;strong&gt;mpg&lt;/strong&gt;         Miles/(US) gallon&lt;br&gt;
[, 2]   &lt;strong&gt;cyl&lt;/strong&gt;         Number of cylinders&lt;br&gt;
[, 3]   &lt;strong&gt;disp&lt;/strong&gt;    Displacement (cu.in.)&lt;br&gt;
[, 4]   &lt;strong&gt;hp&lt;/strong&gt;          Gross horsepower&lt;br&gt;
[, 5]   &lt;strong&gt;drat&lt;/strong&gt;    Rear axle ratio&lt;br&gt;
[, 6]   &lt;strong&gt;wt&lt;/strong&gt;          Weight (1000 lbs)&lt;br&gt;
[, 7]   &lt;strong&gt;qsec&lt;/strong&gt;    1/4 mile time&lt;br&gt;
[, 8]   &lt;strong&gt;vs&lt;/strong&gt;          Engine (0 = V-shaped, 1 = straight)&lt;br&gt;
[, 9]   &lt;strong&gt;am&lt;/strong&gt;          Transmission (0 = automatic, 1 = manual)&lt;br&gt;
[,10]   &lt;strong&gt;gear&lt;/strong&gt;    Number of forward gears&lt;/p&gt;
&lt;h3&gt;
  
  
  ขั้นตอนที่ 1 นำเข้าข้อมูล mtcars
&lt;/h3&gt;

&lt;p&gt;ตัวอย่างของข้อมูลสามารถ copy code และโหลดได้ตามนี้เลย&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas as pd
url = "https://raw.githubusercontent.com/ketnas/homework/main/AI/mtcars.csv"
mtcars = pd.read_csv(url, index_col=0)
mtcars.head()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ตัวอย่างผลที่ได้จาก code&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5rc5kgy6ahpdpbzw0tk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5rc5kgy6ahpdpbzw0tk.png" alt="ตัวอย่างข้อมูล mtcars" width="800" height="273"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;
  
  
  ขั้นตอนที่ 2 จัดการข้อมูลให้เหมาะสม และทำการวิเคราะห์ข้อมูลเบื้องต้น
&lt;/h3&gt;

&lt;p&gt;ในตัวอย่างนี้เราจะหา Correlation และทำการวาดกราฟเพื่อดูความสัมพันธ์ระหว่าง weight และ mpg&lt;/p&gt;
&lt;h4&gt;
  
  
  อย่างแรก เราจะทำการหา Correlation Matrix ของข้อมูลทั้งหมดก่อน
&lt;/h4&gt;

&lt;p&gt;&lt;code&gt;mtcars.corr()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ผลที่ได้&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fksoilo8dxqk4nmnp59o7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fksoilo8dxqk4nmnp59o7.png" alt="correlation mtcars" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ทดลอง plot graph ดูความสัมพันธ์ระหว่าง weight และ mpg โดยใช้ matplotlib library&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import matplotlib.pyplot as plt

plt.scatter(mtcars.wt,mtcars.mpg)
plt.xlabel("weight")
plt.ylabel("mpg")
print(mtcars.wt.corr(mtcars.mpg))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;รูปกราฟที่ได้และค่า correlation&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fp9rpks71oicw3wm4e0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fp9rpks71oicw3wm4e0.png" alt="correlation and plot" width="800" height="568"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  ต่อมา เราจะทำการแยกค่า Independent variable (X) และ Dependent variable (y)
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;y = mtcars['mpg']
X = mtcars[['wt']]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;กำหนดให้ y เป็นค่าของ mpg และ X เป็นค่าของ wt (weight)&lt;/p&gt;

&lt;h3&gt;
  
  
  ขั้นตอนที่ 3 ทำการสร้าง Simple linear regression model
&lt;/h3&gt;

&lt;p&gt;เราจะใช้ sklearn library ใน Python สำหรับการสร้าง model&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# wt vs mpg

from sklearn import linear_model as lm

model = lm.LinearRegression()
results = model.fit(X,y)

print(model.intercept_, model.coef_)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ผลที่ได้จะเป็นค่า Intercept และ Coefficient ของ regression model&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo2y0o6k7s6fjodddg5pd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo2y0o6k7s6fjodddg5pd.png" alt="intercept and coefficient" width="606" height="90"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;จะได้ว่า ค่า Intercept = 37.285 และค่า Coefficient หน้าตัวแปร wt = -5.344&lt;/p&gt;

&lt;h3&gt;
  
  
  ขั้นตอนที่ 4 ประเมินประสิทธิภาพของ regression model ที่เราสร้างมา
&lt;/h3&gt;

&lt;p&gt;ทำการคำนวณค่า Error&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;y_pred = model.predict(X)
y_error = y - y_pred
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ลองสร้างกราฟระหว่าง wt และ mpg  พร้อมทั้งแสดง trend line ที่มีสีแดงด้วย&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;plt.scatter(X,y)
plt.xlabel("weight")
plt.ylabel("mpg")
plt.plot(X,y_pred,color='red')
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;จะได้ผลแบบนี้&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkej2s4az1jy5snmulroo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkej2s4az1jy5snmulroo.png" alt="plot and trend line" width="800" height="556"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ทำการหาค่า Root-mean square error (RMSE) จะได้ ค่า RMSE = 2.468&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import math
import numpy as np
math.sqrt(np.mean(y_error**2))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz18lnujqwp0g0v0hivrf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz18lnujqwp0g0v0hivrf.png" alt="rmse" width="364" height="84"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ขั้นตอนที่ 5 ทดลองปรับปรุง regression model
&lt;/h3&gt;

&lt;p&gt;ในขั้นตอนนี้ เราจะลองปรับ Intercept ของ regression model ให้เป็น 0 โดยทำการกำหนด fit_intercept = False&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from sklearn import linear_model as lm

model_0 = lm.LinearRegression(fit_intercept=False)
results = model_0.fit(X,y)

print(model_0.intercept_, model_0.coef_)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;จะได้ผลลัพธ์เป็น&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlzub2q9t1mu3shl27un.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlzub2q9t1mu3shl27un.png" alt="coeffient" width="322" height="70"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ทำการ plot กราฟ&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;y_pred = model_0.predict(X)
y_error = y - y_pred

plt.scatter(X,y)
plt.xlabel("weight")
plt.ylabel("mpg")
plt.plot(X,y_pred,color='red')

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;รูปกราฟ&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa785q87g8llfodhgr8qk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa785q87g8llfodhgr8qk.png" alt="plot" width="800" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;และหาค่า RMSE จะได้ ว่าค่า RMSE = 11.091&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;math.sqrt(np.mean(y_error**2))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1nufnp8pg9i38lra0rl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1nufnp8pg9i38lra0rl.png" alt="RMSE" width="392" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;จากตัวอย่างนี้ เราจะได้ว่า ถ้าต้องการสร้าง regression model เพื่อทำนาย mpg โดยใช้ weight เราจะได้สมการ regression model ที่ดีที่สุดคือ mpg = 37.285 - (5.344 * weight) เนื่องจากมีค่า RMSE ที่น้อยกว่าอีกสมการที่เรากำหนดให้ intercept = 0 &lt;/p&gt;

&lt;h2&gt;
  
  
  ตัวอย่างเพิ่มเติม
&lt;/h2&gt;

&lt;p&gt;เราจะลองใช้ตัวอย่างข้อมูลอื่นบ้าง เช่น ข้อมูลของดอกไม้ไอริส (iris dataset) ซึ่งเป็นข้อมูลอีกอันที่ได้รับความนิยมในการทดลองทำ Regression เช่นกัน &lt;/p&gt;

&lt;p&gt;ข้อมูล iris ประกอบด้วย 150 แถว และมี 4 คอลัมภ์ โดยแต่ละคอลัมภ์คือ &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;SepalLengthCm → ความยาวกลีบเลี้ยง&lt;/li&gt;
&lt;li&gt;SepalWidthCm → ความกว้างกลีบเลี้ยง&lt;/li&gt;
&lt;li&gt;PetalLengthCm → ความยาวกลีบดอก&lt;/li&gt;
&lt;li&gt;PetalWidthCm → ความกว้างกลีบดอก&lt;/li&gt;
&lt;li&gt;Species → ชนิดของดอกไม้ (Setosa, Versicolor, Virginica)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  ขั้นตอนที่ 1 นำเข้าข้อมูล iris
&lt;/h3&gt;

&lt;p&gt;ตัวอย่างของข้อมูลสามารถ copy code และโหลดได้ตามนี้เลย&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import pandas as pd
url = "https://raw.githubusercontent.com/ketnas/homework/refs/heads/main/AI/Iris.csv"
iris = pd.read_csv(url, index_col=0)
iris.head()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ตัวอย่างผลที่ได้จาก code&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4u2vheh330gjt568f2i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fo4u2vheh330gjt568f2i.png" alt="ตัวอย่างข้อมูล iris" width="605" height="227"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ขั้นตอนที่ 2 จัดการข้อมูลให้เหมาะสม และทำการวิเคราะห์ข้อมูลเบื้องต้น
&lt;/h3&gt;

&lt;p&gt;ในตัวอย่างนี้เราจะหา Correlation และทำการวาดกราฟเพื่อดูความสัมพันธ์ระหว่าง PetalLengthCm และ PetalWidthCm&lt;/p&gt;

&lt;p&gt;อย่างแรก เราจะทำการหา Correlation Matrix ของข้อมูลทั้งหมดก่อน แต่เนื่องจากคอลัมภ์ Species ไม่ได้เป็นค่าตัวเลข ดังนั้นไม่สามารถคำนวนค่า correlation ของคอลัมภ์นั้นได้ เราเลยใช้แค่ 4 คอลัมภ์แรกแทน&lt;/p&gt;

&lt;p&gt;&lt;code&gt;iris.iloc[:, :4].corr()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ผลที่ได้&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw81bwphapwiogxe31cn8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw81bwphapwiogxe31cn8.png" alt="Correlation Matrix ของ iris dataset" width="800" height="216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ทดลอง plot graph ดูความสัมพันธ์ระหว่าง PetalLengthCm และ PetalWidthCm โดยใช้ matplotlib library&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import matplotlib.pyplot as plt

plt.scatter(iris.PetalLengthCm,iris.PetalWidthCm)
plt.xlabel("Length (cm)")
plt.ylabel("Width (cm)")
plt.show()
print(iris.PetalLengthCm.corr(iris.PetalWidthCm))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;รูปกราฟที่ได้และค่า correlation&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr2z3z5zbjnt4uukyqrc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwr2z3z5zbjnt4uukyqrc.png" alt="Plot graph" width="800" height="601"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ต่อมา เราจะทำการแยกค่า Independent variable (x) และ Dependent variable (y)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;y = iris["PetalWidthCm"]
x = iris[["PetalLengthCm"]]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;กำหนดให้ y เป็นค่าของ PetalWidthCm และ x เป็นค่าของ PetalLengthCm&lt;/p&gt;

&lt;h3&gt;
  
  
  ขั้นตอนที่ 3 ทำการสร้าง Simple linear regression model
&lt;/h3&gt;

&lt;p&gt;เราจะใช้ sklearn library ใน Python สำหรับการสร้าง model&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from sklearn import linear_model as lm

model = lm.LinearRegression()
results = model.fit(x,y)

print(model.intercept_, model.coef_)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ผลที่ได้จะเป็นค่า Intercept และ Coefficient ของ regression model&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzv95wan57o3lej50iey.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkzv95wan57o3lej50iey.png" alt="Intercept and coefficient" width="586" height="76"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;จะได้ว่า ค่า Intercept = -0.367 และค่า Coefficient หน้าตัวแปร PetalLengthCm = 0.416&lt;/p&gt;

&lt;h3&gt;
  
  
  ขั้นตอนที่ 4 ประเมินประสิทธิภาพของ regression model ที่เราสร้างมา
&lt;/h3&gt;

&lt;p&gt;ทำการคำนวณค่า Error เพื่อนำไปใช่ต่อ&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;y_pred = model.predict(x)
y_error = y - y_pred
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ลองสร้างกราฟระหว่าง PetalLengthCm และ PetalWidthCm พร้อมทั้งแสดง trend line ที่มีสีแดงด้วย&lt;/p&gt;

&lt;p&gt;ผลที่ได้&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faqtq80h4fpaycolrnits.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Faqtq80h4fpaycolrnits.png" alt="trendline" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;คำนวนหาค่า Root-mean square error (RMSE) จะได้ ค่า RMSE = 0.206&lt;/p&gt;

&lt;p&gt;จากตัวอย่างจะได้ว่า ถ้าเราต้องการสร้างสมการแสดงความสัมพันธ์ระหว่าง PetalLengthCm และ PetalWidthCm เราจะได้ความสัมพันธ์แบบสมการเส้นตรงดังนี้ PetalWidthCm = -0.367 + (0.416*PetalLengthCm)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;สรุปผล&lt;/strong&gt;&lt;br&gt;
สำหรับบทความนี้ เราได้แสดงตัวอย่างการทำ Linear Regression จากข้อมูล 2 ชุด ได้แก่ข้อมูลของ mtcars และ iris เราสามารถลองเปลี่ยนตัวแปรเพื่อสร้างสมการ Linear Regression แบบอื่นๆ อีกได้ด้วยตัวเอง ลองทำกันดูนะคะ++&lt;/p&gt;

&lt;p&gt;🎉🎉🎉&lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
