其他分享
首页 > 其他分享> > 逻辑回归

逻辑回归

作者:互联网

这里写自定义目录标题

逻辑回归(python实现)

调用sklearn函数学习症状证候数据集得到各症状的分值

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

随着人工智能的不断发展,机器学习这门技术也越来越重要,尤其是在医学领域中,机器学习可以学习名老中医的治病经验从而得出各个症状对证候的影响,辅助医生对患者进行诊治。


提示:以下是本篇文章正文内容,下面案例可供参考

一、什么是逻辑回归?

辑回归虽然名字叫做回归,但实际上却是一种分类学习方法。线性回归完成的是回归拟合任务,而对于分类任务,我们同样需要一条线,但不是去拟合每个数据点,而是把不同类别的样本区分开来。

二、使用步骤

1.读取文件数据

代码如下(示例):

import numpy as np # 快速操作结构数组的工具
import pandas as pd
import os
np.set_printoptions(suppress=True)
data1=np.loadtxt(open('D:\\逻辑回归\\紫癜症状.csv'), delimiter=',', skiprows =1)#读取含有多个数组的文件
row1 = data1.shape[0]#训练数据行数
col1 = data1.shape[1]#数据列数

2.生成x矩阵和y矩阵

代码如下(示例):

dataMat = np.mat(data1)
y_train = dataMat[:,col1-1]   # 类别变量
X_train =dataMat[:,0:col1-1]
X_train = np.mat(X_train)

3.调用sklearn函数对医学数据进行学习

代码如下(示例):

from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
model.fit(X_train, y_train)
w=model.coef_
#print('各个结论所对应的权重系数:\n',model.coef_)
# 使用模型预测
predict = model.predict(X_train)   #预测分类y
data1 = pd.DataFrame(predict)
data1.to_csv('D:\\逻辑回归\\瘀血阻络证结果.csv')

4.将各症状的分值写入文件(阈值要改为10,方便不同算法进行对比,各症状分值也要按照对应的比例进行缩放)

代码如下(示例):

b=model.intercept_
print('各个结论所对应的b:\n',-b*(10/-b))
w=w.flatten()   #对w进行降为
w=w*(10/-b)     #等比例缩放w
#s=np.argsort(-w)
#建立字典并输入到文件中
fd=open("D:\\逻辑回归\\紫癜症状.csv",encoding='gbk').readline()
keys=fd.strip(',').split(',')
values=w.tolist()
dictionary=dict(zip(keys,values))
a=sorted(dictionary.items(),key=lambda x:x[1],reverse=True)
#print(a)
np.savetxt('D:\\逻辑回归\\瘀血阻络证(逻辑回归).csv',a,delimiter=',',fmt='%s')

5.对模型的验证,从准确率、召回率测试验证。

代码如下(示例):

from sklearn.metrics  import  accuracy_score
from sklearn.metrics  import  recall_score
accuracy=accuracy_score(y_train, predict)
recall=recall_score(y_train,predict)
print("准确率:%.4f 召回率:%.4f" %(accuracy,recall))

该处使用的url网络请求的数据。


总结

提示:这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了调用sklearn函数实现逻辑回归的方法,大家可以对比贝叶斯算法、EM算法看下得到的结果相似度如何。

标签:症状,逻辑,回归,分值,train,sklearn
来源: https://blog.csdn.net/weixin_50695853/article/details/112665576