东莞公司品牌网站建设,网站 优化 分析,邢台太行中学初中部,平台推广渠道https://github.com/MLEveryday/100-Days-Of-ML-Code/blob/master/README.md 逻辑回归
逻辑回归用来处理不同的分类问题#xff0c;这里的目的是预测当前被观察的对象属于哪个组。会给你提供一个离散的二进制输出结果#xff0c;一个简单例子#xff1a;判断一个人是否会在… https://github.com/MLEveryday/100-Days-Of-ML-Code/blob/master/README.md 逻辑回归
逻辑回归用来处理不同的分类问题这里的目的是预测当前被观察的对象属于哪个组。会给你提供一个离散的二进制输出结果一个简单例子判断一个人是否会在选举中投票。
how to work
逻辑回归使用基础逻辑函数通过估算概率来测量因变量和自变量间的关系。
做出预测
这些概率值必修转换成二进制数以便实际中进行预测。这是逻辑函数sigmoid的任务然后使用阈值分类器将(0,1)范围的值转换为0和1的值来表示结果。
区别
逻辑回归给出离散的输出 线性回归给出连续的输出
sigmoid函数
一个S型曲线可以实现将任意真实值映射为值域范围为0-1的值 θ ( s ) \theta(s) θ(s) 1 1 e − s {1\over 1e^{-s}} 1e−s1 极大似然估计–Maximum Likelihood Estimation
利用已知样本结果反推最有可能导致这样结果的参数值。 用于估计参数使得观测数据在给定模型下的概率最大化。 极大似然估计的核心思想是选择使观测数据出现的概率最大的参数值因为这些参数值使数据出现的可能性最高。
基本原理
定义模型首先需要定义一个概率模型通常用参数化的概率分布表示。这个模型包括一个参数向量或参数集需要估计。建立似然函数似然函数是关于模型参数的函数它描述了给定参数值时观测数据的可能性。似然函数通常用 L ( θ ∣ x ) L(θ|x) L(θ∣x), θ θ θ是要估计的参数 x x x是观测数据。最大化似然函数通过找到使似然函数最大化的参数 θ θ θ来进行估计。这通常可以通过计算似然函数的梯度并使用数值优化方法如梯度下降或牛顿法来实现。估计结果得到最大似然估计就可以用它来代表参数的估计值。通常估计的参数值具有使观测数据出现的可能性最大化的性质。
特征缩放
StandardScaler通过以下方式进行特征缩放
计算每个特征的均值mean和标准差standard deviation。 对每个特征进行标准化使其具有均值为0和标准差为1的分布。具体计算方式是将每个特征的值减去均值然后除以标准差。
###1
import numpy as np
import matplotlib.pyplot as plt
import pandas as pddataset pd.read_csv(Social_Network_Ads.csv)
X dataset.iloc[:, [2, 3]].values ## 选取23两列--Age salary
y dataset.iloc[:, 4].values ## 选取最后一列#from sklearn.cross_validation import train_test_split#old
from sklearn.model_selection import train_test_split, cross_val_score#new
X_train, X_test, y_train, y_test train_test_split(X, y, test_size 0.25, random_state 0)# 特征缩放是数据预处理的一个重要步骤它有助于确保不同特征之间的尺度一致避免某些特征对模型训练产生过大的影响。
from sklearn.preprocessing import StandardScaler ##特征缩放
sc StandardScaler()# 使用了StandardScaler类来标准化特征
X_train sc.fit_transform(X_train)
# 在训练集上计算均值和标准差并进行特征缩放
X_test sc.transform(X_test)
# 在测试集上使用相同的均值和标准差进行特征缩放
### 2
from sklearn.linear_model import LogisticRegression
# 使用了scikit-learnsklearn库中的逻辑回归Logistic Regression模型
classifier LogisticRegression()
classifier.fit(X_train, y_train)
# X_train 是训练集的特征数据y_train 是对应的训练集目标标签。
# 通过拟合fitting逻辑回归模型模型会学习如何根据输入特征来预测目标变量 y。### 3
y_pred classifier.predict(X_test)# 使用训练好的模型进行预测
# predict 方法接受测试数据作为输入然后返回模型根据输入数据的特征所做的预测。from sklearn.metrics import confusion_matrix
cm confusion_matrix(y_test, y_pred)
# 对预测结果进行评估
# 使用了 confusion_matrix 函数来计算混淆矩阵以便对分类模型的性能进行评估。
# 混淆矩阵是评估分类模型的一个重要工具它显示了模型的预测结果与实际标签之间的关系具体来说混淆矩阵包含以下四个关键指标
真正例True PositivesTP模型正确预测为正类别的样本数量。 假正例False PositivesFP模型错误预测为正类别的样本数量。 真负例True NegativesTN模型正确预测为负类别的样本数量。 假负例False NegativesFN模型错误预测为负类别的样本数量。 通过这些指标您可以计算各种性能指标如准确率、召回率、精确度和F1分数
# 计算准确率
accuracy (TP TN) / (TP TN FP FN)# 计算召回率
recall TP / (TP FN)# 计算精确度
precision TP / (TP FP)# 计算F1分数
f1_score 2 * (precision * recall) / (precision recall)
# 绘制分类器的决策边界和数据点的可视化
# 使用了matplotlib库来创建决策区域图并将测试集的样本点可视化
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.colors import ListedColormapdef plot_decision_regions(X, y, classifier, test_idxNone, resolution0.02):# setup marker generator and color mapmarkers (s, x, o, ^, v)colors (red, blue, lightgreen, gray, cyan)cmap ListedColormap(colors[:len(np.unique(y))])# plot the decision surfacex1_min, x1_max X[:, 0].min() - 1, X[:, 0].max() 1x2_min, x2_max X[:, 1].min() - 1, X[:, 1].max() 1xx1, xx2 np.meshgrid(np.arange(x1_min, x1_max, resolution), np.arange(x2_min, x2_max, resolution))Z classifier.predict(np.array([xx1.ravel(), xx2.ravel()]).T)Z Z.reshape(xx1.shape)plt.contourf(xx1, xx2, Z, alpha0.4, cmapcmap)plt.xlim(xx1.min(), xx1.max())plt.ylim(xx2.min(), xx2.max())# plot class samplesfor idx, cl in enumerate(np.unique(y)):plt.scatter(xX[y cl, 0], yX[y cl, 1],alpha0.8, ccmap(idx),markermarkers[idx], labelcl)# highlight test samplesif test_idx:X_test, y_test X[test_idx, :], y[test_idx]plt.scatter(X_test[:, 0], X_test[:, 1], c, alpha1.0, linewidth1, markero, s55, labeltest set)plot_decision_regions(X_test, y_pred, classifierclassifier)
plt.xlabel(age)
plt.ylabel(salary)
plt.legend(locupper left)
plt.title(Test set)
plt.show()