别再瞎调PID了!用Python快速验证你的PI控制器参数是否收敛
2026/4/27 10:55:26
逻辑回归(Logistic Regression)是一种广泛应用于分类问题的统计学习方法,尤其擅长处理二分类问题。尽管名字中带有"回归",但它实际上是一种分类算法。逻辑回归通过Sigmoid函数将线性回归的输出映射到(0,1)区间,从而得到样本属于某一类别的概率。
逻辑回归的核心是Sigmoid函数(也称为逻辑函数):
P ( y = 1 ∣ x ) = 1 1 + e − z P(y=1|x) = \frac{1}{1 + e^{-z}}P(y=1∣x)=1+e−z1
其中z是输入特征的线性组合:z = w 0 + w 1 x 1 + w 2 x 2 + . . . + w n x n z = w₀ + w₁x₁ + w₂x₂ + ... + wₙxₙz=w0+w1x1+w2x2+...+wnxn
当P ( y = 1 ∣ x ) ≥ 0.5 P(y=1|x) ≥ 0.5P(y=1∣x)≥0.5时,模型预测为正类;当P ( y = 1 ∣ x ) < 0.5 P(y=1|x) < 0.5P(y=1∣x)<0.5时,预测为负类。0.5这个阈值形成了决策边界。
逻辑回归使用交叉熵损失函数(对数损失函数),通过最大似然估计或梯度下降等优化方法寻找最优参数。
优势:
局限:
fromsklearn.model_selectionimporttrain_test_splitfromsklearn.preprocessingimportStandardScalerimportpandasaspdimportmatplotlib.pyplotaspltfrompylabimportmplfromsklearn.linear_modelimportLogisticRegressionfromsklearnimportmetrics# 读取数据并进行预处理data=pd.read_csv(r"creditcard.csv")scaler=StandardScaler()data["Amount"]=scaler.fit_transform(data[["Amount"]])data=data.drop(["Time"],axis=1)# 设置中文字体支持mpl.rcParams["font.sans-serif"]=["Microsoft YaHei"]mpl.rcParams["axes.unicode_minus"]=False# 查看正负例样本分布labels_count=pd.value_counts(data["Class"])print(labels_count)# 可视化样本分布plt.title("正负例样本数")plt.xlabel("类别")plt.ylabel("频数")labels_count.plot(kind='bar')plt.show()# 选择特征列column_names=['V1','V2','V3','V4','V5','V6','V7','V8','V9','V10','V11','V12','V13','V14','V15','V16','V17','V18','V19','V20','V21','V22','V23','V24','V25','V26','V27','V28','Amount']x_whole=data[column_names]y_whole=data[["Class"]]# 划分训练集和测试集(这里使用30%作为训练集)x_train_w,x_test_w,y_train_w,y_test_w=train_test_split(x_whole,y_whole,train_size=0.3,random_state=1000)# 创建并训练逻辑回归模型# C参数是正则化强度的倒数,较小的C值表示更强的正则化lr=LogisticRegression(C=0.01)lr.fit(x_train_w,y_train_w)# 在测试集上进行预测test_predicted=lr.predict(x_test_w)result=lr.score(x_test_w,y_test_w)# 输出详细的分类报告print(metrics.classification_report(y_test_w,test_predicted))图中包含以下关键指标: