一.数据的降维之特征选择
1.特征选择
原因:冗余,噪声
主要方法:Filter(过滤式):Variance Threshold
Embedded(嵌入式):正则化、决策树
Wrapper(包裹式) 不常用
sklearn 特征选择API
sklearn.feature_selection.VarianceThreshold
VarianceThreshold语法
VarianceThreshold(threshold=0.0)
删除所有低方差特征
Variance.fit_transform(X)
X:numpy array格式的数据[n_samples,n_features]
返回值:训练集差地域threshold的特征将被删除。
默认值是保留所有非零方差特征,即删除所有样本中具有相同值的特征。
2.主成分分析
作用:可以削减回归分析或者聚类分析中特征的数量
PCA语法
PCA(n_components=None)
n_componnents:小数 0-1之间的小数,百分比的形式,动态指定保留多少信息 ,90%~95%
整数: 减少到的特征数量,一般不常用
将数据分解为较低维空间
PCA.fit_transform(X)
X:numpy array格式的数据[n_samples,n_features]
返回值:转换后指定维度的array
def pca():
''''主成分分析进行特征降维'''
pca=PCA(n_components=0.9)
data=pca.fit_transform([[2,8,4,5],[6,3,0,8],[5,4,9,1]])
print(data)
return None
if __name__=='__main__':
pca()
[[ 1.28620952e-15 3.82970843e+00]
[ 5.74456265e+00 -1.91485422e+00]
[-5.74456265e+00 -1.91485422e+00]]
机器学习算法
1.数据类型
离散型
连续型数据
**离散数据区间内不可分,连续型数据区间内可分
2.机器学习算法分类:
监督学习(预测):特征值+目标值
分类:k-临近算法、贝叶斯分类、决策树与随机森林、逻辑分类、神经网络
回归:线性回归、岭回归
标注:隐马尔可夫模型
无监督学习:只有特征值
聚类:k-means
分类:目标值离散型
回归:目标值连续型
步骤:
建立模型:根据数据类型划分应用种类
1.原始数据明确做什么
2.数据的基本处理:pd去处理数据(缺失值,合并表……)
3.特征工程(特征进行处理)*重要
分类
回归
4.找到合适的算法去进行预测 *模型
模型:算法+数据
5.模型的评估,判定效果
上线使用 以API形式提供
机器学习应用
一、sklearn数据集
1.数据集划分
训练数据:用于训练、构建模型
测试数据:在模型检验时使用,用于评估模型是否有效
sklearn.model_selection.train_test_split
2.sklearn数据集接口介绍
sklearn.datasets
加载获取流行数据集
datasets.load_()
获取小规模数据集,数据包含在datasets里
dataset.fetch_(data_home=None)
获取大规模数据集,需要从网络上下载,函数的第一个参数是data_home,表示数据集下载的目录,默认是~/scilit_learn_data
获取数据集返回的类型
data:特征数据数组,是[n_samples*n_features]的二维numpy.ndarray数组
target:标签数组,是n_samples的一维numpu.ndarray数组
DESCR:数据描述
feature_names:特证名,新闻数据,手写数字,回归数据集没有
target_names:标签名
数据集进行分割
sklearn.model_selection.train_test_split(*arrays,**options)
x 数据集的特征值
y 数据集的标签值
test_size 测试集的大小,一般为float
random_state 随机种子,不听的粽子会早晨各不同的随机采样结果。相同 的种子采用结果相同。
return 训练集特征值,测试集特征值,训练标签,测试标签
3.sklearn分类数据集
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
li=load_iris()
# print('获取特征值')
# print(li.data)
# print('目标值')
# print(li.target)
##注意返回值, 训练集train x_train,y_train,测试集 test x_test y_yest
##顺序不能错
x_train,x_test,y_train,y_test=train_test_split(li.data,li.target,test_size=0.25) ##训练集75%,测试集25%
print('训练集特征值和目标值:',x_train,y_train)
print('测试集特征值和目标值:',x_test,y_test)
训练集特征值和目标值: [[7.2 3.2 6. 1.8]
[5.5 2.4 3.7 1. ]
[5.4 3.4 1.5 0.4]
[7.2 3.6 6.1 2.5]
[6.6 3. 4.4 1.4]
[5. 2. 3.5 1. ]
[6.7 3.1 4.4 1.4]……
[2 1 0 2 1 1 1 2 1 1 0 0 1 1 2 1 2 2 0 1 0 2 0 2 1 ……
测试集特征值和目标值: [[5. 3.4 1.6 0.4]
[5.9 3.2 4.8 1.8]
[4.4 3.2 1.3 0.2]
[6.7 2.5 5.8 1.8]
[5.8 2.6 4. 1.2]
[5.4 3.9 1.7 0.4]
[6.3 2.9 5.6 1.8]
[7.7 3.8 6.7 2.2]
[5.1 3.3 1.7 0.5]
[5.6 2.9 3.6 1.3]
[4.5 2.3 1.3 0.3]……
[0 1 0 2 1 0 2 2 0 1 0 2 1 1 2 2 2 2 1
用于分类的大数据集 (新闻)
sklearn.dataset.fetch_20newsgroups(data_home=None,subset=‘train’)
subset:‘train’或者’test’,‘all’,可选要加载的数据集。训练集的’训练’,测试集的’测试’,两者的‘全部’
datasets.clear_data_home(data_home=None)
清除目录下的数据
fetch_20newsgroups(subset='all') print(news.data) print(news.target)
4.sklearn回归数据集
sklearn.datasets.load_boston()
加载并返回波士顿房价数据集
lb=load_boston()
print('获取特征值')
print(lb.data)
print('目标值')
print(lb.target)
转换器与估计器
1.特征工程
实例化(实例化是一个转换器类(Transform))
调用fit_transform(对于文档建立分类词频矩阵,不能同时调用)
fit_transform():输入数据直接转换=fit()+transform()
fit():输入数据,但不做事情
+transform():进行数据的转换
2.估计器:
在sklearn中,估计器(estimator)是一类实现了算法的API
用于分类的估计器:
sklearn.neighbors k-近邻算法
sklearn.naive_bayes 贝叶斯
sklearn.linear_model.LogisticRegression 逻辑回归
sklearn.tree 决策树与随机森林
用于回归的估计器:
sklearn.linear_model.LinearRegression 线性回归
sklearn.linear_model.Ridge岭回归



