引言
NumPy是Python頂用於科學打算的核心庫,它供給了富強的n維數組東西,以及用於處理這些數組的東西。NumPy的數組(numpy.array)比Python的內置列表更高效,因為它們在內存中以持續的方法存儲,這使得打算速度更快,尤其合適大年夜範圍數據處理。在猜測建模中,NumPy是弗成或缺的東西之一。本文將具體介紹怎樣利用NumPy停止猜測建模,並經由過程實戰案例停止剖析。
NumPy基本
1. 安裝與導入
起首,確保你曾經安裝了NumPy庫。可能利用以下命令停止安裝:
pip install numpy
然後,在Python代碼中導入NumPy庫:
import numpy as np
2. 創建數組
NumPy供給了多種創建數組的方法,包含:
np.array()
:創建一個NumPy數組。np.zeros()
:創建一個全零數組。np.ones()
:創建一個全一數組。np.full()
:創建一個指定值填充的數組。
3. 數組操縱
NumPy供給了豐富的數組操縱功能,包含:
- 索引跟切片:與Python列表類似。
- 數組運算:支撐元素級運算。
- 索引跟前提抉擇:利用布爾索引抉擇數組中的元素。
猜測建模實戰案例
1. 房價猜測
數據籌備
起首,我們須要籌備數據。以下是一個房價猜測的數據集示例:
data = {
'area': [1000, 1500, 2000, 2500, 3000],
'bedrooms': [3, 4, 3, 4, 3],
'price': [200000, 300000, 250000, 350000, 400000]
}
df = pd.DataFrame(data)
特徵工程
接上去,我們須要對數據停止特徵工程。這裡,我們將利用NumPy停止數據標準化:
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
df[['area', 'bedrooms']] = scaler.fit_transform(df[['area', 'bedrooms']])
模型構建
現在,我們可能利用NumPy構建一個簡單的線性回歸模型:
X = df[['area', 'bedrooms']]
y = df['price']
X = np.array(X)
y = np.array(y)
# 增加截距項
X = np.hstack((np.ones((X.shape[0], 1)), X))
# 梯度降落法求解回歸係數
def gradient_descent(X, y, weights, learning_rate, iterations):
m = X.shape[0]
for _ in range(iterations):
predictions = X.dot(weights)
errors = predictions - y
gradient = X.T.dot(errors) / m
weights -= learning_rate * gradient
return weights
weights = np.zeros(X.shape[1])
learning_rate = 0.01
iterations = 1000
weights = gradient_descent(X, y, weights, learning_rate, iterations)
模型評價
最後,我們可能利用均方偏差(MSE)來評價模型的機能:
from sklearn.metrics import mean_squared_error
y_pred = X.dot(weights)
mse = mean_squared_error(y, y_pred)
print(f'MSE: {mse}')
2. 乘客生活猜測
另一個經典的猜測建模案例是泰坦尼克號乘客生活猜測。以下是一個利用NumPy停止猜測建模的示例:
import pandas as pd
# 讀取數據
data = pd.read_csv('titanic.csv')
# 數據預處理
data = data.dropna()
data['age'] = data['age'].fillna(data['age'].mean())
data['fare'] = data['fare'].fillna(data['fare'].mean())
# 特徵工程
X = data[['pclass', 'age', 'sibsp', 'parch', 'fare']]
y = data['survived']
# 數據標準化
scaler = StandardScaler()
X = scaler.fit_transform(X)
# 模型構建
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X, y)
# 模型評價
from sklearn.metrics import accuracy_score
X_test = X
y_test = y
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy}')
總結
NumPy是Python頂用於科學打算的核心庫,它供給了富強的n維數組東西跟豐富的數組操縱功能。經由過程本文的實戰案例,我們可能看到NumPy在猜測建模中的利用。控制NumPy將有助於你更高效地停止數據分析跟建模。