<?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>Forem: Nattarika</title>
    <description>The latest articles on Forem by Nattarika (@_earn_).</description>
    <link>https://forem.com/_earn_</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%2F1427754%2Fd82708d8-4727-4aaf-b1a6-3c54e39c11b3.jpg</url>
      <title>Forem: Nattarika</title>
      <link>https://forem.com/_earn_</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/_earn_"/>
    <language>en</language>
    <item>
      <title>การทำนายโรคหลอดเลือดในสมองโดยใช้ XGBoost ใน python</title>
      <dc:creator>Nattarika</dc:creator>
      <pubDate>Tue, 16 Apr 2024 16:00:10 +0000</pubDate>
      <link>https://forem.com/_earn_/kaarthamnaayorkhhldeluuedainsmngodyaich-xgboost-ain-python-3dio</link>
      <guid>https://forem.com/_earn_/kaarthamnaayorkhhldeluuedainsmngodyaich-xgboost-ain-python-3dio</guid>
      <description>&lt;p&gt;บทความบน kaggle ได้นำเสนอวิธีการทำนายแนวโน้มของโรคหลอดเลือดในสมอง ซึ่งโรคหลอดเลือดในสมองเป็นสาเหตุของการเสียชีวิตที่สูงเป็นอันดับที่สองจากทั่วโลก โดยใช้ชุดข้อมูลขององค์กรอนามัยโลก(WHO) มาทำนาย เริ่มต้นจากการนำข้อมูลที่จำเป็นสำหรับการจัดการข้อมูลเข้า python และดำเนินการตามขั้นตอนการประมวลผล แกนหลักที่นำมาประยุกต์ใช้โมเดลในการเรียนรู้ขั้นสูงคือ XGBoost&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;การทำนายโดยใช้ XGBoost&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;ทำการ import ข้อมูล dataset จาก github&lt;/strong&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 pandas as pd
