关于机器学习入门的记录
---------------2017.4.17-----------------
一、学习python
(一)NumPy SciPy Matplotlib
NumPy :提供对高维数据的支持
SciPy :提供快速的数值分析方法库
python: 绘制高品质图形
Matplotlib: 程序库
1. NumPy
(1)>>>import numpy as np
(2)需要副本时
>>> c = a.reshape((3,2)).copy()
a,c是两个独立的副本
(3)
2. SciPy
genfromtxt()读取数据,要求是以tab作为分隔符
>>>import scipy as sp
>>>data = sp.genfromtxt("web_traffic.tsv",delimiter="\t")
.tsv文件包含以tab字符分割的数字>>>print(data.shape)
打印行列数
3. Matplotlib
包含pyplot包,模仿Matlab接口,可以画图
4. 预处理和清洗数据
5.
计算误差
二、降维方法
1. PCA
无监督方法
目标:矩阵特征值预示方差的大小,使得方差最大
选出最大的N个特征
Scikit-learn在decomposition包里特供了PCA类
>>>from sklearn import linear_model,decomposition,datasets
>>>pca = decomposition.PCA(n_components=1)//设置维度
使用fit()和transform()方法分析数据,并映射到变换后的特征空间中
>>>Xtrans = pca.fit_transform(X)
数据方差
>>>print(pca.explained_variance_ratio_)
不确定维度时不指定n_components参数,而是让其进行完全转换。对数据进行拟合后,explained_variance_ratio_包含了一个以降序排列的比例数组。
第一个值:描述最大方差方向的基向量比例
第二个值:次最大方差方向的比例,
........
画出数组后可以看到需要多少个成分(成分个数出现拐角的地方可能是)-->成分个数和方差之间的关系图:Scree图
2. LDA
有监督方法
目标:不同类别样本之间距离最大,相同样本之间距离最小。
>>>from sklearn import lda
>>>lda_inst = lda.LDA(n_components=1)
>>>Xtrans = lda_inst.fit_transform(X,good)
缺点:类别增多,每个类别中的样本变少,效果将不好