机器学习day01——笔记
5. 学习笔记:使用MindNode或Evernote做笔记 #生活技巧# #工作学习技巧#
机器学习
1、机器学习分类:
①监督学习:
分类问题:特征值——目标值(类别)
回归问题:目标值为连续数值
②无监督学习:无目标值
2、数据集
2.1、数据集: 可用数据集搜索:kaggle、UCI、scikit-learn
2.2、Scikit-learn数据集的使用: ①获取小规模数据集:sklearn.datasets.load_*()
②获取大规模数据集:sklearn.datasets.fetch_*(data_home=None,subset=‘tarin’) #subset为选择train\test\all
2.3、数据集返回值为字典格式 datasets.base.Bunch: ①data:特征数据数组————特征值 ②target:标签数组————目标值 ③DESCR:数据描述(说明文档) ④feature_names:特征名(特征值的名字,即每个值代表什么意思) ⑤target_names:标签名(目标值的名字) 调用方式:① dict[“key”] = value ②bunch.key = value
2.4、数据集的划分 1、训练集(80%)、测试集(20%)
2、sklearn.model_selection.train_test_split(arrays,*options)
feature:数据集的特征值——data lable:数据的标签值——target test_size: 测试集的大小 默认0.25 random_state :随机数种子 return :训练集特征值,测试集特征值,训练集目标值,测试集目标值from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split def datastes_demo(): iris=load_iris() feature_train,feature_test,label_train,label_test=train_test_split(iris.data,iris.target,test_size=0.2) 123456 3、特征工程
特征工程决定机器学习上限
3.1、特征提取 特征提取API:sklearn.feature_extraction
字典特征提取(one-hot编码)sklearn.feature_extraction.DictVectorzer(sparse=True…)
DictVectorzer.fit_transform(data):DictVectorzer.inverse_transform(data)DictVectorzer.get_feature_name():from sklearn.feature_extraction import DictVectorizer def dict_demo(): data=[{"city":'北京',"temperature":'100'}, {"city":'上海',"temperature":'60'}, transfer=DictVectorizer()#实例化 data_new=transfer.fit_transform(data)#返回默认为稀疏矩阵(本质是one-hot编码) print(data_new) 12345678 文本特征提取 ①CountVectorizer
sklearn.feature_extraction.text.CountVectorizer(stop_words=[]) 返回词频矩阵
CountVectorizer.fit_transform(data):CountVectorizer.inverse_transform(data)CountVectorizer.get_feature_name():中文文字特征提取可用jieba分词 import jieba
import jieba def cut_ch_demo(text): result=" ".join(list(jieba.lcut(text))) return result 1234 ②Tf-idf文本特征提取
sklearn.feature_extraction.text.TfidfVectorizer(stop_words=[])
返回词的权重矩阵
TfidfVectorizer.fit_transform(data):TfidfVectorizer.inverse_transform(data):TfidfVectorizer.get_feature_name(): 3.2、特征预处理(归一化、标准化)特征预处理API:sklearn.preprocessing
归一化(异常值影响)sklearn.preprocessing.MinMaxScaler(feature_range=(0,1)…)
MinMaxScaler.fit_transform(data)返回值:转换后的形状相同的array 标准化(样本多时稳定)sklearn.preprocessing.StandarScaler(feature_range=(0,1)…)
StandarScaler.fit_transform(data)返回值:转换后的形状相同的array 3.3、特征降维降低特征个数,使特征与特征不相关。
特征选择 Filter过滤式:方差选择、相关系数低方差特征过滤
模块:sklearn.feature_selection
sklearn.feature_selection.VarianceThreshold(threshold=0.0)
Variance.fit_transform(data):返回值:转换后的形状相同的arraydef variance_demo(): return None 123'
相关系数(皮尔逊)
r ( X , Y ) = C o v ( X , Y ) V a r ( X ) V a r ( Y ) r(X,Y)={{Cov(X,Y)}\over\sqrt{Var(X)Var(Y)}} r(X,Y)=Var(X)Var(Y)
Cov(X,Y)
|r|约接近0,表示相关性越弱
模块:from scipy.stats import pearsonr
from scipy.stats import pearsonr r = pearsonr(datax,datay) #返回值为(相关系数,P值——即显著水平) 123
相关性高时,选取其中一个或加权求和
Embedded嵌入式:决策树、正则化、深度 主成分分析数据维数压缩
找到一个直线,通过一个矩阵运算得出主成分的结果
模块:sklearn.decomposition.PCA(n_components=None)
n_components:小数表示保留百分之多少的信息,整数表示减少到多少特征PCA.fit_transdorm(X)返回值:转换后指定维度的array 项目实例(数据降维):import pandas as pd from sklearn.decomposition import PCA order_products = pd.read_csv("./source/order_products__prior.csv") product = pd.read_csv("./source/products.csv") aisles = pd.read_csv("./source/aisles.csv") orders = pd.read_csv("./source/orders.csv") tab1 = pd.merge(aisles, product, on=["aisle_id", "aisle_id"]) tab2 = pd.merge(tab1, order_products, on=["product_id", "product_id"]) tab3 = pd.merge(tab2, orders, on=["order_id", "order_id"]) tab4 = pd.crosstab( tab3["user_id"],tab3["aisle"]) print(tab4.shape) # 实例化 transfer = PCA(n_components=0.95) # 调用方法 data_new = transfer.fit_transform(tab4) print(data_new) print(data_new.shape)
123456789101112131415161718192021项目实例(数据降维)代码中的四个数据文件见百度网盘:
链接:https://pan.baidu.com/s/1k9QKTdwazpcOuTV1sucQfg 提取码:yd2k 12
网址:机器学习day01——笔记 https://www.yuejiaxmz.com/news/view/179110
相关内容
做笔记=抄书?你还是不会学习!这样做笔记才能高效《强化学习》学习笔记3——策略学习
提高学习效率——5R笔记法
强化学习笔记二
学习笔记(1)——生活的哲学。
SpringMVC理论、SSM搭建、文件上传下载、拦截器,全局异常捕获、学习笔记
学生用计算机的使用技巧,选学生笔记本电脑的小窍门
笔记
学习笔记
关于举办浙江大学第六届最美学习笔记大赛的通知