Day6--Logistic Regression代码

数据集 | 社交网络

该数据集包含了社交网络中用户的信息。这些信息涉及用户ID,性别,年龄以及预估薪资。一家汽车公司刚刚推出了他们新型的豪华SUV,我们尝试预测哪些用户会购买这种全新SUV。并且在最后一列用来表示用户是否购买。我们将建立一种模型来预测用户是否购买这种SUV,该模型基于两个变量,分别是年龄和预计薪资。因此我们的特征矩阵将是这两列。我们尝试寻找用户年龄与预估薪资之间的某种相关性,以及他是否购买SUV的决定

步骤1 | 数据预处理

导入库

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

导入数据集

这里获取数据集

dataset = pd.read_csv('Social_Network_Ads.csv')
X = dataset.iloc[:, [2, 3]].values
Y = dataset.iloc[:,4].values

解析:dataset.iloc[:, [2, 3]].values选取的是数据集的年龄和预计薪资这两列,Y为是否购买

将数据集分成训练集和测试集

from sklearn.model_selection import train_test_split
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()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

步骤2 | 逻辑回归模型

该项工作的库将会是一个线性模型库,之所以被称为线性是因为逻辑回归是一个线性分类器,这意味着我们在二维空间中,我们两类用户(购买和不购买)将被一条直线分割。然后导入逻辑回归类。下一步我们将创建该类的对象,它将作为我们训练集的分类器。

将逻辑回归应用于训练集

from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression()
classifier.fit(X_train, y_train)

步骤3 | 预测

预测测试集结果

y_pred = classifier.predict(X_test)

步骤4 | 评估预测

我们预测了测试集。 现在我们将评估逻辑回归模型是否正确的学习和理解。因此这个混淆矩阵将包含我们模型的正确和错误的预测。

生成混淆矩阵

from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)

可视化

from matplotlib.colors import ListedColormap
X_set,y_set=X_train,y_train
X1,X2=np. meshgrid(np. arange(start=X_set[:,0].min()-1, stop=X_set[:, 0].max()+1, step=0.01),
                   np. arange(start=X_set[:,1].min()-1, stop=X_set[:,1].max()+1, step=0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(),X2.ravel()]).T).reshape(X1.shape),
             alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(),X1.max())
plt.ylim(X2.min(),X2.max())
for i,j in enumerate(np. unique(y_set)):
    plt.scatter(X_set[y_set==j,0],X_set[y_set==j,1],
                c = ListedColormap(('red', 'green'))(i), label=j)

plt. title(' LOGISTIC(Training set)')
plt. xlabel(' Age')
plt. ylabel(' Estimated Salary')
plt. legend()
plt. show()

X_set,y_set=X_test,y_test
X1,X2=np. meshgrid(np. arange(start=X_set[:,0].min()-1, stop=X_set[:, 0].max()+1, step=0.01),
                   np. arange(start=X_set[:,1].min()-1, stop=X_set[:,1].max()+1, step=0.01))

plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(),X2.ravel()]).T).reshape(X1.shape),
             alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(),X1.max())
plt.ylim(X2.min(),X2.max())
for i,j in enumerate(np. unique(y_set)):
    plt.scatter(X_set[y_set==j,0],X_set[y_set==j,1],
                c = ListedColormap(('red', 'green'))(i), label=j)

plt. title(' LOGISTIC(Test set)')
plt. xlabel(' Age')
plt. ylabel(' Estimated Salary')
plt. legend()
plt. show()

<think>好的,用户想要寻找Python相关的训练代码或教程,特别是机器学习的例子。首先,我需要回忆之前提供的参考引用,里面有一个线性回归的示例代码。这个例子来自【100精通Python】Day73,应该是一个不错的起点。 用户可能对机器学习的基础感兴趣,所以除了线性回归,我应该再举几个常见的例子,比如分类和聚类。比如逻辑回归和K均值聚类,这些是入门者常接触的算法。同时,用户可能也需要了解如何安装必要的库,比如scikit-learn,所以应该在回答中提到安装步骤。 接下来,我需要确保代码格式正确,按照用户的要求,行内数学公式用$...$,独立公式用$$...$$。例如,在解释线性回归时,可以提到损失函数$J(\theta)$,而逻辑回归的sigmoid函数可以用独立公式展示。 用户的问题中还提到需要生成相关问题,所以我要考虑他们可能进一步想知道的内容。比如不同算法的原理、如何评估模型、如何处理数据等。这些问题可以帮助用户深入学习。 另外,要注意回答结构清晰,分步骤说明。比如先介绍安装,再分别给出不同算法的代码示例,每个部分都简要说明步骤和用途。同时,确保引用正确,在参考的示例代码后添加[^1]。 最后,检查是否符合所有系统级指令:中文回答、LaTeX语法正确、代码块格式正确、相关问题生成。这样用户能得到全面且有用的信息,帮助他们开始Python机器学习的学习。</think>以下是为您整理的Python机器学习训练代码示例与教程指南,包含基础算法实现和应用场景: --- ### 一、Python机器学习基础环境配置 1. 安装必要库: ```bash pip install numpy pandas scikit-learn matplotlib ``` --- ### 二、经典算法代码示例 #### 1. 线性回归(监督学习) ```python from sklearn.linear_model import LinearRegression # 数据集 X_train = [[1], [2], [3], [4], [5]] # 特征矩阵 y_train = [2, 4, 6, 8, 10] # 目标值 # 模型训练 model = LinearRegression() model.fit(X_train, y_train) # 预测 X_test = [[6], [7], [8]] print("预测结果:", model.predict(X_test)) # 输出:[12. 14. 16.][^1] ``` **数学原理**:通过最小化残差平方和求解参数: $$ J(\theta) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)}) - y^{(i)})^2 $$ --- #### 2. 逻辑回归(分类算法) ```python from sklearn.linear_model import LogisticRegression from sklearn.datasets import load_iris # 加载鸢尾花数据集 X, y = load_iris(return_X_y=True) y = (y == 0).astype(int) # 二值化处理 # 训练分类器 clf = LogisticRegression() clf.fit(X, y) # 预测新样本 print("类别概率:", clf.predict_proba([[5.1, 3.5, 1.4, 0.2]])) ``` --- #### 3. K均值聚类(无监督学习) ```python from sklearn.cluster import KMeans import numpy as np # 生成模拟数据 X = np.array([[1, 2], [1, 4], [1, 0], [4, 2], [4, 4], [4, 0]]) # 聚类模型 kmeans = KMeans(n_clusters=2) kmeans.fit(X) print("簇中心:", kmeans.cluster_centers_) ``` --- ### 三、学习路径建议 1. **基础阶段**: - 掌握`sklearn`的`fit/predict`接口模式 - 理解特征工程中的标准化处理: $$ z = \frac{x - \mu}{\sigma} $$ 2. **进阶阶段**: - 学习交叉验证与网格搜索 - 掌握Pipeline构建自动化流程 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值