大数据分析机器学习(三)之岭回归-医疗心率数据分析

30 篇文章 1 订阅
8 篇文章 0 订阅

大数据分析机器学习(一)之线性模型-年龄和心率关系
大数据分析机器学习(二)之直方图和多元线性回归

岭回归

岭回归(英文名:ridge regression, Tikhonov regularization)是一种专用于共线性数据分析的有偏估计回归方法,实质上是一种改良的最小二乘估计法,通过放弃最小二乘法的无偏性,以损失部分信息、降低精度为代价获得回归系数更为符合实际、更可靠的回归方法,对病态数据的拟合要强于最小二乘法。

数据

以下是我们模拟的医疗数据,breath 呼吸次数,bp血压,heartbeat 心跳,hrv-ssdn心率变异率,hrv-rmssd 心率变异率rmssd数据,healthy,健康程度,还是说明这边的数据都是虚拟出来的,健康程序也是假的,重要的是掌握方法,另外心率变异率等大数据算法会重新写一篇文章。
在这里插入图片描述
下面我们不但要计算模型,还要把模型保存下来,以便于下次能够读取模型,并且做成服务。

train_test_split

把数据集合分成train 和 test数据

X_train, X_test, y_train, y_test = train_test_split(df.drop('healthy', axis=1), df['healthy'], test_size=0.25, random_state=1)

因为有多个因素决定最后一个healthy因素,所以把healthy最终的输出清除,清楚,治理,去重等等数据方法都可以做,这里使用drop。dr.drop(‘healthy’,axis=1) 去除一列healthy,为样本集合,那么样本标签就是df[‘healthy’] 了, 0.25 分数据也就是1/4 的数据作为测试数据。
用linear_model.RidgeCV 线性模型的岭回归来做分类解析。使用pickle 序列化输出模型。
以下是代码

import pandas as pd
import pickle
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn import linear_model

#loading my data and splitting it into training and testing pandas
#df = pd.read_csv('winequality-red.csv', delimiter=";")
df = pd.read_csv('test1.csv')
df.info();

#test = df.drop('healthy', axis=1)
#print(test)

X_train, X_test, y_train, y_test = train_test_split(df.drop('healthy', axis=1), df['healthy'], test_size=0.25, random_state=1)

print(X_test)
print("y_train",y_train)
print("y_test:",y_test)

#creating a model and training it
regr = linear_model.RidgeCV(alphas= np.arange(0.1,10.0,.5))
regr.fit(X_train, y_train)

#exporting my model
pickle.dump(regr,open("healthy.pkl","wb"))

#checking for error
ans = regr.predict(X_test)
print("ans:",ans)
print(mean_squared_error(y_test, ans))

训练结果

结果基本是不正确的,1是因为我们的数据造假,2 是数据量远远达不到大数据的输入准备,我们还是那句话,先掌握方法。
在这里插入图片描述

服务

存储模型后自然要做一个服务了,使用flask来启动一个服务

import pickle
import flask
from flask import request

app = flask.Flask(__name__)
#加载我们的模型
model = pickle.load(open("healthy.pkl","rb"))

#post 服务
@app.route('/', methods=['POST'])
def index():
    #注意要把正确的数据输入进来
    feature_array = request.get_json()['feature_array']

    #创建json
    #预测返回
    response = {}
    response['predictions'] = model.predict([feature_array]).tolist()

    #returning the response object as json
    return flask.jsonify(response)

其他

可以使用年龄、呼吸、心率、心率变异率等因素加入其中做一份数据报表出来,这个真的有价值!
我们使用python和go分别做了一份心率变异率的计算算法,待续了…

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
回归分析是一种用于研究因变量与一个或多个自变量之间关系的统计分析方法。在Python中,我们可以使用statsmodels库进行回归分析。下面是一个简单的例子: 假设我们有一个数据集,其中包含了一个因变量y和两个自变量x1和x2。我们想要研究y与x1、x2之间的关系。首先,我们需要导入statsmodels库并读取数据集: ```python import statsmodels.api as sm import pandas as pd data = pd.read_csv('data.csv') ``` 接下来,我们可以使用OLS(Ordinary Least Squares)方法进行回归分析。这个方法可以拟合线性回归模型,并计算出每个自变量的系数和截距。代码如下: ```python X = data[['x1', 'x2']] y = data['y'] X = sm.add_constant(X) # 添加截距项 model = sm.OLS(y, X).fit() # 拟合线性回归模型 print(model.summary()) # 输出回归分析结果 ``` 上述代码中,我们首先将自变量和因变量分别赋值给X和y。然后,我们使用add_constant方法为X添加截距项。最后,我们使用OLS方法拟合线性回归模型,并使用summary方法输出回归分析结果。 除了线性回归,还有其他类型的回归分析方法,例如Logistic回归分析。如果因变量只有两种取值,我们可以使用Logistic回归分析来拟合模型。在Python中,我们可以使用statsmodels库的Logit方法进行Logistic回归分析。代码如下: ```python X = data[['x1', 'x2']] y = data['y'] X = sm.add_constant(X) # 添加截距项 model = sm.Logit(y, X).fit() # 拟合Logistic回归模型 print(model.summary()) # 输出回归分析结果 ``` 上述代码中,我们使用Logit方法拟合Logistic回归模型,并使用summary方法输出回归分析结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qianbo_insist

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值