logistic回归python代码
时间: 2023-06-05 18:47:23 浏览: 124
以下是一个简单的使用 Python 和 scikit-learn 库实现逻辑回归的代码示例:
```
from sklearn.linear_model import LogisticRegression
from sklearn.datasets import load_iris
# 加载 iris 数据集
iris = load_iris()
X, y = iris.data, iris.target
# 创建逻辑回归模型
clf = LogisticRegression()
# 训练模型
clf.fit(X, y)
# 预测
y_pred = clf.predict(X)
# 评估准确率
accuracy = clf.score(X, y)
print("Accuracy: ", accuracy)
```
这段代码使用了 scikit-learn 库中的逻辑回归模型,并使用 iris 数据集进行了简单的训练和预测。
请注意,这只是一个示例,在实际应用中应该使用交叉验证来评估模型的性能。
相关问题
logistic回归 python代码
以下是一个简单的 Logistic 回归的 Python 代码示例:
```
import numpy as np
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.linear_model import LogisticRegression
# 生成一些随机数据
X, y = make_classification(n_samples=100, n_features=2, n_informative=2, n_redundant=0, random_state=42)
# 使用 Logistic 回归来拟合数据
clf = LogisticRegression(random_state=42)
clf.fit(X, y)
# 绘制决策边界
x_min, x_max = X[:, 0].min() - .5, X[:, 0].max() + .5
y_min, y_max = X[:, 1].min() - .5, X[:, 1].max() + .5
xx, yy = np.meshgrid(np.linspace(x_min, x_max, 100), np.linspace(y_min, y_max, 100))
Z = clf.predict_proba(np.c_[xx.ravel(), yy.ravel()])[:, 1]
Z = Z.reshape(xx.shape)
plt.contourf(xx, yy, Z, cmap=plt.cm.RdBu, alpha=.8)
# 绘制样本点
plt.scatter(X[:, 0], X[:, 1], c=y, cmap=plt.cm.RdBu, edgecolor='white')
plt.xlabel('Feature 1')
plt.ylabel('Feature 2')
plt.xlim(xx.min(), xx.max())
plt.ylim(yy.min(), yy.max())
plt.xticks(())
plt.yticks(())
plt.show()
```
这段代码使用 scikit-learn 库中的 `make_classification()` 函数生成了一些二维的随机数据,并使用 Logistic 回归来拟合这些数据,最后绘制了决策边界和样本点。如果您需要更详细的解释,请告诉我。
Logistic回归python代码
Logistic回归的Python代码如下:
```python
import numpy as np
# 加载数据集
def loadDataSet():
dataMat = []
labelMat = []
fr = open('testSet.txt')
for line in fr.readlines():
lineArr = line.strip().split()
dataMat.append([1.0,float(lineArr[0]),float(lineArr[1])])
labelMat.append(int(lineArr[2]))
return dataMat,labelMat
# Sigmoid函数
def sigmoid(inX):
return 1.0 / (1 + np.exp(-inX))
# 梯度上升算法
def gradAscent(dataMatIn, classLabels):
dataMatrix = np.mat(dataMatIn)
labelMat = np.mat(classLabels).transpose()
m, n = np.shape(dataMatrix)
alpha = 0.001
maxCycles = 500
weights = np.ones((n,1))
for k in range(maxCycles):
h = sigmoid(dataMatrix * weights)
error = labelMat - h
weights = weights + alpha * dataMatrix.transpose() * error
return weights
# 测试代码
dataMat,labelMat = loadDataSet()
weights = gradAscent(dataMat, labelMat)
print(weights)
```
阅读全文