1. 程式人生 > >資料探勘必備基礎知識

資料探勘必備基礎知識

資料探勘,從字面上理解,就是在資料中找到有用的東西,哪些東西有用就要看具體的業務目標了。最簡單的就是統計應用了,比如電商資料,如淘寶統計過哪個省購買泳衣最多、哪個省的女生胸罩最大等,進一步,可以基於使用者的瀏覽、點選、收藏、購買等行為推斷使用者的年齡、性別、購買能力、愛好等能表示一個人的畫像,就相當於用這些挖掘出來的屬性來刻畫一個人,這些還是最簡單的東西,更深層次的比如預測(股票預測),但是比較難。

  說到資料探勘。往往與機器學習離不開。比如分類、聚類、關聯規則挖掘、個性化推薦、預測、神經網路、深度學習等。很多年前說人工智慧AI(比如產生式系統、專家系統等,好像現在提得比較少了),90年代AI到了瓶頸階段,機器學習是一個突破口,現在機器學習又遇到了瓶頸階段,深度學習又是一個突破口(其實神經網路出來了很久,但是為什麼中間一段時間沉寂了,在70年代左右出現了低潮(根據評論修改),我歸結是兩點,第一神經網路就像一個黑夾子一樣,很多東西不透明,模型的解釋性不強,以及當時沒辦法處理非線性分類問題(後面多層感知器便可以對非線性問題進行擬合,如解決XOR問題),引數過多,訓練複雜,容易出錯,容易過擬合,無法保證全域性最優,加上很多問題無法用數學方法證明(個人理解)等等,科學家和工程師還是有區別的,科學家都想把一個問題歸結為數學問題,然後證明出來,他們就會認為是有意義的,數學上證明其有效往往比做千百個實驗說明其有效要好些吧,工程師往往更在乎效果與結果),直到後來出現了BP演算法。第二,得益於現在的大規模計算工具,能夠處理PB級別的資料了。總之現在人工智慧還遠沒達到人類的水平,最後結果會怎樣,這個暫時不設想。

  目前正處於大資料時代,很多企業擁有巨大的資料,比如阿里擁有消費資料、百度擁有搜尋資料,騰訊擁有社交資料,消費資料與搜尋資料都可以直接變現形成商業模式,而社交資料暫時還無法直接變現,至少企鵝現在還在探尋中,舉個例子,你的朋友圈,qq空間到處是廣告,你是不是很討厭,差評,呵呵。資料有了,還有個重要的方面,處理資料的能力,也就是資料處理工具,能夠處理這麼大的資料量,二者不可或缺,缺一談什麼大資料都是耍流氓。

  對於資料探勘工程師:

  首先你數學知識肯定要紮實吧,統計與概率論是最基本(也有人說現在的機器學習是統計學習,確實有道理)、微分與積分肯定要知道、數學公式要看的懂吧,進階階段最優化,隨機過程等。建議去看看機器學習十大演算法與一些深度學習的東西,多看大牛的部落格。

  對於語言,搞科研知道matlab就永不怕了,但是對於工程師嘛,肯定要知道寫程式碼吧,不懂寫程式碼的工程師都是扯淡,不要寫程式碼的資料探勘與機器學習,那是研究員,懂得一門高階語言與一門指令碼語言就差不多了(如JAVA或C++,Python或R,個人推薦Java與Python,因為像Hadoop、Spark、Hive、MPI之類的都對Java提供了很方便的介面,Python寫指令碼很爽),還需要懂得Linux、Shell、SQL,這都是個人意見,至少在阿里,用java+sql+python+shell,阿里有個很牛逼的東西叫做ODPS,現在叫MaxCoupute,可以去阿里雲官網查查相關資料。

  對於你所說的excel、SAS、SPSS,資料分析人員專用,因為工程師嘛,程式語言還是必須的。對於是否需要學習hadoop、hive之類的,個人意見是隻要知道用,然後怎麼用,怎麼在上面實現一些演算法,怎麼去優化自己寫的程式就差不多了,它們只是工具,而且更新得很快,就說hadoop吧,我還沒完全搞明白,就逐漸被spark取代了,記住,這些只是工具而已。推薦個加深你資料探勘功力的東西weka(單機版的)與mahout(分散式的,有基於hadoop與spark),都是開源的。

  對於工作是否需要設計新演算法,我覺得在企業還是沒有要求這麼高,除非你覺得自己很牛逼,想向google看齊,但是設計一個好的演算法並能解決實際問題的演算法,不是一朝一夕的,個人觀點,很多演算法可以想出來,最大的問題就是怎樣去證明其正確,其有效。想到企業中去,多看看google與ms工程性的文章,想研究就多看看學術大牛的文章,比如ICML,IJCAI,KDD,NIPS,CVPR等。大部分工作是,將已有的機器學習與資料探勘演算法應用到具體的實踐中,根據業務場景與資料特點對演算法進行改造或者調整等。

  最後舉個例子,你在淘寶上買一件衣服,系統怎樣向你推薦你感興趣的並且和這件衣服搭配的褲子或者飾品,這就是資料探勘工程師的一方面工作。

  對於資料探勘與機器學習,也不是小小的幾百字能說清楚的,所以再補充一些想從事機器學習與資料探勘的需要學習的知識點:

