使用Logistic算法从疝气病症预测病马的死亡率

从疝气病症预测病马的死亡率

（1）收集数据：给定数据文件

（2）准备数据：用Python解析文本文件并填充缺失值

（3）分析数据：可视化并观察数据

（4）训练算法：使用优化算法，找到最佳系数

（5）测试算法：错误率

（6）使用算法：预测

准备数据：处理数据中的缺失值

from google.colab import drive
drive.mount("/content/drive")
Mounted at /content/drive

测试算法：用Logistic回归进行分类

from math import *
from numpy import *
def sigmoid(inX):
return 1.0/(1+exp(-inX))
def stocGradAscent1(dataMatrix, classLabels, numIter=150):
m, n = shape(dataMatrix)
weights = ones(n)
for j in range(numIter):
dataIndex = list(range(m))
for i in range(m):
alpha = 4/(1+j+i)+0.01
randIndex = int(random.uniform(0, len(dataIndex)))
h = sigmoid(sum(dataMatrix[randIndex] * weights))
error = classLabels[randIndex] - h
weights = weights + alpha * error * dataMatrix[randIndex]
del(dataIndex[randIndex])
return weights

def classifyVector(inX, weights):
prob = sigmoid(sum(inX * weights))
if prob > 0.5:
return 1
else:
return 0
def colicTest():
frTrain = open('/content/drive/MyDrive/Colab Notebooks/MachineLearning/《机器学习实战》/Logistic回归/从疝气病症预测病马的死亡率/horseColicTraining.txt')
frTest = open('/content/drive/MyDrive/Colab Notebooks/MachineLearning/《机器学习实战》/Logistic回归/从疝气病症预测病马的死亡率/horseColicTest.txt')
trainingSet = []
trainingLabels = []
currLine = line.strip().split('\t')
lineArr = []
for i in range(21):
lineArr.append(float(currLine[i]))
trainingSet.append(lineArr)
trainingLabels.append(float(currLine[21]))
errorCount = 0
numTestVec = 0.0
numTestVec += 1.0
currLine = line.strip().split('\t')
lineArr = []
for i in range(21):
lineArr.append(float(currLine[i]))
if int(classifyVector(array(lineArr), trainWeights)) != int(currLine[21]):
errorCount += 1
errorRate = (float(errorCount)/numTestVec)
print("the error rate of this test is: %f" % errorRate)
return errorRate

def multiTest():
numTests = 10
errorSum = 0
for k in range(numTests):
errorSum += colicTest()
print("after %d iterations the average error rate is: %f" % (numTests, errorSum/float(numTests)))

multiTest()
<ipython-input-5-cc83312199bc>:4: RuntimeWarning: overflow encountered in exp
return 1.0/(1+exp(-inX))

the error rate of this test is: 0.283582
the error rate of this test is: 0.313433
the error rate of this test is: 0.313433
the error rate of this test is: 0.358209
the error rate of this test is: 0.253731
the error rate of this test is: 0.358209
the error rate of this test is: 0.373134
the error rate of this test is: 0.358209
the error rate of this test is: 0.343284
the error rate of this test is: 0.402985
after 10 iterations the average error rate is: 0.335821

|
1月前
|

logistic算法
logistic算法
38 0
|
13天前
|

Logistic算法
Logistic算法
12 2
|
9月前
|

【数学建模】逻辑回归算法(Logistic Resgression)
【数学建模】逻辑回归算法(Logistic Resgression)
81 0
|
12月前
|

181 0
|

115 0
|

【语音加密】基于混沌logistic算法实现语音信号加密解密附GUI界面
【语音加密】基于混沌logistic算法实现语音信号加密解密附GUI界面
196 0
|

217 0
|

154 0
|

【机器学习】Logistic 分类回归算法 （二元分类 & 多元分类）
【机器学习】Logistic 分类回归算法 （二元分类 & 多元分类）
354 0
|
1天前
|

**摘要：** 该研究利用遗传算法（GA）对混合发电系统进行优化配置，旨在最小化风能、太阳能及电池储能的成本并提升系统性能。MATLAB 2022a用于实现这一算法。仿真结果展示了一系列图表，包括总成本随代数变化、最佳适应度随代数变化，以及不同数据的分布情况，如负荷、风速、太阳辐射、弃电、缺电和电池状态等。此外，代码示例展示了如何运用GA求解，并绘制了发电单元的功率输出和年变化。该系统原理基于GA的自然选择和遗传原理，通过染色体编码、初始种群生成、适应度函数、选择、交叉和变异操作来寻找最优容量配置，以平衡成本、效率和可靠性。
29 11