数据文件ex.csv是关于200个不同年龄(age,定量变量)和性别(sex,定性变量,0和1分别代表女和男)的人对某项服务产品的观点(opinion,二水平定性变量,用1和0代表认可和不认可)的数据,将观点作为因变量,建立logistic模型加以分析,并预测一个年龄是30岁的女人对该项服务产品认可的可能性。
时间: 2024-03-07 21:53:17 浏览: 161
EX0-EX1.rar_ex0和ex1
好的,我可以为您讲解如何使用 Python 进行 logistic 回归建模和预测。
首先,我们需要导入相关的 Python 库,比如 pandas, numpy 和 sklearn:
```python
import pandas as pd
import numpy as np
from sklearn.linear_model import LogisticRegression
```
然后,我们可以使用 pandas 读取数据文件 ex.csv:
```python
df = pd.read_csv('ex.csv')
```
接着,我们需要将数据划分为训练集和测试集,以便评估模型的性能:
```python
from sklearn.model_selection import train_test_split
X = df[['age', 'sex']]
y = df['opinion']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
在 logistic 回归模型中,我们需要将定性变量转换为哑变量(dummy variable)进行建模。可以使用 pandas 中的 get_dummies 函数来完成这个过程:
```python
X_train = pd.get_dummies(X_train, columns=['sex'])
X_test = pd.get_dummies(X_test, columns=['sex'])
```
然后,我们就可以使用 sklearn 中的 LogisticRegression 模型进行拟合:
```python
clf = LogisticRegression()
clf.fit(X_train, y_train)
```
建模完成后,我们可以使用模型对测试集进行预测,并计算模型的准确率:
```python
y_pred = clf.predict(X_test)
accuracy = clf.score(X_test, y_test)
print("Accuracy:", accuracy)
```
最后,我们可以使用训练好的模型,对一个年龄为30岁、性别为女的人进行预测:
```python
new_data = pd.DataFrame({'age': [30], 'sex': [0]})
new_data = pd.get_dummies(new_data, columns=['sex'])
prob = clf.predict_proba(new_data)[:, 1]
print("Probability of approval:", prob)
```
这里,我们将新的数据构建成一个 DataFrame,然后使用 get_dummies 函数将性别转化为哑变量。最后,我们使用 predict_proba 函数预测该人对该项服务产品认可的概率。
阅读全文