logistic report is done a little
This commit is contained in:
parent
2902f28107
commit
d609ccebd8
|
@ -0,0 +1,45 @@
|
|||
\documentclass[a4paper,12pt,UTF8,titlepage]{ctexart}
|
||||
|
||||
%页边距
|
||||
\usepackage{geometry}
|
||||
\geometry{left=2.0cm,right=2.0cm,top=2.5cm,bottom=2.5cm}
|
||||
|
||||
%页眉
|
||||
\usepackage{fancyhdr}
|
||||
\pagestyle{fancy}
|
||||
\lhead{李志星 15060025 }
|
||||
\chead{比较分析报告}
|
||||
\rhead{\leftmark}
|
||||
|
||||
%文档信息/同时也用于生成报告封面
|
||||
\author{李志星\\ 15060025}
|
||||
\title{\Huge MLlib中Logistic Regression的应用}
|
||||
|
||||
|
||||
\usepackage{graphicx}
|
||||
\DeclareGraphicsExtensions{.eps,.ps,.jpg,.bmp,.gif,.png}
|
||||
|
||||
\begin{document}
|
||||
\maketitle
|
||||
|
||||
\section{实际问题-手写识别}
|
||||
手写识别(Handwriting recognition)是计算机在纸、照片、触摸屏或其他设备中接收并识别人手写的文字等信息的技术,主要应用于光学字符识别(OCR)。手写识别系统能够用来识别汉字、英语、数字等字符。不过本报告的重点不在手写识别,而在于理解MLlib中的logistic回归,因此以识别数字为例。识别数字0~9是个十类别问题,logistic回归最常用的场景是二分类,如果要用logistic回归解决这个问题,要采用one-against-one和one-against-all等做法进行处理,虽然复杂些,但是基本原理是一样的。因此本报告把主要关注点放在对MLlib算法的研究,只利用0和1的样本从而解决二分类问题。
|
||||
|
||||
\section{MLlib相关概念}
|
||||
在MLlib中有许多的概念,其中对理解其算法比较重要的有:\emph{DataFrame},\emph{Pipeline},\emph{Transfromer}和\emph{Estimator}。
|
||||
|
||||
\begin{itemize}
|
||||
\item DataFrame:MLlib使用SaprkSQL中DataFrame来操作数据集。通过\emph{DataFrame}可以操作各种各样的数据:文本、图像和结构化数据等。\emph{DataFrame}以命名列的方式组织的分布式数据集 ,等同于关系型数据库中的一个表,和R/Python中的\emph{DataFrame}类似,不过进行了很多的优化。
|
||||
\item Pipeline:在MLlib中有一个很关键的概念:\emph{Pipeline}。在利用解决机器学习问题时,经常要用对数据进行一系列的处理,MLlib用\emph{Pipeline}来表示这样的工作流,在\emph{Pipeline}中,包含一组以一定顺序执行的\emph{ PipelineStage}( \emph{Transformer}和\emph{Estimator})。
|
||||
\item Transformer:Transformer是对特征转换和学习得到的模型的抽象,每一个\emph{Transfromer}都要实现transform()方法,它把一个\emph{DataFrame}处理后得到另一个\emph{DataFrame},一般来说新的DataFrame比原来的DataFrame要多一些列。
|
||||
\item Estimator:Estimator是对一些机器学习算法或者其他的数据处理算法的抽象,每一个\emph{Estimator}都有一个方法fit(),它以\emph{DataFrame}为参数,返回一个模型,也就是\emph{Transformer},比如在MLlib中 LogisticRegression 就是一个\emph{Estimator},而LogisticRegressionModel就是一个\emph{Transformer}。
|
||||
\end{itemize}
|
||||
|
||||
一个比较简单形象的例子就是文本文档的处理,如下图*所示,上面一行表示了一个包含3个stage的Pipeline,前两个Tokenizer和HashingTF是Transformer,第三个LogisticRegression是一个Estimer。下面一行是一个流经pipeline的数据流,圆柱体代表了DataFrame.当调用pipeline的fit()方法时, Tokenizer.transform() 把原始的Raw text切分成单词,然后把这些单词添加到原DataFrame中形成新的DataFrame从而让HashingTF.transfore()进行处理,他把单词列转化成特征矩阵又添加到新的DataFrame中,最后通过 LogisticRegression.fit()方法产生LogisticRegressionModel。生成的模型可以用于后续的测试等。
|
||||
\begin{figure}[h!]
|
||||
\centering
|
||||
\includegraphics[width=16cm]{pipeline.jpg}
|
||||
\caption{MLlib pipeline}
|
||||
\label{pipeline}
|
||||
\end{figure}
|
||||
\end{document}
|
Binary file not shown.
After Width: | Height: | Size: 17 KiB |
Loading…
Reference in New Issue