小伙伴关心的问题:机器学习算法(深度学习算法),本文通过数据整理汇集了机器学习算法(深度学习算法)相关信息,下面一起看看。

机器学习算法(深度学习算法)

机器学习的基本步骤

1. 提出问题:

明确是分类问题还是回归问题

2. 理解数据:

2.1 采集数据

sklearn.datasets中有练习数据(数据要有代表性,数据量要合适)

2.2 导入数据

pd.csv...

2.3 查看数据集信息

data.shape查看数据形状;.shape[0]查看行数;.shape[1]查看列数df.head()查看前几行;df.describe()查看数值数据的描述统计信息;http://df.info()根据行数查看数据是否有缺失值,数据类型是否合适了解各个字段的含义,目标和特征分别是哪个字段;也可通过可视化了解数据的分布

3. 数据清洗:

3.1 数据预处理:缺失值处理、重复值处理、数据类型的转换、字符串数据的规整

缺失值处理(标签数据无需填充缺失):数值类型,用平均值取代:data[A].fillna(data[A].mean())分类数据,用最常见的类别取代:data[A].value_counts();data[A].fillna("前面得到的最常见的类别");data[A].fillna("U")缺失比较多时,填充代表未知的字符串使用模型预测缺失值,例如:K-NN数据归一化/标准化:模型具有伸缩可变性,如SVM,最好进行标准化,避免模型参数受极值影响;伸缩不变模型,如逻辑回归,最好也进行标准化,可以加快训练速度归一化/标准化常见两种方法:min-max,化为[0,1]:(x-min(x))/(max(x)-min(x))/preprocessing.MinMaxScaler;适合分别在有限范围内的数据,数值较集中,但min/max不稳定会影响结果Z-core,化为均值为0,方差为1:(x-mean(x))/std(x)/sklearn.preprocessing.scale(),适合最大/最小值未知,或者有超出取值范围的离散值

3.2 特征提取(特征工程.1)

数值型数据处理:一般可直接使用,或通过运算转化为新的特征家庭人数可统计分类:df.家庭人数=df.A+df.B+1(自己);df.小家庭=df.家庭人数.map(lambda匿名函数-lambda s : 1 if 2 <= s <= 4 else 0)分类型数据处理:两个类别:性别数据分别填充为1、0:df.A=df.A.map({"male":1;"female":0})超两个类别:one-hot编码,data=pd.get_dummies(df.A , prefix=前缀 );pd.concat([data,data],axis=1)字符串型-姓名:每一个姓名中都包含了称谓,利用split函数将称谓提取出来;.strip用于移除空格;将称谓进行归类,定义对应字典,利用map函数替换;进行one_hot编码字符串型-客舱号:a[n]可以取到字符串数据 第“n”个字符;提取之后进行one_hot编码时间序列数据,一段时间定期收集的数据-可转成年月日

3.3 特征选择(特征工程.2)

计算各个特征和标签的相关性:df =pd.corr()查看标签对应的相关系数:df .标签.sort_values(ascending =False)根据相关系数的大小选择特征列做为模型输入

4. 构建模型:

4.1 建立训练数据集和测试数据集

选取训练数据和测试数据的特征和标签:.loc选取特征列和标签列;train_test_spilt 划分,通常80%为训练数据集.shape查看划分结果

4.2. 选择机器学习算法:

导入算法逻辑回归(logisic regression)随机森林(Random Forests Model)支持向量机(Support Vector Machines)Gradient Boosting ClassifierK-nearest neighborsGaussian Naive Bayes数据降维:PCA,Isomap数据分类:SVC,K-Means线性回归:LinearRegression创建模型model=LinearRegression()训练模型model.fit(train_X , train_y )

5. 评估模型

model.score(test_X , test_y ),不同的模型指标不一样,分类模型评估准确率metrics.confusion_matrix:混淆矩阵homogeneity_score:同质性,每个群集只包含单个类的成员;[0,1],1表示完全同质。completeness_score:完整性,给定类的所有成员都分配给同一个群集。[0,1],1表示完全完整。v_measure_score:同质性和完整性的调和平均值adjusted_mutual_info_score:兰德系数ARI,取值范围[-1,1],值越大,表示与聚类结果与真实越吻合,体现的是两个数据分布的吻合程度adjusted_mutual_info_score:互信息AMI,取值[-1,1],值越大,与真实情况越吻合。fowlkes_mallows_score:精确率和召回率的几何平均值,[0,1],越大,越相似。silhouette_score:轮廓系数,[-1,1]同类别越近,不同类别越远,系数越大。calinski_harabaz_score:类内部协方差越小,类之间协方差越大,改数值越大,聚类效果越好。

6. 方案实施

model.predict(pred_X),得到预测结果

7.报告撰写

更多机器学习算法(深度学习算法)相关信息请关注本站,本文仅仅做为展示!