<?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: Suraphat</title>
    <description>The latest articles on DEV Community by Suraphat (@suraphat).</description>
    <link>https://dev.to/suraphat</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%2F1420556%2F371fa03f-67c6-4c46-b69d-a39ad9977440.jpg</url>
      <title>DEV Community: Suraphat</title>
      <link>https://dev.to/suraphat</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/suraphat"/>
    <language>en</language>
    <item>
      <title>สร้าง Multiple Linear Regression เพื่อใช้หา Student Performance</title>
      <dc:creator>Suraphat</dc:creator>
      <pubDate>Fri, 12 Apr 2024 09:05:38 +0000</pubDate>
      <link>https://dev.to/suraphat/sraang-multiple-linear-regression-ephuueaichhaa-student-performance-3g81</link>
      <guid>https://dev.to/suraphat/sraang-multiple-linear-regression-ephuueaichhaa-student-performance-3g81</guid>
      <description>&lt;p&gt;สมมุติว่าถ้าเกิดเราอยากจะสร้าง ชุดข้อมูลของนักเรียนในโรงเรียนของตัวเองนั้น เพื่อมาดูว่าควรจะมาปรับอะไรในโรงเรียนของตัวเองเพื่อสอดคล้องต่อสิ่งที่เด็กนักเรียนต้องการเนี่ย หนึ่งในวิธีที่ง่ายและเหมาะสมที่ใช้ คือ Multiple Linear Regression&lt;/p&gt;

&lt;p&gt;บทความนี้ เราจะมาดู Multiple Linear Regression ใน Python เราจะใช้ Google Colab ในการรันโค้ด โดย Data ที่จะนำมาใช้ก็คือ ข้อมูลของนักเรียน 10,000 รายการโดยแต่ละบันทึกประกอบด้วยข้อมูลเกี่ยวกับตัวทำนายต่างๆ และดัชนีประสิทธิภาพ&lt;/p&gt;

&lt;p&gt;โดยมีข้อมูลตั้งต้นดังนี้ &lt;br&gt;
Hours Studied: จำนวนชั่วโมงทั้งหมดที่ใช้ในการศึกษาของนักเรียนแต่ละคน&lt;br&gt;
Previous Scores: คะแนนที่นักเรียนได้รับในการทดสอบครั้งก่อน&lt;br&gt;
Extracurricular Activities: ไม่ว่านักเรียนจะมีส่วนร่วมในกิจกรรมนอกหลักสูตรหรือไม่ (Yes or No)&lt;br&gt;
Sleep Hours: จำนวนชั่วโมงการนอนหลับเฉลี่ยที่นักเรียนมีต่อวัน&lt;br&gt;
Sample Question Papers Practiced: จำนวนตัวอย่างข้อสอบที่นักเรียนฝึก&lt;/p&gt;
&lt;h2&gt;
  
  
  ทำการนำเข้าข้อมูล และ Import Libraries ที่เกี่ยวข้อง
&lt;/h2&gt;

&lt;p&gt;นี่คือ ข้อมูล และ Libraries ที่เกี่ยวข้องทำการ import เข้ามา&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import numpy as np 
import pandas as pd 

import os
for dirname, _, filenames in os.walk('/kaggle/input'):
    for filename in filenames:
        print(os.path.join(dirname, filename))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ตัวอย่างของข้อความเมื่อ run ออกมา&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/kaggle/input/student-performance-multiple-linear-regression/Student_Performance.csv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ทำการสร้าง Multiple Linear Regression
&lt;/h2&gt;

&lt;p&gt;เริ่มจากการ Import Libraries เข้ามาก่อน&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&gt;



&lt;p&gt;ทำการอ่านข้อมูลจากไฟล์ CSV โดยใช้ pandas.read_csv() และเก็บข้อมูลไว้ใน DataFrame ที่ชื่อว่า "df"&lt;/p&gt;

&lt;p&gt;&lt;code&gt;df = pd.read_csv("/kaggle/input/student-performance-multiple-linear-regression/Student_Performance.csv")&lt;br&gt;
&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ทำการแบ่งข้อมูลใน DataFrame "df" เป็น input variables (x) และ output 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;x = df.iloc[:,:-1].values
y = df.iloc[:,-1].values 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ทำการแปลงข้อมูลที่เป็น categorical ในคอลัมน์ที่ 2 โดยใช้ LabelEncoder เพื่อให้เป็นข้อมูลที่เหมาะสมสำหรับการนำเข้าโมเดล Linear Regression&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.preprocessing import LabelEncoder
labelEncoder_X = LabelEncoder()
x[:,2] = labelEncoder_X.fit_transform(x[:,2])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ทำการลบคอลัมน์แรกออกจากตัวแปร x &lt;br&gt;
&lt;code&gt;x = x[:,1:]&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ทำการ import function train_test_split จากโมดูล sklearn.model_selection เพื่อทำการแบ่งข้อมูลออกเป็นชุด train และ test โดยสุ่มข้อมูลออกมาตามสัดส่วนที่กำหนด&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.model_selection import train_test_split
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size = 0.2, random_state = 0)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ต่อไปนำเข้าคลาส LinearRegression จากโมดูล sklearn.linear_model เพื่อใช้ในการสร้างโมเดล Linear Regression&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.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(x_train, y_train)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ต่อไปก็ทำนายผลลัพธ์&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 = regressor.predict(x_test)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;ลำดับต่อไปก็นำเข้าฟังก์ชัน mean_squared_error จากโมดูล sklearn.metrics เพื่อใช้ในการคำนวณค่า Mean Squared Error (MSE)&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.metrics import mean_squared_error
mean_squared_error(y_test, y_pred)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;จะได้ค่าออกมาเป็น&lt;br&gt;
&lt;code&gt;58.78022231198216&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;ต่อไปก็จะทำการให้แสดงข้อมูลของ data ออกมา ดังนี้&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df.head()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;นี่คือตารางเมื่อ run ออกมาแล้ว จะได้ผลออกมาตามนี้&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqbu068xqot7t6uq47kx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyqbu068xqot7t6uq47kx.png" alt="Image description" width="773" height="167"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ลองทำการ เขียนกราฟออกมา เพื่อจะได้เห็นชัดมากขึ้น&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import seaborn as sns

prev_score = df['Previous Scores']
per = df['Performance Index']

plt.figure(figsize=(10, 6))
sns.scatterplot(x=prev_score, y=per, color='blue', label='Data Points')

sns.regplot(x=prev_score, y=per, scatter=False, color='red', label='Mutliple Linear Regression')

plt.xlabel('Previous Score')
plt.ylabel('Performance Index')
plt.title('Relation between Previous Score and Performance Index with Linear Regression Line')

plt.legend()
plt.show()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;รูปที่ได้เมื่อ run ออกมาแล้ว&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2sivicsakbk2q11umz1j.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2sivicsakbk2q11umz1j.png" alt="Image description" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  สรุปผล
&lt;/h2&gt;

&lt;p&gt;เราสามารถทำให้รู้ได้ว่า ในการทำ Multiple Linear Regression และ visualization ของผลลัพธ์โมเดลที่ได้ โดยใช้ข้อมูลจาก CSV file นี้ จากการทำงานของโค้ดนี้ช่วยให้เราสามารถวิเคราะห์ความสัมพันธ์ระหว่างตัวแปรต้นและตัวแปรตามของข้อมูลได้อย่างมีประสิทธิภาพและตรงไปตามวัตถุประสงค์ที่ต้องการ&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
