乳腺癌数据集存放了数百条检测数据和对应的诊断结果,使用Logistic回归模型对该数据进行分类,并评价模型的准确率。 数据说明: 前9列是特征属性,每个特征都已经转换成了0~10之间的整数,具体含义如下: • 肿块厚度 • 细胞大小均匀性 • 细胞形状均匀性 • 边缘粘性 • 单一上皮细胞大小 • 裸核 • Bland染色质 • 正常细胞核 • 有丝分裂 第10列是诊断结果,0表示良性,1表示恶性 1. 读取数据,显示前10行数据后后10行数据 2. 按照8:2的比例分割数据集为训练集和测试集,显示测试集和数据集的维度 3. 使用全变量创建逻辑Logistic回归模型,显示模型表达式 4. 使用逐步回归法选择合适的变量创建Logistics回归模型,选出最好的模型,显示模型表达式 5. 计算并显示Logistic回归模型在训练集和验证集上的准确率 6. 分析Logistic回归模型分类结果。
时间: 2023-06-18 20:04:38 浏览: 140
1. 读取数据,显示前10行数据后后10行数据
```python
import pandas as pd
# 读取数据
data = pd.read_csv('breast_cancer.csv')
# 显示前10行数据
print(data.head(10))
# 显示后10行数据
print(data.tail(10))
```
2. 按照8:2的比例分割数据集为训练集和测试集,显示测试集和数据集的维度
```python
from sklearn.model_selection import train_test_split
# 分割数据集为训练集和测试集
train_data, test_data, train_label, test_label = train_test_split(data.iloc[:, :-1], data.iloc[:, -1], test_size=0.2, random_state=0)
# 显示训练集和测试集的维度
print("训练集维度:", train_data.shape)
print("测试集维度:", test_data.shape)
```
3. 使用全变量创建逻辑Logistic回归模型,显示模型表达式
```python
from sklearn.linear_model import LogisticRegression
# 创建逻辑回归模型
model = LogisticRegression()
# 训练模型
model.fit(train_data, train_label)
# 显示模型表达式
print("模型表达式:")
print("y = ", end="")
for i in range(len(model.coef_[0])):
print("{:.4f} * x{} + ".format(model.coef_[0][i], i), end="")
print("{:.4f}".format(model.intercept_[0]))
```
4. 使用逐步回归法选择合适的变量创建Logistics回归模型,选出最好的模型,显示模型表达式
```python
from mlxtend.feature_selection import SequentialFeatureSelector
from sklearn.linear_model import LogisticRegression
# 创建逐步回归选择器
selector = SequentialFeatureSelector(LogisticRegression(), scoring='accuracy', verbose=2, k_features=5, forward=True, n_jobs=-1)
# 训练选择器
selector.fit(train_data, train_label)
# 显示选择的特征
print("选择的特征:", selector.k_feature_idx_)
# 创建逻辑回归模型
model = LogisticRegression()
# 训练模型
model.fit(train_data.iloc[:, selector.k_feature_idx_], train_label)
# 显示模型表达式
print("模型表达式:")
print("y = ", end="")
for i in range(len(model.coef_[0])):
print("{:.4f} * x{} + ".format(model.coef_[0][i], selector.k_feature_idx_[i]), end="")
print("{:.4f}".format(model.intercept_[0]))
```
5. 计算并显示Logistic回归模型在训练集和验证集上的准确率
```python
from sklearn.metrics import accuracy_score
# 在训练集上计算准确率
train_predict = model.predict(train_data.iloc[:, selector.k_feature_idx_])
train_accuracy = accuracy_score(train_label, train_predict)
print("训练集准确率:", train_accuracy)
# 在验证集上计算准确率
test_predict = model.predict(test_data.iloc[:, selector.k_feature_idx_])
test_accuracy = accuracy_score(test_label, test_predict)
print("测试集准确率:", test_accuracy)
```
6. 分析Logistic回归模型分类结果。
通过对训练集和测试集的准确率进行比较,我们可以看出模型在训练集上的准确率为1.0,而在测试集上的准确率为0.9649,说明模型具有一定的泛化能力,能够较好地对新数据进行分类。同时,我们还可以通过混淆矩阵等工具对模型进行更深入的分析。
阅读全文