请按照如下要求完成逻辑回归模型的构建及评估。 1.读取数据源customer_lost.xlsx 2.以属性“是否流失”作为目标属性 3.以80%,20%划分数据集为训练集及测试集 4.建立逻辑回归模型,训练模型并输出模型准确率
时间: 2024-01-24 17:17:09 浏览: 26
好的,我会按照您的要求来完成逻辑回归模型的构建及评估。
首先,需要安装 pandas 和 sklearn 两个库,您可以使用以下命令进行安装:
```python
!pip install pandas scikit-learn
```
然后,我们可以开始读取数据源:
```python
import pandas as pd
data = pd.read_excel('customer_lost.xlsx')
```
接下来,我们需要对数据进行预处理,将目标属性转换成 0 和 1 的形式,并进行数据集的划分:
```python
from sklearn.model_selection import train_test_split
# 将目标属性转换成 0 和 1 的形式
data['是否流失'] = data['是否流失'].apply(lambda x: 1 if x == '是' else 0)
# 划分训练集和测试集
train_data, test_data = train_test_split(data, test_size=0.2, random_state=42)
```
然后,我们可以建立逻辑回归模型,并训练模型:
```python
from sklearn.linear_model import LogisticRegression
# 定义特征和目标属性
features = ['客户编号', '年龄', '入网时间', '月消费']
target = '是否流失'
# 训练模型
model = LogisticRegression()
model.fit(train_data[features], train_data[target])
```
最后,我们可以用测试集来评估模型的准确率:
```python
from sklearn.metrics import accuracy_score
# 预测测试集的结果
y_pred = model.predict(test_data[features])
# 计算准确率
accuracy = accuracy_score(test_data[target], y_pred)
print('模型准确率为:{:.2f}%'.format(accuracy * 100))
```
完整的代码如下:
```python
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# 读取数据源
data = pd.read_excel('customer_lost.xlsx')
# 将目标属性转换成 0 和 1 的形式
data['是否流失'] = data['是否流失'].apply(lambda x: 1 if x == '是' else 0)
# 划分训练集和测试集
train_data, test_data = train_test_split(data, test_size=0.2, random_state=42)
# 定义特征和目标属性
features = ['客户编号', '年龄', '入网时间', '月消费']
target = '是否流失'
# 训练模型
model = LogisticRegression()
model.fit(train_data[features], train_data[target])
# 预测测试集的结果
y_pred = model.predict(test_data[features])
# 计算准确率
accuracy = accuracy_score(test_data[target], y_pred)
print('模型准确率为:{:.2f}%'.format(accuracy * 100))
```
运行代码后,即可得到模型的准确率。