發表文章

目前顯示的是有「pandas」標籤的文章

實作PySpark與Pandas程式的數據分析_Spark DataFrame與SparkSQL常見操作

圖片
  findspark :用於定位 Spark 安裝。 pandas :被導入以進行數據處理。 SparkSession對於使用PySpark至關重要。它允許創建DataFrame、加載數據和進行各種操作。 初始化具有指定應用程式名稱的 Spark Session。 SparkSession.builder.appName("COVID-19 Data Analysis").getOrCreate() 第一階段.檢測Spark Session是否成功啟動 import findspark # This helps us find and use Apache Spark findspark.init() # Initialize findspark to locate Spark from pyspark.sql import SparkSession from pyspark.sql.types import StructType, StructField, StringType, IntegerType, LongType, DateType import pandas as pd # Initialize a Spark Session spark = SparkSession \ .builder \ .appName( "COVID-19 Data Analysis" ) \ .config( "spark.sql.execution.arrow.pyspark.enabled" , "true" ) \ .getOrCreate() # Check if the Spark Session is active if 'spark' in locals () and isinstance (spark, SparkSession): print ( "SparkSession is active and ready to use." ) else : print ( "SparkSession is not active. Plea...

Scikit-learn筆記02_監督式學習(迴歸及分類)_線性迴歸(Linear Regression)

圖片
監督式學習(Supervised Learning) 特點: 屬於機器學習算法中較常用的、也是較為成功的模式。 監督式學習的核心概念(輸入 → 輸出)非常直觀,容易理解和實施。 常應用於分類、迴歸問題分析以及時間序列預測等情境。 具有較高的可解釋性,便於商業應用中說明模型的預測邏輯。 可量化的評估,透過標準化的指標(如準確率、均方誤差)進行量化評估和優化。 模型建構於輸入跟輸出配對之訓練資料,對尚未見過的資料做預測。 限制及困難: 標籤數據的獲取可能耗時且昂貴。依賴於帶標籤的數據集(每個輸入樣本都有相應的目標輸出),使得模型可以清楚地學到輸入與輸出的映射關係。 無法處理未見過的類別或樣本 訓練資料通常要耗時人工建立。 常見監督式學習演算法: 線性模型/線性迴歸 (Lineaer Models) 決策樹(Decision Trees)、隨機森林(Random Forests) 最近鄰居法(K-Nearest Neighbors) 支持向量機(SVM) 類神經網路(Neural Networks) 監督式學習任務 1.分類(Classification): 在已定義的離散標籤中預測資料屬於何種標籤(類比數值) 僅兩種標籤的問題又俗稱二元分類,yes/no。比方:信件是否屬於垃圾郵件? 多種標籤問題則稱為多元(類別)分類,比方某筆鳶尾花資料屬於何種品種? 2.迴歸(Regression): 預測連續數值(浮點數、實數) => 預測的是數據 比方:房價趨勢預測、農產收成量預測 https://www.grammarly.com/blog/ai/what-is-linear-regression/ 線性迴歸(Linear Regression) 屬於常見統計方法,也是機器學習起初接觸時優先探討的問題。 目的在於 藉由過去資料找出已經存在的關係 ,並且 利用X來預測Y可能的結果 。 線性迴歸模型指的是X(自變數)跟Y(應變數)之線性關係。 依照自變數多寡可分成 簡單線性迴歸 和 多(複)元迴歸 。 迴歸分析又依照函數型態,細分為線性、非線性。 模型中每一項的權重系數都為這一項對應的特征的重要性提供了直觀的解釋:某一項權重系數的絕對值越大,對應的屬性的影響就越大。 為了不讓問題變得覆雜,不要輕易嘗試非線性模型。 輸出與輸入參數成線性關系的這一假設可以表示為: 數學家不願意...

Scikit-learn筆記01_收集到的資料到底適合捨麼學習演算應用?

圖片
https://scikit-learn.org/1.5/machine_learning_map.html 上述sklearn官網擷取到的流程圖,可幫助我們決定應該採用何種預測方法。 流程從 START 開始,通過回答一系列問題來縮小演算法範圍 假如資料筆數枚超過50筆,那應該去取更多數據再來進行。 若要預測的是數值非類別,那Regression是唯一方法。當然又細分多種不同Regression方法,端視資料筆數以及是否加樣比重某些特徵值而定。 倘若要預測的是某個資料類別(Category),那是否已有針對既定data定義好類別了?若還沒,那採用方式就應是非監督式Clustering或降維。反之則使用監督式學習的Classification,並視Sample資料筆數抉擇要用Liner SVC或SGD Classifier。 Python機器學習套件Scikit-Learn (SkLearn) 是一套開源套件並可商業使用,建構在Numpy,SciPy及Matplotlib之上。 https://scikit-learn.org/stable/ 根據官方網站功能分為主要六大部分 學習演算法方面 1.Classification (分類) ->監督 目標:將輸入數據分到預定義的類別中。 2.Regression (迴歸) ->監督 目標:預測連續值(如房價、溫度)。 3.Clustering (分群) ->非監督 目標:根據數據間的相似性將數據分為若干群組(無標籤)。 比較不同演算法結果方面 4.Model Selection (模型選定) 目標:比較不同模型的表現,選擇最佳模型及其超參數。 偏向資料前處裡方面 5.Preprocessing (預處理) 目標:清理和轉換數據,以適合於機器學習模型。 6.Dimensionality reduction (降維) 目標:減少數據的特徵數量,保留關鍵信息。 在Spyder開啟後終端下pip list可查看目前版本。 預設在scikit-learn套件中,資料集主要用 Bunch物件型別儲存,類似python鍵值對的字典資料格式儲存。 目前最新版1.3以上sklearn默認提供的內建資料集,俗稱toy datasets如下: https://scikit-learn.org/1.5/datasets/toy...