Python 數據分析

數據分析可以幫助我們從數據中獲取有用的信息,並為我們的查詢提供解決方案。此外,基於觀察到的模式,我們可以預測不同商業政策的結果。

了解數據分析的基礎

數據

我們在分析過程中處理的數據類型主要是 csv(逗號分隔值)格式。通常,csv 文件中的第一行表示為標題。

可用包

Python 包中有各種各樣的庫,可以在不編寫長代碼的情況下輕鬆實現。

一些包的例子是-

  1. 科學計算庫,如 NumPy、Pandas & SciPy。
  2. 可視化庫,如 Matplotlib 和 seaborn。
  3. 演算法庫,如 scikit-learn 和 statsmodels。

導入和導出數據集

導入數據集時,我們必須注意的兩個基本事項是-

  1. 格式- 指的是文件的編碼方式。突出格式的例子有。csv,。xlsx,。json 等。
  2. 文件路徑- 文件的路徑是指文件存放的位置。它可以在任何驅動器或一些在線源中提供。

可以通過以下方式完成-

示例-


import pandas as pd
path=" "
df = pd.read_csv(path)

如果數據集不包含標題,我們可以通過以下方式指定它-


df = pd.read_csv(path,header=None)

為了查看數據集的前五行和後五行,我們可以分別使用 df.head()和 df.tail()。

讓我們看看如何導出數據,如果我們在。csv 格式,然後


path = " "
df.to_excel(path)

數據爭論

數據爭論是將數據從原始格式轉換為可用於分析的格式的過程

讓我們看看這部分包含了什麼-

如何處理缺失值?

缺少值-由於信息不可用,一些條目留空。它通常用 NaN、?或者 0。

讓我們討論一下如何處理它們-

最好的選擇是用平均值替換數值變數,用模式替換分類變數。

有時可能會出現這樣的情況,當我們不得不丟棄丟失的值時,可以使用-


df.dropna() 

如果我們想刪除一行,我們必須將軸指定為 0。如果我們想刪除一列,我們必須指定軸為 1。

此外,如果我們希望這些變化直接發生在數據集中,我們將在 place = True 中再指定一個參數。

現在讓我們看看如何替換這些值-

語法是-


df.replace(missing value, new value)

在這裡,我們將創建一個變數,並在其中存儲屬性的平均值(我們想要替換它的值)


mean=df["attribute name"].mean()
df["attribute name"].replace(np.nan,mean)

如何進行數據格式化?

它指的是以可理解的格式提供數據的過程。例如-更改變數名使其易於理解。

數據標準化

數據集中存在的要素的值可能會導致有偏差的預測。因此,我們必須把它們帶到一個可以比較的範圍。

為了做到這一點,我們可以在屬性上使用以下技術-

  1. 簡單功能擴展 Xn=Xold/Xmax
  2. 最小-最大方法 Xn=Xold-Xmin/Xmax-Xmin
  3. z-score xn = xold-/ꝺ
    -平均值
    ꝺ-standard 偏差

如何將分類變數轉換成數值變數?

在這種情況下,我們繼續進行一個稱為「一熱編碼」的過程,假設有一個屬性保存分類值。我們將根據可能性製造虛擬變數,並根據它們在屬性中的出現情況為它們分配 0 或 1。

要將分類變數轉換為虛擬變數 0 或 1,我們將使用


pandas.get_dummies(df["attribute-name"])
This will generate the expected results.

python 中的綁定

它指的是將數值變數轉換為分類變數的過程。

假設我們從數據集中獲取了屬性「價格」。我們可以根據範圍將它的數據分為三類,然後用低價、中價、高價等名稱來表示。

我們可以使用 linspace() 方法獲得範圍


bin = np.linspace(min(df["attribute-name"]),max(df["attribute-name"]),4)
cat_names=["low-price","mid-price","high-price"]
df["bin_name"]=pd.cut(df["attribute-name"],bin,labels=cat_names)

探索性數據分析

統計數字

我們可以使用description()方法找出我們數據集的統計概要。可用作df . description()。分類變數可以使用值 _counts() 方法進行總結。

使用 GroupBy

Pandas 的 groupby()方法可以應用於分類變數。它根據不同的類別對子集進行分組。它可以包含單個或多個變數。

讓我們看一個例子,它將幫助我們理解如何在 Python 中使用它。


