建立一个逻辑回归模型,根据自己前几次的作业成绩,来预测自己期末考试的成绩能否够80, python 编程实现
时间: 2023-10-09 20:08:14 浏览: 94
好的,这是一个分类问题,我们可以使用逻辑回归模型进行建模。以下是实现的步骤:
1. 导入需要的库和数据集
我们需要使用 `pandas` 库来读取数据集,使用 `sklearn` 库来进行模型的建立和评估。
```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
```
2. 读取数据集
我们可以使用 `pandas` 库中的 `read_csv()` 函数来读取数据集。
```python
data = pd.read_csv('grades.csv')
```
3. 数据预处理
我们需要对数据进行预处理,将成绩数据转化为二分类问题,即将成绩大于等于80分的标记为1,小于80分的标记为0。
```python
data['pass'] = data['grade'].apply(lambda x: 1 if x >= 80 else 0)
```
4. 划分数据集
我们将数据集分为训练集和测试集,其中训练集用于模型的训练,测试集用于模型的评估。
```python
X = data[['exam1', 'exam2', 'exam3']]
y = data['pass']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
5. 建立模型
我们使用 `sklearn` 库中的 `LogisticRegression()` 函数来建立逻辑回归模型。
```python
model = LogisticRegression()
model.fit(X_train, y_train)
```
6. 模型评估
我们使用测试集来评估模型的预测效果,这里我们使用准确率作为评估指标。
```python
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
完整代码如下:
```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_csv('grades.csv')
# 数据预处理
data['pass'] = data['grade'].apply(lambda x: 1 if x >= 80 else 0)
# 划分数据集
X = data[['exam1', 'exam2', 'exam3']]
y = data['pass']
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# 建立模型
model = LogisticRegression()
model.fit(X_train, y_train)
# 模型评估
y_pred = model.predict(X_test)
accuracy = accuracy_score(y_test, y_pred)
print('Accuracy:', accuracy)
```
注意:这里的数据集需要根据实际情况进行替换。
阅读全文