栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python 学习笔记--机器学习算法基础--数据降维

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python 学习笔记--机器学习算法基础--数据降维

一.数据的降维之特征选择
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岭回归

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948729.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号