df_att=df[['attribute1', 'attribute2', 'attribute3']]
df_g=df_att.groupby(['attribute1', 'attribute2'], as_index=False).mean()
df_g

相互關係

相關性衡量兩個變數相互依賴的範圍。

檢查兩個變數之間存在何種相關性的直觀想法。我們可以繪製一個圖表,並解釋一個屬性的值的增加如何影響另一個屬性。

關於統計量,我們可以使用皮爾遜相關來獲得相關性。它給出了相關係數和 P 值。

讓我們看看標準-

| 相關係數 | 關係 |
| 1.接近+1 | 大正 |
| 2.接近-1 | 大底片 |
| 3.接近 0 | 不存在任何關係 |

| p 值 | 確定性 |
| p 值< 0.001 | 強烈的 |
| p 值< 0.05 | 溫和的 |
| p 值< 0.1 | 無力的 |
| p 值> 0.1 | 不 |

我們可以在使用 scipy stat 包的代碼中使用它。

假設我們想要計算兩個屬性之間的相關性,屬性 1 和屬性 2-


pearson_coef,p_value=stats.pearsonr(df["attribute1"],df["attribute2"]).

為了進一步檢查所有變數之間的相關性,我們可以創建一個熱圖。

兩個分類變數之間的關係

兩個分類變數之間的關係可以用卡方方法計算。


scipy.stats.chi2_contingency(cont_table, correction=True)

如何開發模型?

首先,讓我們了解什麼是模型?

模型可以指幫助我們預測結果的方程。

  • 線性回歸和多元線性回歸

線性回歸- 顧名思義,只涉及單個自變數進行預測。

多元回歸- 涉及多個自變數進行預測。

簡單的線性回歸方程可以表示為-

y=b 0 x+b 1

在這裡,

y 因變數

x 獨立變數

b0-坡度

b1-攔截

用 Python 實現線性回歸


from sklearn.linear_model import LinearRegression
lm=LinearRegression()
X=df["attribute-name1"]
Y=df["attribute-name1"]
lm.fit(X,Y)
yp=lm.predict(X)

使用可視化評估我們的模型

創建情節是一個很好的實踐,因為它們顯示了相關性的強度,以及關係的方向是積極的還是消極的。

讓我們看看不同的圖,這些圖可以幫助我們評估我們的模型-

1.使用回歸圖


import seaborn as sns
sns.regplot(x="attribute1",y="attribute2",data=df)
plt.ylim(0,)

2.使用殘差圖


import seaborn as sns
sns.residplot(df["attribute1"],df["attribute2"])

在樣本評估中

在這裡,我們將討論如何對我們的模型進行數值評估,兩種方法是-

1。均方誤差

這種方法將實際值和預測值之間的差值進行平方,然後最終計算出它們的平均值。

我們可以用 Python 實現同樣的功能


from sklearn.metrics 
import mean_squared_error
mean_squared_error(df['target-variable'],Y_predict_simple_fit)

2。r 平方

r 平方也稱為決定係數。它顯示了數據與擬合回歸線的接近程度。可以使用 score() 方法在 Python 中使用。


X=df["attribute-1"]
Y=df["attribute-2"]
lm.fit(X,Y)
lm.score(X,Y)

決策

簡而言之,當我們評估一個模型時,我們必須注意以下幾點

  1. 使用可視化
  2. 使用數值評估方法。

如何評價一個模型?

評估我們的模型是一個不可或缺的因素,因為它告訴我們的數據與模型的吻合程度。現在,我們將討論如何使用訓練數據來預測結果。

關鍵的想法是將我們的數據集分為訓練和測試。訓練數據集用於構建我們的模型,測試數據集用於評估我們模型的性能。

它可以用 Python 實現,使用-


 from sklearn.model_selection import train_test_split
x_train,y_train,x_test,y_test=train_test_split(x_data,y_data,test_size=' ',random_state=' ')

過擬合和欠擬合

過擬合- 是模型擬合數據相當簡單的情況。

欠擬合- 是模型容易調整雜訊因子而不是函數的情況。

裡脊回歸

這是在我們處理十次變數時使用的。這裡我們引入了一個叫做α的因子。讓我們看看如何在 Python 中實現這一點。


from sklearn.linear_model import Ridge
RModel=Ridge(alpha=0.1)
RModel.fit(X,Y)
Yp=RModel.predict(X)

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/311357.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-05 13:23
下一篇 2025-01-05 13:23

相關推薦

  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論