<?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: Thanaporn1045</title>
    <description>The latest articles on DEV Community by Thanaporn1045 (@thanaporn1045).</description>
    <link>https://dev.to/thanaporn1045</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%2F1062318%2F8452ae73-62c7-4453-aa91-50e50b6cf4de.png</url>
      <title>DEV Community: Thanaporn1045</title>
      <link>https://dev.to/thanaporn1045</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thanaporn1045"/>
    <language>en</language>
    <item>
      <title>การพยากรณ์อากาศด้วย Python Machine Learning สำหรับผู้เริ่มต้น</title>
      <dc:creator>Thanaporn1045</dc:creator>
      <pubDate>Mon, 10 Apr 2023 19:01:25 +0000</pubDate>
      <link>https://dev.to/thanaporn1045/kaarphyaakrnaakaasdwy-python-machine-learning-samhrabphuuerimtn-3pd9</link>
      <guid>https://dev.to/thanaporn1045/kaarphyaakrnaakaasdwy-python-machine-learning-samhrabphuuerimtn-3pd9</guid>
      <description>&lt;p&gt;คุณเคยสงสัยหรือไม่ว่าผู้คนสามารถพยากรณ์อากาศได้อย่างไรและการพยากรณ์อากาศนั้นเชื่อถือได้แค่ไหน&lt;/p&gt;

&lt;p&gt;การพยากรณ์อากาศแบบ 7 วันสามารถทำนายสภาพอากาศได้อย่างแม่นยำประมาณ 80% ของเวลาทั้งหมด และการพยากรณ์อากาศแบบ 5 วันสามารถทำนายสภาพอากาศได้อย่างแม่นยำประมาณ 90% ของเวลาทั้งหมด อย่างไรก็ตามการคาดการณ์ 10 วันหรือนานกว่านั้นจะถูกต้องเพียงครึ่งเดียว&lt;/p&gt;

&lt;p&gt;การพยากรณ์อากาศเป็นศาสตร์ที่สำคัญซึ่งจะสามารถช่วยรักษาชีวิตและลดความเสียหายต่อทรัพย์สินได้ นอกจากนี้ยังมีความสำคัญต่อการเกษตร ช่วยให้เกษตรกรสามารถติดตามได้ว่าเมื่อใดควรปลูกหรือช่วยปกป้องพืชผลของตนและจะมีความสำคัญมากขึ้นในการวางแผนปีต่อๆไป&lt;/p&gt;

&lt;p&gt;ดังนั้นวันนี้เราจะทำการพยากรณ์อากาศแบบง่าย เพื่อทำนายสภาพอากาศที่กำลังจะมาถึงตามข้อมูลที่มีอยู่&lt;/p&gt;

&lt;p&gt;การพยากรณ์อากาศเป็น &lt;strong&gt;Machine Learning&lt;/strong&gt; ประเภท &lt;strong&gt;Supervised learning&lt;/strong&gt; &lt;br&gt;
แบบ &lt;strong&gt;Regression&lt;/strong&gt; ซึ่งก็คือการนำเอาข้อมูลหรือตัวแปรมาหาความสัมพันธ์กัน เพื่อคาดการณ์สิ่งที่จะเกิดขึ้น เช่น สภาพอากาศ&lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;ภาพรวมของโปรเจค&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;ชุดข้อมูลที่ใช้คือสภาพอากาศในเมือง Seattle จาก &lt;a href="https://www.kaggle.com/datasets/ananthr1/weather-prediction"&gt;Kaggle&lt;/a&gt; &lt;br&gt;
ลิงค์ &lt;a href="https://github.com/kokobiyu/Weather-Forecasting-with-Classifier"&gt;Github&lt;/a&gt; ของ Abiyyu Surya Harry ผู้เขียน &lt;a href="https://medium.com/@abiyyushofficial/weather-forecasting-with-python-machine-learning-beginner-50bf41ddf4e"&gt;Blog&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Machine Learning models ที่ใช้&lt;/p&gt;

