学习机器学习相关的多个库与方法的使用环境.docx
学习内容:概念理解,学习机器学习相关的多个库与方法的使用环境,并通过实例操作熟悉其具体使用场景。数据获取数据来源:本地文件,服务器日志,或网站截取格式:大多情况为文本文件,有时包含图像、视频文件处理。PythOn库中获取:通过rest风格的APl接口,pythonrequest从GitHub的API中拉取数据:Importrequestsr=requests.get(r“r.json()返回json文档数据检查主要为用于检查数据的库与方法,暂时只提到各方法的简单应用,更多内容请在文档中查找。PandaS库:解析文件,数据读取、归类、处理。此处数据集为https:archive.ics.uci.edu/ml/datasets/lris下的iris.data文件PandaS文档:(http:/PandaS.pydat.orpandvs-docsversion0.17.1/)方法:Map:序列数据的修改df'class'=df,class'.map(,lris-setosa,:'SET,z'Iris-Virginica':'VIR,z'Iris-versicolor":,VER')dfApply:新列,不局限于单列数据操作df,petalarea'=df.apply(lambdar:r'petallength'*r,petalwidth',axis=l)df注:axis=1表示对行操作,axis=。表示对列操作Applymap:对数据框中所有单元df.applymap(lambdav:np.log(v)ifisinstance(v,float)elsev)注:np.log()利用numpy库返回该值的对数Groupby:df.groupby('class').mean()注:按照HaSS,划分数据,并取每个CIaSS对应各列的均值。df.groupby('class').describe()求个数、均值、标准差、最小值、25%,50%,76%、最大值可视化MatPIOtlib库:绘图Seaborn库:绘图(http:Stanford.edumwaskomSoftWareseabomindex.html)建模Statsmodels库:(http:StatSmOdelS.sourceforRimportstatsmodels.apiassmy=df,sepallength':50x=df,sepalwidth':50X=sm.add_constant(x)results=sm.OLS(½×).fit()print(results.summary()OLSRegressionResultsDep.VariablessepallengthR-quared:0.558Model:OLSAdj.R-squared:0.548Method:LeastSquaresF-Statistici60.52Date:Sunr11Oct2015Prob(F-Btatistic):4.75e-10Tisw:18:14:39Log-Lik6ihood:2.0879No.Observations:50AIC:-0.1759DfResiduals:48BIC:3.648DfMod。1:1coeftderrtP>t(950Conf.Int.)const2.64470.3058.6600.0002.0313.259sepalwidth0.69090.0897.7790.0000.5120.869Onnibus:0.252Durbin-Watson:2.517Prob(Omnibus):O.2Jarque-Bera(JB):0.436Skew:-0.110Prob(JB):0.804KUrtOSis:2.599Cond.No.34.0SepalLength=2.6447+0.6909×SepalWidthR2=0.558SetOMSepalWdtvs.SepalLengthSCikit-Ieam库:分类、回归、聚类、降维、模型选择和预处理(PyhthOn机器学习包中的重点库)分类器学习(库中分类器有多种,这里选择随机森林分类器)fromsklearn.ensembleimportRandomForestCIassifierfromsklearn.cross_validationimporttrain_test_splitclf=RandomForestClassifier(max_depth=5,n_eStimators=10)X=df.ix:,:4y=df.ix:,4X_train,X_test,y_train,y_test=train_test_split(X,y,test-size=.3)clf.fit(X_train,y_train)y_pred=clf.predict(X_test)rf=pd.DataFrame(list(zip(y_pred,y_test),columns=,predicted','actual')rf'correct,=rf.apply(lambdar:1ifr'predicted,=r'actuaelseOzaxis=l)rf代码理解:1 .导入随机森林分类器2 .将数据分为训练组与测试组(train_test_split会打乱数据先后顺序)3 .实例化分类器,5层判定深度10各决策树森林4 .创建X矩阵,y向量5 .数据传递到train_teSjSPIit方法,该方法将数据打乱并划分为四个子集,X_train,X_test,y_tfain和y_test。参数test_size为0.3,这数据集的30%分配给X_test和y_test部分,其余分配到训练的部分X_train和y_train6 .使用训练数据拟合模型,使用测试数据测试方法,并计算模型的准确度(通过前四列“X矩阵”的数据,对数据的最后一列y进行预测)羯一值实际值是否正确0Iris-VirginicaIris-Virginica11Iris-versicolorIris-versicolor12Iris-VirginicaIris-Virginica13Iris-VirginicaIris-Virginica14Iris-SetosaIris-setosa15Iris-VirginicaIris-Virginica16Iris-VirginicaIris-Virginica17IriS-VerSicOlOrIris-versicolor18Iris-verscolorIris-versicolor19Iris-SetosaIris-setosa110lris-verstlorIris-versicolor111Iris-VersicotorIris-versicolor112Iris-VerscolorIris-VirginicaO13IriS-VerSiCoIOrIris-versicolor114Iris-setosaIris-setosa115Iris-setosaIris-setosa1rf'correct'.sum()rf,correct'.count()输出准确度0.95555555555555556环境配置选用Anaconda