1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > sklearn 学习实践之——基于自带数据集(波士顿房价 鸢尾花 糖尿病等)构建分类 回归模型

sklearn 学习实践之——基于自带数据集(波士顿房价 鸢尾花 糖尿病等)构建分类 回归模型

时间:2019-10-07 14:55:11

相关推荐

sklearn 学习实践之——基于自带数据集(波士顿房价 鸢尾花 糖尿病等)构建分类 回归模型

只要是接触机器学习的,很少有没听过sklearn的,这个真的可以称得上是机器学习快速进行的神器了,在研究生的时候搭建常用的机器学习模型用的就是sklearn,今天应部门的一些需求,简单的总结了一点使用方法,后面还会继续更新,今天仅使用sklearn自带的数据集来实践一下分类和回归模型,比较简单就不再进行解释了,主要是看一下sklearn自身有哪些数据集可以很方便地去使用,下面是具体的实践:

#!usr/bin/env python#encoding:utf-8'''__Author__:沂水寒城功能:sklearn 数据集探索 sklearn自动了下面几种数据用于算法练习。load_boston([return_X_y]) 加载波士顿房价数据;用于回归问题load_iris([return_X_y]) 加载iris 数据集;用于分类问题load_diabetes([return_X_y]) 加载糖尿病数据集;用于回归问题load_digits([n_class, return_X_y]) 加载手写字符集;用于分类问题load_linnerud([return_X_y]) 加载linnerud 数据集;用于多元回归问题'''import sysreload(sys)sys.setdefaultencoding('utf-8')#加载各种数据集from sklearn.datasets import load_irisfrom sklearn.datasets import load_bostonfrom sklearn.datasets import load_diabetesfrom sklearn.datasets import load_linnerud#加载模型from sklearn import svmfrom sklearn import linear_modelfrom sklearn.metrics import accuracy_scorefrom sklearn.model_selection import train_test_splitfrom sklearn.linear_model import LogisticRegression,LinearRegressiondef split_data(data_list, y_list, ratio=0.30):'''按照指定的比例,划分样本数据集ratio: 测试数据的比率'''X_train, X_test, y_train, y_test = train_test_split(data_list, y_list, test_size=ratio, random_state=42)print '--------------------------------data shape-----------------------------------'print len(X_train), len(y_train)print len(X_test), len(y_test)return X_train, X_test, y_train, y_testdef regressionModels():'''回归模型使用'''#波士顿房价数据boston=load_boston()data=boston.datatarget=boston.targetprint data.shapeprint target.shapeX_train, X_test, y_train, y_test=split_data(data,target)model=LinearRegression()model.fit(X_train,y_train)print u"系数矩阵:"print model.coef_.tolist()print u"截距"print model.intercept_ print '-----------------------------------------------------------------'# 糖尿病数据集diabetes=load_diabetes()data=diabetes.datatarget=diabetes.targetprint data.shapeprint target.shapeX_train, X_test, y_train, y_test=split_data(data,target)model=LinearRegression()model.fit(X_train,y_train)print u"系数矩阵:"print model.coef_.tolist()print u"截距"print model.intercept_print '-----------------------------------------------------------------'linnerud=load_linnerud()data=linnerud.datatarget=linnerud.targetprint data.shapeprint target.shapeX_train, X_test, y_train, y_test=split_data(data,target)model=LinearRegression()model.fit(X_train,y_train)print u"系数矩阵:"print model.coef_.tolist()print u"截距"print model.intercept_def classificationModels():'''分类模型使用'''#鸢尾花数据集iris=load_iris()data=iris.datatarget=iris.targetprint data.shapeprint target.shapeX_train, X_test, y_train, y_test=split_data(data,target)model=svm.SVC()model.fit(data,target)y_predict=model.predict(X_test)print "Accuracy:"print accuracy_score(y_test,y_predict)if __name__=='__main__':regressionModels()classificationModels()

上述代码在python2.7环境下测试通过,下面是结果输出:

#回归结果输出(506L, 13L)(506L,)--------------------------------data shape-----------------------------------354 354152 152系数矩阵:[-0.13347010285294442, 0.03580891359322994, 0.0495226452112, 3.119835116285431, -15.417060895306475, 4.057199231645387, -0.010820835184929944, -1.3859982431608757, 0.24272733982224273, -0.008702234365661983, -0.9106852081102892, 0.011794115892572796, -0.547113312823961]截距31.63108403569312-----------------------------------------------------------------(442L, 10L)(442L,)--------------------------------data shape-----------------------------------309 309133 133系数矩阵:[29.250345824146294, -261.70768052669956, 546.2973726341081, 388.4007725749296, -901.9533870552892, 506.76114900102954, 121.14845947917183, 288.0293249509, 659.2713384575223, 41.375369011084985]截距151.00818273080338-----------------------------------------------------------------(20L, 3L)(20L, 3L)--------------------------------data shape-----------------------------------14 146 6系数矩阵:[[0.30287324212545036, -0.3796068178234, 0.16074123821975367], [-0.09726556450063326, -0.047093687917992795, 0.027083148889626204], [-0.5869461483881073, 0.053272106843233316, -0.004283316055441206]]截距#分类结果输出[213.69337737 41.05782266 54.38303224](150L, 4L)(150L,)--------------------------------data shape-----------------------------------105 10545 45Accuracy:1.0

欢迎交流学习!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。