&lt;p&gt;1.XGB Classifier&lt;br&gt;
2.K-Nearest Neighbors Classifier&lt;br&gt;
3.AdaBoost Classifier&lt;/p&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 pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns
import datetime
import os
import plotly.express as px 
from sklearn.metrics import classification_report
from sklearn.model_selection import train_test_split, GridSearchCV
from sklearn.neighbors import KNeighborsClassifier
from sklearn.ensemble import RandomForestClassifier, AdaBoostClassifier
from xgboost import XGBClassifier
from neuralprophet import NeuralProphet
from sklearn.preprocessing import LabelEncoder
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  &lt;strong&gt;การวิเคราะห์ข้อมูล&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df=pd.read_csv("seattle-weather.csv")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_ipADyKQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/re7prjaac66bzi8b6uni.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_ipADyKQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/re7prjaac66bzi8b6uni.jpg" alt="Image description" width="147" height="41"&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;df.head()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Y0WUhT7s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrzbymicz2c3ctklo7f8.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Y0WUhT7s--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/wrzbymicz2c3ctklo7f8.jpg" alt="Image description" width="530" height="236"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;จากภาพจะเห็นได้ว่า&lt;br&gt;
มี 6 ตัวแปรในชุดข้อมูลนี้ แบ่งเป็น&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;4 ตัวแปรต่อเนื่อง&lt;/li&gt;
&lt;li&gt;1 ตัวแปรวันที่&lt;/li&gt;
&lt;li&gt;1 ตัวแปรสภาพอากาศ
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df.describe()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--uoiC2YNX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ie32cgmcts81vqrc6rt6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--uoiC2YNX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ie32cgmcts81vqrc6rt6.jpg" alt="Image description" width="482" height="332"&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;df.info()
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--E4RP-_u5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0b0lscba9z7lr6bwlz3t.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--E4RP-_u5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0b0lscba9z7lr6bwlz3t.jpg" alt="Image description" width="410" height="267"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;การจัดทำข้อมูลก่อนการประมวลผล&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;เราจำเป็นต้องแปลง Dtype บางคอลัมน์เพื่อให้พอดีกับ Machine Learning models ก่อนอื่นเราต้องแปลง Dtype ในวันที่จากวัตถุเป็นวันที่และเวลา&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;df['date'] = pd.to_datetime(df['date'])
df['weather']=LabelEncoder().fit_transform(df['weather'])
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





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

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bwUwZJxM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/czf0mmp5nu3a4gpeb3lz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bwUwZJxM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/czf0mmp5nu3a4gpeb3lz.jpg" alt="Image description" width="460" height="282"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;จะเห็นได้ว่า Dtype ของข้อมูลมีการเปลี่ยนแปลง ซึ่งสามารถนำมาใช้วิเคราะห์ได้แล้ว&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;การวิเคราะห์ข้อมูลเชิงสำรวจ&lt;/strong&gt;
&lt;/h2&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;plt.figure(figsize = (15, 5))
fig = plt.plot(df['date'], df[['temp_min', 'temp_max']])
plt.grid();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3E6X0TiR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sr6jrykp34gkp3c5eoxz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3E6X0TiR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sr6jrykp34gkp3c5eoxz.jpg" alt="Image description" width="800" height="283"&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;plt.figure(figsize = (15, 5))
fig2 = plt.plot(df['date'], df[['precipitation', 'wind']])
plt.grid();
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--33NG9WSV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ylgr2ds1c0co3kgqeabx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--33NG9WSV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ylgr2ds1c0co3kgqeabx.jpg" alt="Image description" width="800" height="281"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;เมื่อทำการขยายเพื่อดูแต่สภาพอากาศใน 1 ปี&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;df['month'] = df['date'].dt.month_name(locale='English')

