前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习入门数据集--5.皮马人糖尿病预测数据集

机器学习入门数据集--5.皮马人糖尿病预测数据集

作者头像
birdskyws
发布2019-03-04 11:07:12
5.7K0
发布2019-03-04 11:07:12
举报
文章被收录于专栏:一英里广度一英寸深度的学习

在本项目的前期训练中,数据最后的结果都不理想。因此在代码中引入了多种数据模型:逻辑回归、高斯朴素贝叶斯、K近邻分类、决策树分类、支持向量机分类、xgboost。在训练集上,最高准确率为77%。

数据解析

列名

解释

Pregnancies

怀孕了⼏次

Glucose

⾎糖

BloodPressure

⾎压

SkinThickness

⽪脂厚度

Insulin

胰岛素

BMI

体质指数

DiabetesPedigreeFunction

糖尿病⾎统

Age

年龄

Outcome

label:是否患病

数据分析

没有缺失值,而且全部是数字类型

代码语言:javascript
复制
Pregnancies                 768 non-null int64
Glucose                     768 non-null int64
BloodPressure               768 non-null int64
SkinThickness               768 non-null int64
Insulin                     768 non-null int64
BMI                         768 non-null float64
DiabetesPedigreeFunction    768 non-null float64
Age                         768 non-null int64
Outcome                     768 non-null int64

训练

在本项目的前期训练中,数据最后的结果都不理想。因此在代码中引入了多种数据模型:逻辑回归、高斯朴素贝叶斯、K近邻分类、决策树分类、支持向量机分类、xgboost。在训练集上,最高准确率为77%。

代码语言:javascript
复制
from sklearn.linear_model import LogisticRegression
import pandas as  pd
import numpy as np

df = pd.read_csv("/Users/wangsen/ai/13/homework/diabetes.csv")
df.info()
target = df.pop("Outcome")
data = df.values
print(data[:5])

lr = LogisticRegression()
lr.fit(data,target)
score = lr.score(data,target)
print("训练集上的预测准确率",score)

from sklearn.feature_selection import SelectKBest 
from sklearn.feature_selection import chi2

select_top_4 = SelectKBest(score_func=chi2, k =4)
select_top_4.fit(data,target)
data_4 = select_top_4.transform(data)

结果:'Glucose','Insulin','BMI','Age'

代码语言:javascript
复制
from sklearn.preprocessing import StandardScaler
X = StandardScaler().fit_transform(data_4)
X = data
y = target
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score
from sklearn.linear_model import LogisticRegression
from sklearn.naive_bayes import GaussianNB
from sklearn.neighbors import KNeighborsClassifier
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC
from xgboost import XGBClassifier
import sklearn

models = []
models.append(("LR", LogisticRegression())) #逻辑回归
models.append(("NB", GaussianNB())) # 高斯朴素贝叶斯
models.append(("KNN", KNeighborsClassifier(10))) #K近邻分类
models.append(("DT", DecisionTreeClassifier())) #决策树分类
models.append(("SVM", SVC())) # 支持向量机分类
models.append(("xgboost", XGBClassifier())) # xgboost
'''
estimator:数据对象 
X:数据 
y:预测数据 
soring:调用的方法
cv:交叉验证生成器或可迭代的次数 
n_jobs:同时工作的cpu个数(-1代表全部)
verbose:详细程度
fit_params:传递给估计器的拟合方法的参数
pre_dispatch:控制并行执行期间调度的作业数量。
'''
results = []
names = []
for name, model in models:
    kflod = KFold(n_splits=10, random_state=22)
    cv_result = cross_val_score(model, X,y, cv = kflod,scoring="accuracy")
    names.append(name)
    results.append(cv_result)
 
for i in range(len(names)):
    print(names[i], results[i].mean())

结果:

代码语言:javascript
复制
LR 0.7695146958304853
NB 0.7551777170198223
KNN 0.74865003417635
DT 0.6952494873547506
SVM 0.6510252904989747
xgboost 0.7668660287081339

参考资料:

  1. keras https://www.kesci.com/home/project/5a5b691046c4ba639c6fbfa2
  2. 多种 机器学习https://blog.csdn.net/weixin_41988628/article/details/83051712
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.02.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 数据解析
  • 数据分析
  • 训练
  • 参考资料:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档