python写一个逻辑回归代码
时间: 2023-03-08 21:12:37 浏览: 63
首先,需要引入必要的库:import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression# 读入数据集
data = pd.read_csv('data.csv')# 提取特征和标签
X = data.iloc[:, :-1].values
y = data.iloc[:, -1].values# 建立模型
model = LogisticRegression()
model.fit(X, y)# 预测
y_pred = model.predict(X)
相关问题
用python 写一个逻辑回归算法
Sure, 我可以帮你写一个逻辑回归算法。以下是基本的步骤和代码示例:
步骤1:导入所需的库
```python
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
```
步骤2:使用Pandas库加载数据集
```python
# 加载数据集
data = pd.read_csv("dataset.csv")
```
步骤3:数据预处理
```python
# 删除缺失值
data.dropna(inplace=True)
# 分离特征和标签
X = data.drop('label', axis=1)
y = data['label']
# 数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
```
步骤4:训练逻辑回归模型
```python
# 建立逻辑回归模型并训练
model = LogisticRegression()
model.fit(X_train, y_train)
```
步骤5:预测测试集
```python
# 使用训练好的模型预测测试集
y_pred = model.predict(X_test)
```
步骤6:评估模型性能
```python
# 评估模型性能,计算准确率
accuracy = accuracy_score(y_test, y_pred)
print("Accuracy: {:.2f}%".format(accuracy * 100))
```
完整的逻辑回归模型示例代码如下:
```python
import numpy as np
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
# 加载数据集
data = pd.read_csv("dataset.csv")
# 删除缺失值
data.dropna(inplace=True)
# 分离特征和标签
X = data.drop('label', axis=1)
y = data['label']
# 数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, 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: {:.2f}%".format(accuracy * 100))
```
希望这个简单的逻辑回归算法能够帮到你。
用python写一个逻辑回归
的代码。
下面是Python语言实现的逻辑回归的代码:
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义sigmoid函数
def sigmoid(z):
return 1 / (1 + np.exp(-z))
# 定义代价函数
def costFunction(theta, X, y):
m = X.shape[0] # 样本数
J = (-1 / m) * np.sum(y * np.log(sigmoid(X @ theta)) + (1 - y) * np.log(1 - sigmoid(X @ theta)))
grad = (1 / m) * (X.T @ (sigmoid(X @ theta) - y))
return J, grad
# 定义梯度下降函数
def gradientDescent(X, y, theta, alpha, num_iters):
m = X.shape[0] # 样本数
J_history = [] # 记录每次迭代的损失函数值
for i in range(num_iters):
J, grad = costFunction(theta, X, y)
theta -= alpha * grad # 参数更新
J_history.append(J)
return theta, J_history
# 加载数据
data = np.loadtxt('data.txt', delimiter=',')
X = data[:, :-1]
y = data[:, -1]
# 特征归一化
X = (X - np.mean(X, axis=0)) / np.std(X, axis=0)
# 添加一列全为1的特征
X = np.hstack((np.ones((X.shape[0], 1)), X))
# 初始化参数
theta = np.zeros(X.shape[1])
# 设定学习率和迭代次数
alpha = 0.01
num_iters = 10000
# 梯度下降求解参数
theta, J_history = gradientDescent(X, y, theta, alpha, num_iters)
# 绘制代价函数值随迭代次数的变化曲线
plt.plot(np.arange(num_iters), J_history)
plt.xlabel('Iteration')
plt.ylabel('Cost')
plt.show()
# 预测
prob = sigmoid(np.array([1, 45, 85]) @ theta)
print('预测概率为:{:.2f}%'.format(prob * 100))
```
这个代码实现了逻辑回归,具体的实现步骤包括定义sigmoid函数、代价函数、梯度下降函数,以及加载数据、特征归一化、添加全为1的特征、初始化参数、设定学习率和迭代次数、调用梯度下降求解参数、绘制代价函数值随迭代次数的变化曲线和预测。