fig = px.box(df, df.month, ['temp_min', 'temp_max'])
fig.update_layout(title='Warmest and Coldest Monthly Tempratue.')
fig.show(
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ha7maFZ9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0h38oivjt8moa1i73eim.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ha7maFZ9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0h38oivjt8moa1i73eim.jpg" alt="Image description" width="800" height="434"&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;plt.figure(figsize=(12,7))
sns.heatmap(df[["precipitation","temp_max","temp_min","wind"]].corr(),annot=True,cmap='coolwarm');
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tynk6O-J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ztth3x7a2jauj4oae7uj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tynk6O-J--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ztth3x7a2jauj4oae7uj.jpg" alt="Image description" width="800" height="505"&gt;&lt;/a&gt;&lt;br&gt;
เราจะเห็นว่า wind และ preception มีความสัมพันธ์กันเพียงเล็กน้อย ในทางกลับกัน temp_max และ precipitation มีความสัมพันธ์เชิงลบ ซึ่งหมายความว่าพวกมันเคลื่อนที่ไปในทิศทางตรงกันข้าม คล้ายกับ temp_max และ wind &lt;/p&gt;
&lt;h2&gt;
  
  
  &lt;strong&gt;การฝึก Machine Learning Model&lt;/strong&gt;
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;features=["precipitation", "temp_max", "temp_min", "wind"]
X=df[features]
y=df.weather
X_train, X_test, y_train,y_test = train_test_split(X, y,random_state = 0)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;XGB Classifier&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;xgb = XGBClassifier()
xgb.fit(X_train,y_train)
print("XGB Accuracy:{:.2f}%".format(xgb.score(X_test,y_test)*100))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;XGB Accuracy:78.42%&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;K-Nearest Neighbors Classifier&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;knn = KNeighborsClassifier()
knn.fit(X_train,y_train)
print("KNN Accuracy:{:.2f}%".format(knn.score(X_test,y_test)*100))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;KNN Accuracy:72.68%&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AdaBoost Classifier&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;ab = AdaBoostClassifier()
ab.fit(X_train, y_train)
print("AB Accuracy:{:.2f}%".format(ab.score(X_test,y_test)*100))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;code&gt;AB Accuracy:84.70%&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;เราได้ค่า accuracy สูงสุดใน AdaBoostClassifier ดังนั้นจึงเลือกใช้โมเดลนี้&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;การปรับปรุงโมเดลของเรา&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;ทดลองไฮเปอร์พารามิเตอร์ปรับแต่งโมเดลของเราโดยใช้ GridSearchCV&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;parameters = {
    'learning_rate': [1, 2, 3],
    'n_estimators': [100, 500, 1000]
}
cv = GridSearchCV(ab, param_grid=parameters, scoring='f1_micro', n_jobs=-1, verbose=3)
cv.fit(X_train, y_train)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#predicting values from GridSearchCV
y_pred = cv.predict(X_test)

# show classification report on test data
print(classification_report(y_test.values, y_pred, zero_division=1))
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--bUzBMg6A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n0hda931yo7s00i9oh0s.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--bUzBMg6A--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n0hda931yo7s00i9oh0s.jpg" alt="Image description" width="502" height="232"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;เราได้ปรับปรุงเล็กน้อยในโมเดลของเราโดยใช้การปรับไฮเปอร์พารามิเตอร์&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;ทดสอบการป้อนข้อมูลของผู้ใช้&lt;/strong&gt;
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;input=[[1.140175,8.9,2.8,2.469818]]
ot = ab.predict(input)
print("The weather is:")
if(ot==0):
    print("Drizzle")
elif(ot==1):
    print("Fog")
elif(ot==2):
    print("Rain")
elif(ot==3):
    print("snow")
else:
    print("Sun")
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H7o9h7fO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lvi77w1xrildt7qkht6o.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H7o9h7fO--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lvi77w1xrildt7qkht6o.jpg" alt="Image description" width="175" height="51"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;เราได้ผลลัพธ์ของเราแล้ว แบบจำลองนี้ต้องการรับค่า “precipitation”, “temp_max”, “temp_min” และ “wind” &lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;สรุป&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;บทความนี้เป็นการพยากรณ์สภาพอากาศอย่างง่าย โดยพยากรณ์สภาพอากาศจากความสัมพันธ์ของหยาดน้ำฟ้า, อุณหภูมิสูงสุด, อุณหภูมิต่ำสุด และลม ที่ได้จากวิเคราะห์ของ Machine Learning model ซึ่งได้ผลลัพธ์เป็นสภาพอากาศที่คาดว่าจะเกิดขึ้น แน่นอนว่าโมเดลของเราไม่ก้าวหน้าเท่าโมเดลที่ใช้ในโทรทัศน์ ในอนาคตเราสามารถใช้แบบจำลองนี้เพื่อช่วยปรับปรุงแหล่งพลังงานหมุนเวียนของเราให้มีความน่าเชื่อถือและมีประสิทธิภาพมากยิ่งขึ้น ตัวอย่างเช่น เราสามารถระบุรูปแบบและตำแหน่งทางภูมิศาสตร์ที่เหมาะสมในการตั้งโรงไฟฟ้าพลังงานแสงอาทิตย์และพลังงานลม&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;u&gt;แหล่งที่มา&lt;/u&gt;&lt;/strong&gt;&lt;br&gt;
&lt;em&gt;บทความต้นฉบับ&lt;/em&gt; : &lt;a href="https://medium.com/@abiyyushofficial/weather-forecasting-with-python-machine-learning-beginner-50bf41ddf4e"&gt;Weather Forecasting with Python Machine Learning (Beginner)&lt;/a&gt; เขียนโดย Abiyyu Surya Harry&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Codeและรูปภาพ&lt;/em&gt; : &lt;a href="https://github.com/kokobiyu/Weather-Forecasting-with-Classifier/blob/main/Weather%20Forecasting.ipynb"&gt;Weather Forecasting&lt;/a&gt; โดย kokobiyu&lt;/p&gt;

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