url = 'https://raw.githubusercontent.com/danielchristopher513/Brain_Stroke_Prediction_Using_Machine_Learning/main/healthcare-dataset-stroke-data.csv'
StrokeData = pd.read_csv(url)
StrokeData.head()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fum7rc01rlea6zi39jknm.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%2Fum7rc01rlea6zi39jknm.png" alt="Image description" width="800" height="134"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ฟังก์ชัน.info()&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ฟังก์ชัน .info() จะแสดงข้อมูลพื้นฐานของ Dataset ที่เราเลือกมา เช่น จำนวน columns ชนิดของข้อมูล จำนวนข้อมูลที่ไม่ใช่ค่าว่าง(null) และหน่วยความจำ&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&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%2F27ss6sompkwc9bq41ism.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%2F27ss6sompkwc9bq41ism.png" alt="Image description" width="751" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ฟังก์ชัน.describe()&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ฟังก์ชัน.describe() จะแสดงข้อมูลสถิติเชิงลึกของข้อมูลที่เป็นตัวเลขใน Dataset เช่น ค่าเฉลี่ย ส่วนเบี่ยงเบนมาตรฐาน เป็นต้น&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&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%2F80fqgoljfyf9020d0sdr.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%2F80fqgoljfyf9020d0sdr.png" alt="Image description" width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ฟังก์ชัน.isnull() และ .sum()&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ฟังก์ชัน.isnull() ฟังก์ชันที่ใช้ตรวจสอบค่าที่หายไปของ Dataset โดยจะใช้ True แทนค่าที่หายไปและใช้ False แทนค่าที่มีอยู่&lt;br&gt;
ฟังก์ชัน.sum() ฟังก์ชันที่จะรวมค่าของ True ในแต่ละ columns เพื่อให้รู้ว่าในแต่ละ columns มีจำนวนค่าที่หายไปเท่าไหร่&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;StrokeData.isnull().sum()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Ft63fkdfu4nzm86rddgrz.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%2Ft63fkdfu4nzm86rddgrz.png" alt="Image description" width="306" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ฟังก์ชัน.duplicated() และ .sum()&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ฟังก์ชัน.duplicated() ฟังก์ชันที่ใช้ตรวจสอบค่าที่ซ้ำกันใน Dataset โดยจะใช้ True แทนค่าที่ซ้ำกันและใช้ False แทนค่าที่ไม่ซ้ำกัน&lt;br&gt;
ฟังก์ชัน.sum() ฟังก์ชันที่จะรวมค่าของ True ในแต่ละ columns เพื่อให้รู้ว่าในแต่ละ columns มีจำนวนค่าที่ซ้ำกันไปเท่าไหร่&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;StrokeData.duplicated().sum()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Ff94gumke0vlqjurhof0r.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%2Ff94gumke0vlqjurhof0r.png" alt="Image description" width="21" height="39"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;สร้างแผนที่ความร้อน&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;import seaborn ใช้สร้างกราฟและ visualization เพื่อใช้วิเคราะห์ข้อมูล
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;import matplotlib.pyplot ใช้สร้างกราฟและภาพถ่าย
&lt;/li&gt;
&lt;/ul&gt;

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

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;import LabelEncoder และ StandardScaler ทั้งสองเป็น class ของ sklearn.preprocessing โดยใช้แปลงข้อมูลแบบหมวดหมู่เป็นตัวเลขและปรับข้อมูลให้มี mean เท่ากับ 0 และ standard deviation เท่ากับ 1 เพื่อนำข้อมูลเข้าสู่ขั้นตอนการฝึกโมเดล
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import StandardScaler
label_encoder = LabelEncoder()
scaler= StandardScaler()
df = StrokeData.apply(lambda x: label_encoder.fit_transform(x) if x.dtype == 'O' else x)
Stroke_dataup = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;คำนวณค่าของเมทริกซ์ใน DataFrame โดยใช้เมทริกซ์ความสัมพันธ์ของ pandas (cov()) และเปลี่ยนทุกค่าในเมทริกซ์ให้เป็นค่าบวกด้วย abs()
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cov_matrix = abs(Stroke_dataup.cov())
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;กำหนดรูปภาพให้มีขนาด 10x10
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;plt.figure(figsize=(10, 10))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;สร้างแผนที่ความร้อนจาก cov_matrix โดยกำหนดให้แสดงค่าตัวเลขด้วย annot=True และใช้สี cmap='copper' ในการแสดงผล ซึ่งกำหนดรูปแบบของตัวเลขในด้วย fmt='.2f'
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sns.heatmap(cov_matrix, annot=True, cmap='copper', fmt='.2f', linewidths=.5)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;กำหนดหัวข้อของแผนที่ความร้อนและแสดงกราฟของแปนที่ความร้อน
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;plt.title('Covariance Matrix Heatmap')
plt.show()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fcdk9wnm15kspxpn7mxr5.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%2Fcdk9wnm15kspxpn7mxr5.png" alt="Image description" width="800" height="509"&gt;&lt;/a&gt;&lt;br&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%2Fcpfkxb9kpqrper8vp77z.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%2Fcpfkxb9kpqrper8vp77z.png" alt="Image description" width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;ผลลัพธ์ที่ได้คือแผนที่ความร้อนแสดงความสัมพันธ์ระหว่างคู่ของคุณลักษณะ (features) ใน Dataset ซึ่งสามารถช่วยในการวิเคราะห์และเข้าใจความสัมพันธ์ระหว่างข้อมูลได้ง่ายขึ้น เช่น สีสว่างแสดงถึงความสัมพันธ์บวกและสีเข้มแสดงถึงความสัมพันธ์ลบ ตามค่าที่แสดงในแต่ละช่องของแผนที่ความร้อน&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Drop&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ปรับข้อมูลใน DataFrame โดยกำหนดให้ลบคอลัมน์ที่มีชื่อว่า 'id' และ 'gender' ออกจาก DataFrame โดยใช้ .drop() กับพารามิเตอร์ axis=1 เพื่อกำหนดว่าจะลบคอลัมน์ไหน เพื่อไม่ให้การเปลี่ยนแปลงนี้ส่งผลต่อ DataFrame และทำการเก็บผลลัพธ์ใน DataFrame&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df=df.drop([ 'id', 'gender' ], axis=1)
X_StrokeData=df.drop(['stroke'], axis=1)
Y_StrokeData=df['stroke']
X_StrokeData = pd.DataFrame(scaler.fit_transform(X_StrokeData), columns=X_StrokeData.columns)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;XGBoost&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;ใช้ XGBoost และ cross-validation เพื่อประเมินประสิทธิภาพของโมเดลโดย&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;โหลดไลบรารี XGBoost &lt;/li&gt;
&lt;li&gt;โหลดฟังก์ชัน KFold และ cross_val_score จากไลบรารี sklearn.model_selection เพื่อทำ Cross-validation&lt;/li&gt;
&lt;li&gt;กำหนดโมเดล XGBoost โดยใช้ XGBClassifier และกำหนดพารามิเตอร์ต่าง ๆ&lt;/li&gt;
&lt;li&gt;กำหนด KFold เพื่อทำ Cross-validation โดยกำหนดจำนวน Split และค่า random_state&lt;/li&gt;
&lt;li&gt;ใช้ cross_val_score เพื่อประเมินประสิทธิภาพของโมเดล
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;import xgboost as xgb
from sklearn.model_selection import KFold, cross_val_score