常用的資料探勘&機器學習知識(點)

  Basis(基礎):

  MSE(MeanSquare Error 均方誤差),LMS(Least MeanSquare 最小均方),LSM(Least Square Methods 最小二乘法),MLE(Maximum LikelihoodEstimation最大似然估計),QP(QuadraticProgramming 二次規劃), CP(ConditionalProbability條件概率),JP(Joint Probability 聯合概率),MP(Marginal Probability邊緣概率),Bayesian Formula(貝葉斯公式),L1 /L2Regularization(L1/L2正則,以及更多的,現在比較火的L2.5正則等),GD(Gradient Descent 梯度下降),SGD(Stochastic GradientDescent 隨機梯度下降),Eigenvalue(特徵值),Eigenvector(特徵向量),QR-decomposition(QR分解),Quantile (分位數),Covariance(協方差矩陣)。

  Common Distribution(常見分佈):

  Discrete Distribution(離散型分佈):Bernoulli Distribution/Binomial(貝努利分步/二項分佈),Negative BinomialDistribution(負二項分佈),Multinomial Distribution(多式分佈),Geometric Distribution(幾何分佈),Hypergeometric Distribution(超幾何分佈),Poisson Distribution (泊松分佈)

  ContinuousDistribution (連續型分佈):Uniform Distribution(均勻分佈),Normal Distribution/GaussianDistribution(正態分佈/高斯分佈),Exponential Distribution(指數分佈),Lognormal Distribution(對數正態分佈),Gamma Distribution(Gamma分佈),Beta Distribution(Beta分佈),Dirichlet Distribution(狄利克雷分佈),Rayleigh Distribution(瑞利分佈),Cauchy Distribution(柯西分佈),Weibull Distribution (韋伯分佈)

  Three Sampling Distribution(三大抽樣分佈):Chi-square Distribution(卡方分佈),t-distribution(t-distribution),F-distribution(F-分佈)

  Data Pre-processing(資料預處理):

  MissingValue Imputation(缺失值填充),Discretization(離散化),Mapping(對映),Normalization(歸一化/標準化)。

  Sampling(取樣):

  SimpleRandom Sampling(簡單隨機取樣),Offline Sampling(離線等可能K取樣),Online Sampling(線上等可能K取樣),Ratio-based Sampling(等比例隨機取樣),Acceptance-rejection Sampling(接受-拒絕取樣),Importance Sampling(重要性取樣),MCMC(Markov Chain MonteCarlo 馬爾科夫蒙特卡羅取樣演算法:Metropolis-Hasting& Gibbs)。

  Clustering(聚類):

  K-Means,K-Mediods,二分K-Means,FK-Means,Canopy,Spectral-KMeans(譜聚類),GMM-EM(混合高斯模型-期望最大化演算法解決),K-Pototypes,CLARANS(基於劃分),BIRCH(基於層次),CURE(基於層次),DBSCAN(基於密度),CLIQUE(基於密度和基於網格),2014年Science上的密度聚類演算法等

  Clustering EffectivenessEvaluation(聚類效果評估):

  Purity(純度),RI(Rand Index,芮氏指標),ARI(Adjusted Rand Index,調整的芮氏指標),NMI(NormalizedMutual Information,規範化互資訊),F-meaure(F測量)等。

  Classification&Regression(分類&迴歸):

  LR(LinearRegression 線性迴歸),LR(Logistic Regression邏輯迴歸),SR(SoftmaxRegression 多分類邏輯迴歸),GLM(Generalized LinearModel 廣義線性模型),RR(Ridge Regression 嶺迴歸/L2正則最小二乘迴歸),LASSO(Least AbsoluteShrinkage and Selectionator Operator L1正則最小二乘迴歸), RF(隨機森林),DT(Decision Tree決策樹),GBDT(Gradient BoostingDecision Tree 梯度下降決策樹),CART(Classification AndRegression Tree 分類迴歸樹),KNN(K-Nearest Neighbor K近鄰),SVM(Support Vector Machine,支援向量機,包括SVC(分類)&SVR(迴歸)),KF(Kernel Function 核函式Polynomial KernelFunction 多項式核函式、Guassian Kernel Function 高斯核函式/Radial Basis Function RBF徑向基函式、String Kernel Function 字串核函式)、 NB(Naive Bayes 樸素貝葉斯),BN(BayesianNetwork/Bayesian Belief Network/Belief Network 貝葉斯網路/貝葉斯信度網路/信念網路),LDA(Linear DiscriminantAnalysis/Fisher Linear Discriminant 線性判別分析/Fisher線性判別),EL(Ensemble Learning整合學習Boosting,Bagging,Stacking),AdaBoost(AdaptiveBoosting 自適應增強),MEM(Maximum Entropy Model最大熵模型)

  Classification EffectivenessEvaluation(分類效果評估):

  ConfusionMatrix(混淆矩陣),Precision(精確度),Recall(召回率),Accuracy(準確率),F-score(F得分),ROC Curve(ROC曲線),AUC(AUC面積),Lift Curve(Lift曲線) ,KS Curve(KS曲線)。

  PGM(ProbabilisticGraphical Models概率圖模型):

  BN(BayesianNetwork/Bayesian Belief Network/ Belief Network 貝葉斯網路/貝葉斯信度網路/信念網路),MC(Markov Chain 馬爾科夫鏈),HMM(Hidden MarkovModel 馬爾科夫模型),MEMM(Maximum EntropyMarkov Model 最大熵馬爾科夫模型),CRF(Conditional RandomField 條件隨機場),MRF(Markov RandomField 馬爾科夫隨機場)。

  NN(Neural Network神經網路):

  ANN(ArtificialNeural Network 人工神經網路),BP(Error Back Propagation 誤差反向傳播),HN(Hopfield Network),

  RNN(Recurrent Neural Network,迴圈神經網路),SRN(Simple Recurrent Network,簡單的迴圈神經網路),ESN(Echo State Network,回聲狀態網路),LSTM(Long Short Term Memory 長短記憶神經網路),CW-RNN(Clockwork

  Recurrent Neural Network,時鐘驅動迴圈神經網路,2014ICML)等。

  Deep Learning(深度學習):

  Auto-encoder(自動編碼器),SAE(Stacked Auto-encoders堆疊自動編碼器:Sparse Auto-encoders稀疏自動編碼器、Denoising Auto-encoders去噪自動編碼器、ContractiveAuto-encoders 收縮自動編碼器),RBM(Restricted BoltzmannMachine 受限玻爾茲曼機),DBN(Deep BeliefNetwork 深度信念網路),CNN(Convolutional NeuralNetwork 卷積神經網路),Word2Vec(詞向量學習模型)。

  Dimensionality Reduction(降維):

  LDA(LinearDiscriminant Analysis/Fisher Linear Discriminant 線性判別分析/Fish線性判別),PCA(Principal ComponentAnalysis 主成分分析),ICA(Independent ComponentAnalysis 獨立成分分析),SVD(Singular ValueDecomposition 奇異值分解),FA(Factor Analysis 因子分析法)。

  Text Mining(文字挖掘):

  VSM(Vector SpaceModel向量空間模型),Word2Vec(詞向量學習模型),TF(Term Frequency詞頻),TF-IDF(TermFrequency-Inverse Document Frequency 詞頻-逆向文件頻率),MI(Mutual Information 互資訊),ECE(Expected CrossEntropy 期望交叉熵),QEMI(二次資訊熵),IG(Information Gain 資訊增益),IGR(InformationGain Ratio 資訊增益率),Gini(基尼係數),x2 Statistic(x2統計量),TEW(Text EvidenceWeight文字證據權),OR(OddsRatio 優勢率),N-Gram Model,LSA(LatentSemantic Analysis 潛在語義分析),PLSA(ProbabilisticLatent Semantic Analysis 基於概率的潛在語義分析),LDA(Latent DirichletAllocation 潛在狄利克雷模型),SLM(StatisticalLanguage Model,統計語言模型),NPLM(NeuralProbabilistic Language Model,神經概率語言模型),CBOW(Continuous Bag of Words Model,連續詞袋模型),Skip-gram(Skip-gramModel)等。

  Association Mining(關聯挖掘):

  Apriori,FP-growth(FrequencyPattern Tree Growth 頻繁模式樹生長演算法),AprioriAll,Spade。

  Recommendation Engine(推薦引擎):

  DBR(Demographic-basedRecommendation 基於人口統計學的推薦),CBR(Context-based Recommendation 基於內容的推薦),CF(Collaborative Filtering協同過濾),UCF(User-based CollaborativeFiltering Recommendation 基於使用者的協同過濾推薦),ICF(Item-based CollaborativeFiltering Recommendation 基於專案的協同過濾推薦)。

  SimilarityMeasure&Distance Measure(相似性與距離度量):

  EuclideanDistance(歐式距離),Manhattan Distance(曼哈頓距離),Chebyshev Distance(切比雪夫距離),Minkowski Distance(閔可夫斯基距離),Standardized EuclideanDistance(標準化歐氏距離),Mahalanobis Distance(馬氏距離),Cos(Cosine 餘弦),Hamming Distance/EditDistance(漢明距離/編輯距離),Jaccard Distance(傑卡德距離),Correlation CoefficientDistance(相關係數距離),Information Entropy(資訊熵),KL(Kullback-LeiblerDivergence KL散度/Relative Entropy 相對熵)。

  Optimization(最優化):

  Non-constrained Optimization(無約束優化):Cyclic Variable Methods(變數輪換法),Pattern Search Methods(模式搜尋法),Variable Simplex Methods(可變單純形法),Gradient Descent Methods(梯度下降法),Newton Methods(牛頓法),Quasi-Newton Methods(擬牛頓法),Conjugate GradientMethods(共軛梯度法)。

  ConstrainedOptimization(有約束優化):Approximation ProgrammingMethods(近似規劃法),Feasible DirectionMethods(可行方向法),Penalty Function Methods(罰函式法),Multiplier Methods(乘子法)。

  HeuristicAlgorithm(啟發式演算法),SA(Simulated Annealing,模擬退火演算法),GA(genetic algorithm遺傳演算法)

  Feature Selection(特徵選擇):

  MutualInformation(互資訊),Document Frequence(文件頻率),Information Gain(資訊增益),Chi-squared Test(卡方檢驗),Gini(基尼係數)。

  Outlier Detection(異常點檢測):

  Statistic-based(基於統計),Distance-based(基於距離),Density-based(基於密度),Clustering-based(基於聚類)。

  Learning to Rank(基於學習的排序):

  Pointwise:McRank;

  Pairwise:RankingSVM,RankNet,Frank,RankBoost;

  Listwise:AdaRank,SoftRank,LamdaMART;

  Tool(工具):

  MPI,Hadoop生態圈,Spark,BSP,Weka,Mahout,Scikit-learn,PyBrain…

  以及一些具體的業務場景與case等。

轉自:http://mt.sohu.com/20160810/n463598381.shtml