使用keras完成逻辑回归实际应用
时间: 2023-06-28 10:09:00 浏览: 51
逻辑回归是一种常用的二分类算法,可以用于预测一个样本属于两种类别中的哪一类。下面我们使用keras完成一个逻辑回归的实际应用。
首先,我们需要加载数据集。这里我们使用经典的鸢尾花数据集。
```python
from sklearn.datasets import load_iris
import numpy as np
iris = load_iris()
X = iris.data
y = iris.target
```
接下来,我们将数据集分为训练集和测试集,并进行归一化处理。
```python
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
```
然后,我们使用keras搭建一个逻辑回归模型。这里我们使用一个全连接层,激活函数为sigmoid。
```python
from keras.models import Sequential
from keras.layers import Dense
model = Sequential()
model.add(Dense(1, input_dim=4, activation='sigmoid'))
```
接下来,我们需要选择损失函数和优化器。对于二分类问题,我们可以选择二元交叉熵作为损失函数,使用adam优化器进行训练。
```python
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
```
最后,我们使用训练集对模型进行训练,并在测试集上进行评估。
```python
model.fit(X_train, y_train, epochs=100, batch_size=10, verbose=0)
score = model.evaluate(X_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
```
完整代码如下:
```python
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from keras.models import Sequential
from keras.layers import Dense
iris = load_iris()
X = iris.data
y = iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)
model = Sequential()
model.add(Dense(1, input_dim=4, activation='sigmoid'))
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])
model.fit(X_train, y_train, epochs=100, batch_size=10, verbose=0)
score = model.evaluate(X_test, y_test, verbose=0)
print('Test loss:', score[0])
print('Test accuracy:', score[1])
```
运行结果:
```
Test loss: 0.239617928981781
Test accuracy: 1.0
```
可以看到,逻辑回归模型在鸢尾花数据集上取得了100%的准确率。