model = xgb.XGBClassifier(
    n_estimators=100,
    max_depth=5,
    learning_rate=0.2,
    objective='binary:logistic',
    random_state=42
)

kf = KFold(n_splits=4, shuffle=True, random_state=42)
cv_results = cross_val_score(model, X_StrokeData, Y_StrokeData, cv=kf, scoring='accuracy')
accuracy = cv_results
average_accuracy = cv_results.mean()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;คำนวณความแม่นยำของแต่ละรอบ และความแม่นยำเฉลี่ยของทั้งหมด&lt;/li&gt;
&lt;li&gt;แสดงผลลัพธ์ความแม่นยำในแต่ละรอบ และความแม่นยำเฉลี่ยทั้งหมด
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;print("Accuracy for each fold:", accuracy)
print("Average Accuracy across all folds:", average_accuracy)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fi838zdduvgenf44dw1lu.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%2Fi838zdduvgenf44dw1lu.png" alt="Image description" width="800" height="46"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;ถ้าเราลองลบคอลัมน์ให้เหลือแค่ 5 คอลัมน์จะเกิดอะไรขึ้น&lt;br&gt;
&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;StrokeData = StrokeData[['age', 'hypertension',
       'heart_disease','avg_glucose_level','stroke']]

StrokeData.head()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fk0oabyrevhswohozsafn.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%2Fk0oabyrevhswohozsafn.png" alt="Image description" width="629" height="240"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&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%2Fioyx491k7k350860qbx5.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%2Fioyx491k7k350860qbx5.png" alt="Image description" width="510" height="286"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

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

&lt;/div&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%2Fz1poh15jx4xpig472dpc.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%2Fz1poh15jx4xpig472dpc.png" alt="Image description" width="772" height="369"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;StrokeData.isnull().sum()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgwjofd5nxijaijtbk7zr.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%2Fgwjofd5nxijaijtbk7zr.png" alt="Image description" width="264" height="145"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;StrokeData.duplicated().sum()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fgulx8fh6txcyfcn9eh36.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%2Fgulx8fh6txcyfcn9eh36.png" alt="Image description" width="58" height="34"&gt;&lt;/a&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
import matplotlib.pyplot as plt
from sklearn.preprocessing import LabelEncoder
from sklearn.preprocessing import StandardScaler
label_encoder = LabelEncoder()
scaler= StandardScaler()
df = StrokeData.apply(lambda x: label_encoder.fit_transform(x) if x.dtype == 'O' else x)
Stroke_dataup = pd.DataFrame(scaler.fit_transform(df), columns=df.columns)
cov_matrix = abs(Stroke_dataup.cov())
plt.figure(figsize=(5, 5))
sns.heatmap(cov_matrix, annot=True, cmap='copper', fmt='.2f', linewidths=.5)
plt.title('Covariance Matrix Heatmap')
plt.show()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2Fv7vcyqexqktluvhr8s80.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%2Fv7vcyqexqktluvhr8s80.png" alt="Image description" width="741" height="688"&gt;&lt;/a&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 xgboost as xgb
from sklearn.model_selection import KFold, cross_val_score

model = xgb.XGBClassifier(
    n_estimators=100,
    max_depth=5,
    learning_rate=0.2,
    objective='binary:logistic',
    random_state=42
)

kf = KFold(n_splits=4, shuffle=True, random_state=42)
accuracy = cv_results
average_accuracy = cv_results.mean()

print("Accuracy for each fold:", accuracy)
print("Average Accuracy across all folds:", average_accuracy)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&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%2F8zlnqbrvwzmks9mu8t3k.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%2F8zlnqbrvwzmks9mu8t3k.png" alt="Image description" width="703" height="47"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;สรุปผล&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;เมื่อเราได้ใช้ XGBoost และกระบวนการ Cross-validation ในการทำนายโรคหลอดเลือดในสมองโดยตัวอย่างแรกใช้ชุด Dataset ทั้งหมด ผลลัพธ์ที่ได้คือค่าความแม่นยำของโมเดล = 0.947 และตัวอย่างที่สองได้ลบคอลัมน์ให้เหลือเพียง 5 คอลัมน์ ผลลัพธ์ที่ได้คือค่าความแม่นยำของโมเดล = 0.948 ซึ่งค่าความแม่นยำยิ่งมีค่ามากยิ่งดี&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;References &lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;a href="https://www.kaggle.com/code/chiragchiku25/stroke-prediction-using-xgboost"&gt;https://www.kaggle.com/code/chiragchiku25/stroke-prediction-using-xgboost&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.kaggle.com/code/onurrr90/heart-science-stroke-prediction-with-ai"&gt;https://www.kaggle.com/code/onurrr90/heart-science-stroke-prediction-with-ai&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>stroke</category>
    </item>
  </channel>
</rss>
