欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

Python 邏輯斯蒂

林雅南2年前10瀏覽0評論

Python 邏輯斯蒂(Logistic Regression)是機器學習中的一種分類算法,它可以將樣本數(shù)據(jù)根據(jù)其特征值進行二分類,將其分為兩個類別之一。邏輯斯蒂模型的本質是一個數(shù)學模型,由于其模型形式與線性回歸模型相似,因此被稱為“廣義線性模型”。

import numpy as np
import matplotlib.pyplot as plt
# 生成樣本數(shù)據(jù)
np.random.seed(0)
X = np.random.randn(100, 2)
y = np.logical_xor(X[:, 0] >0, X[:, 1] >0)
# 繪制散點圖
plt.scatter(X[:, 0], X[:, 1], c=y, s=40, cmap=plt.cm.Spectral)
# 定義邏輯斯蒂函數(shù)
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# 計算損失函數(shù)
def compute_loss(theta, X, y):
z = X.dot(theta)
h = sigmoid(z)
loss = (-y * np.log(h) - (1 - y) * np.log(1 - h)).mean()
return loss
# 執(zhí)行梯度下降
def gradient_descent(X, y, alpha=0.1, iterations=1000):
# 初始化參數(shù)
m, n = X.shape
theta = np.zeros(n)
# 執(zhí)行梯度下降
for iter in range(iterations):
z = X.dot(theta)
h = sigmoid(z)
gradient = X.T.dot(h - y) / m
theta -= alpha * gradient
return theta
# 計算參數(shù)
theta = gradient_descent(X, y)
# 繪制決策邊界
x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
xx, yy = np.meshgrid(np.linspace(x_min, x_max, 100), np.linspace(y_min, y_max, 100))
Z = sigmoid(np.c_[xx.ravel(), yy.ravel()].dot(theta))
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=plt.cm.Spectral, alpha=0.8)
plt.show()

上述代碼演示了如何使用邏輯斯蒂算法進行二分類。首先,生成100個隨機的二維樣本點,然后使用邏輯斯蒂函數(shù)計算損失函數(shù),并使用梯度下降算法來更新模型參數(shù)。最后,根據(jù)模型的參數(shù)計算出決策邊界并將其畫出來。