python sklearn库实现逻辑回归的实例代码

Sklearn简介

Scikit-learn(sklearn)是机器学习中常用的第三方模块,对常用的机器学习方法进行了封装,包括回归(Regression)、降维(Dimensionality Reduction)、分类(Classfication)、聚类(Clustering)等方法。当我们面临机器学习问题时,便可根据下图来选择相应的方法。

Sklearn具有以下特点:

  • 简单高效的数据挖掘和数据分析工具
  • 让每个人能够在复杂环境中重复使用
  • 建立NumPy、Scipy、MatPlotLib之上

代码如下所示:

import xlrd
import matplotlib.pyplot as plt
import numpy as np
from sklearn import model_selection
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
data = xlrd.open_workbook('gua.xlsx')
sheet = data.sheet_by_index(0)
Density = sheet.col_values(6)
Sugar = sheet.col_values(7)
Res = sheet.col_values(8)
# 读取原始数据
X = np.array([Density, Sugar])
# y的尺寸为(17,)
y = np.array(Res)
X = X.reshape(17,2)
# 绘制分类数据
f1 = plt.figure(1)
plt.title('watermelon_3a')
plt.xlabel('density')
plt.ylabel('ratio_sugar')
# 绘制散点图(x轴为密度,y轴为含糖率)
plt.scatter(X[y == 0,0], X[y == 0,1], marker = 'o', color = 'k', s=100, label = 'bad')
plt.scatter(X[y == 1,0], X[y == 1,1], marker = 'o', color = 'g', s=100, label = 'good')
plt.legend(loc = 'upper right')
plt.show()
# 从原始数据中选取一半数据进行训练,另一半数据进行测试
X_train, X_test, y_train, y_test = model_selection.train_test_split(X, y, test_size=0.5, random_state=0)
# 逻辑回归模型
log_model = LogisticRegression()
# 训练逻辑回归模型
log_model.fit(X_train, y_train)
# 预测y的值
y_pred = log_model.predict(X_test)
# 查看测试结果
print(metrics.confusion_matrix(y_test, y_pred))
print(metrics.classification_report(y_test, y_pred))

Python从入门到项目实践 PDF全彩带源码版

转载于:https://www.cnblogs.com/imaxiaobian/p/11113477.html

### 回答1: 好的,下面是一个简单的示例代码: ``` from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.metrics import accuracy_score # 假设已经有了特征X和标签y X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) # 初始化逻辑回归模型 lr_model = LogisticRegression() # 训练模型 lr_model.fit(X_train, y_train) # 在测试集上进行预测 y_pred = lr_model.predict(X_test) # 计算模型准确率 accuracy = accuracy_score(y_test, y_pred) print("Accuracy:", accuracy) ``` 其中,`train_test_split`函数用于将数据集分成训练集和测试集;`LogisticRegression`用于初始化逻辑回归模型;`fit`方法用于训练模型;`predict`方法用于在测试集上进行预测;`accuracy_score`函数用于计算模型准确率。 ### 回答2: 通过sklearn建立逻辑回归模型十分简单。首先,导入需要的和数据集。我们可以使用sklearn的datasets模块导入一些已经存在的数据集,例如iris鸢尾花数据集。 ```python from sklearn import datasets import pandas as pd # 导入数据集 iris = datasets.load_iris() # 转换成DataFrame X = pd.DataFrame(iris.data, columns=iris.feature_names) y = pd.DataFrame(iris.target, columns=['target']) ``` 数据导入完成后,我们需要将数据集分割成训练集和测试集。可以使用sklearn的model_selection模块中的train_test_split函数来实现。 ```python from sklearn.model_selection import train_test_split # 分割数据集 X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42) ``` 接下来,我们可以使用逻辑回归模型进行训练和预测。导入逻辑回归算法模型并创建一个模型实例,然后使用模型的fit方法对训练集进行训练。 ```python from sklearn.linear_model import LogisticRegression # 创建逻辑回归模型实例 logistic_regression = LogisticRegression() # 对训练集进行训练 logistic_regression.fit(X_train, y_train) ``` 训练完成后,我们可以使用模型的predict方法对测试集进行预测。 ```python # 对测试集进行预测 y_pred = logistic_regression.predict(X_test) ``` 最后,我们可以使用一些评估指标来评估模型的性能,例如准确率、精确率、召回率等。 ```python from sklearn.metrics import accuracy_score, precision_score, recall_score # 计算准确率 accuracy = accuracy_score(y_test, y_pred) # 计算精确率 precision = precision_score(y_test, y_pred, average='macro') # 计算召回率 recall = recall_score(y_test, y_pred, average='macro') ``` 通过以上步骤,我们就可以使用sklearn建立逻辑回归模型,并对模型进行训练、预测和评估了。 ### 回答3: 使用sklearn建立逻辑回归模型的基本步骤如下: 1. 导入所需的和数据集:首先,我们需要导入sklearn中的相关模块。例如,我们可以导入`from sklearn.linear_model import LogisticRegression`来引入逻辑回归模型。接下来,我们需要准备用于训练和测试的数据集。 2. 数据预处理:在建立模型之前,我们需要对数据进行预处理。通常,这包括将数据分为特征和目标变量,并进行缺失值处理、特征缩放、特征选择等操作。 3. 建立逻辑回归模型对象:使用`LogisticRegression()`函数创建逻辑回归模型的对象。我们可以通过设置不同的参数来调整模型的行为,例如正则化方式、正则化强度等。 4. 拟合模型:使用训练数据对模型进行拟合,即使用`fit(X, y)`方法,其中X表示特征变量,y表示目标变量。 5. 预测和评估:使用测试数据对模型进行预测,并评估模型的性能。通常,我们可以使用准确率、精确率、召回率等指标来评估模型的性能。 6. 调参和改进:根据评估结果,可以尝试调整模型的参数或进行特征工程等操作来改善模型的性能。 最后,我们可以根据自己的需求使用训练好的模型进行预测或其他操作。使用sklearn逻辑回归模型能够方便地进行二分问题的建模,对于许多实际应用场景具有很高的实用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值