ML机器学习算法笔记
文章目录
- 5.2 数据预处理
- 5.2.1 缺失值处理
- 5.2.2 数据规范化
- 5.2.3 主成分分析
- 5.3 线性回归 (回归模型)
- 5.4 逻辑回归(分类模型)
- 5.5 神经网络
- 5.5.3 Python 神经网络 分类 应用
- 5.5.4 Python 神经网络 回归 应用
- 5.6 支持向量机
- 核函数选择:
- 5.7 K-均值聚类
- Python K-均值聚类算法应用
5.2 数据预处理
5.2.1 缺失值处理
import pandas as pd
import numpy as np
data=pd.read_excel('missing.xlsx') #数据框 data
# 定义数据框
c=np.array([[1,2,3,4],[4,5,6,np.nan],[5,6,7,8],[9,4,np.nan,8]]) #数组 c
C=pd.DataFrame(c) #数据框 C
# 也可合并
pd.DataFrame(np.array([[1,2],[3,5]]))
# 获取数据
data=np.load('data.npy')
data=data[:,1:] # 去除序号
# 均值填充
from sklearn.impute import SimpleImputer # SimpleImputer取代了以前的sklearn.preprocessing.Imputer
imp = SimpleImputer(missing_values=np.nan, strategy='mean') #创建按列均值填充策略对象
# 可选参数:median\most_frequent
imp.fit( data) # data的数据类型为ndarray和DataFrame均可data = imp.transform(data)
5.2.2 数据规范化
# 1.数据规范化___均值-方差规范化
from sklearn.preprocessing import StandardScaler,MinMaxScaler
x=data
scaler = StandardScaler() # MinMaxScaler()
scaler.fit(x)
x=scaler.transform(x)
5.2.3 主成分分析
# 相关系数矩阵
import pandas as pd
Data=pd.read_excel('农村居民人均可支配收入来源2016.xlsx')
X=Data.iloc[:,1:]
R=X.corr() # 计算变量间相关系数
# 数据规范化处理
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X)
X=scaler.transform(X)
# ① 导入主成分分析模块 PCA。
from sklearn.decomposition import PCA
# ② 利用 PCA 创建主成分分析对象 pca。
pca=PCA(n_components=0.95) #这里设置累计贡献率为 95%以上。
# ③ 调用 pca 对象中的 fit()方法,对待分析的数据进行拟合训练。
pca.fit(X)
# ④ 调用 pca 对象中的 transform()方法,返回提取的主成分。
Y=pca.transform(X)
# ⑤ 通过 pca 对象中的 components_属性、explained_variance_属性、explained_variance_ ratio_属性,返回主成分分析中对应的特征向量、特征值和主成分方差百分比(贡献率),
# 比如:
tzxl=pca.components_ #返回特征向量
print(tzxl)
tz=pca.explained_variance_ #返回特征值
print(tz)
gxl=pca.explained_variance_ratio_ #返回主成分方差百分比(贡献率)
print(gxl)
# 第 1 个主成分前面的 4 个分量的值
Y00=sum(X[0,:]*tzxl[0,:])
Y01=sum(X[1,:]*tzxl[0,:])
Y02=sum(X[2,:]*tzxl[0,:])
Y03=sum(X[3,:]*tzxl[0,:])
# 综合排名
F=gxl[0]*Y[:,0]+gxl[1]*Y[:,1]+gxl[2]*Y[:,2] #综合得分=各个主成分×贡献率之和 (序列对应求和)
print(F)
dq=list(Data['地区'].values) #提取地区
# 构建序列,设置索引和值
Rs=pd.Series(F,index=dq) #以地区作为 index,综合得分为值,构建序列
Rs=Rs.sort_values(ascending=False) #按综合得分降序进行排序
5.3 线性回归 (回归模型)
data的数据类型为ndarray和DataFrame均可作为算法模型的输入类型
import pandas as pd
data = pd.read_excel('发电场数据.xlsx')
x = data.iloc[:,0:4]
y = data.iloc[:,4].values # #新版pandas中:df.as_matrix()改写成 df.values
print(x)
print(type(x))
print(type(y))
import pandas as pd
data = pd.read_excel('发电场数据.xlsx')
x = data.iloc[:,0:4]
y = data.iloc[:,4].values # #新版pandas中:df.as_matrix()改写成 df.values
print(x)
print(type(x))
print(type(y))
# 线性回归分析
# 1)导入线性回归模块,简称为 LR。
from sklearn.linear_model import LinearRegression as LR
lr = LR()
lr.fit(x, y)
Slr=lr.score(x,y) # 判定系数 R^2
c_x=lr.coef_ # x 对应的回归系数(斜率向量)
c_b=lr.intercept_ # 回归系数常数项
# 利用线性回归模型进行预测
# (1)可以利用 lr 对象中的 predict()方法进行预测。
import numpy as np
x1=np.array([28.4,50.6,1011.9,80.54]) # 定义一维数组
x1=x1.reshape(1,4) # 转换为二维数组
R1=lr.predict(x1)
# 输出
print('x 回归系数为:',c_x)
print('回归系数常数项为:',c_b)
print('判定系数为:',Slr)
print('样本预测值为:',R1)
5.4 逻辑回归(分类模型)
线性回归对应回归问题,逻辑回归对应分类问题
回归模型的score输出为拟合优度(判决系数)
分类模型的score输出为准确率
import pandas as pd
data = pd.read_excel('credit.xlsx')
# 手动划分数据集
# 前600个样本训练模型
x = data.iloc[:600,:14]
y = data.iloc[:600,14]
# 600后的样本测试
x1= data.iloc[600:,:14]
y1= data.iloc[600:,14]
from sklearn.linear_model import LogisticRegression as LR
lr = LR(max_iter=3000)
lr.fit(x, y)
r=lr.score(x, y) # 模型准确率(针对训练数据)
# 测试集预测准确率
R =lr.predict(x1) # 预测值
Z=R-y1
Rs=len(Z[Z==0])/len(Z) # 手动计算结果准确率
print('预测结果为:',R)
print('预测准确率为:',Rs)RR = lr.score(x1, y1) # 直接输出准确率
5.5 神经网络
5.5.3 Python 神经网络 分类 应用
import pandas as pd
data = pd.read_excel('credit.xlsx')
# 前600个样本训练模型
x = data.iloc[:600,:14]
y = data.iloc[:600,14]
# 600后的样本测试
x1= data.iloc[600:,:14]
y1= data.iloc[600:,14]
from sklearn.neural_network import MLPClassifier # 多层感知机分类器
# (2)利用 MLPClassifier 创建神经网络分类对象 clf。
clf = MLPClassifier(solver='lbfgs', alpha=1e-5, hidden_layer_sizes=(5,2), random_state=1, max_iter=3000) # solver:神经网络优化求解算法,包括 lbfgs、sgd、adam 3 种,默认为 adam。
clf.fit(x, y)
# (4)调用 clf 对象中的 score ()方法,获得神经网络的预测准确率(针对训练数据)。
rv=clf.score(x,y)
R=clf.predict(x1)Z=R-y1
Rs=len(Z[Z==0])/len(Z)
print('预测结果为:',R)
print('预测准确率为:',Rs)RR = clf.score(x1, y1)
5.5.4 Python 神经网络 回归 应用
import pandas as pd
data = pd.read_excel('发电场数据.xlsx')
x = data.iloc[:,0:4]
y = data.iloc[:,4]
from sklearn.neural_network import MLPRegressor # 多层感知机回归
clf = MLPRegressor(solver='lbfgs', alpha=1e-5,hidden_layer_sizes=8, random_state=1) # solver:神经网络优化求解算法,包括 lbfgs、sgd、adam 3 种,默认为 adam。
clf.fit(x, y)
# (4)调用 clf 对象中的 score ()方法,获得神经网络回归的拟合优度(判决系数)。
rv=clf.score(x,y)import numpy as np
x1=np.array([28.4,50.6,1011.9,80.54])
x1=x1.reshape(1,4)
R=clf.predict(x1)
print('样本预测值为:',R)
5.6 支持向量机
核函数选择:
可以选择线性核linear、多项式核poly、高斯核rbf、sig核sigmoid,默认情况下选择高斯核。
import pandas as pd
data = pd.read_excel('car.xlsx')
x = data.iloc[:1690,:6]
y = data.iloc[:1690,6]
x1= data.iloc[1691:,:6]
y1= data.iloc[1691:,6]
from sklearn import svm
clf = svm.SVC(kernel='rbf') # 其中核函数可以选择线性核、多项式核、高斯核、sig 核,分别用 linear、poly、rbf、sigmoid 表示,默认情况下选择高斯核。
clf.fit(x, y)
rv=clf.score(x, y) # 模型准确率(针对训练数据)
R=clf.predict(x1)
Z=R-y1
Rs=len(Z[Z==0])/len(Z)
print('预测结果为:',R)
print('预测准确率为:',Rs)
5.7 K-均值聚类
Python K-均值聚类算法应用
# 1.数据获取及标准化处理
import pandas as pd
data=pd.read_excel('农村居民人均可支配收入来源2016.xlsx')
X=data.iloc[:,1:]
from sklearn.preprocessing import StandardScaler
scaler = StandardScaler()
scaler.fit(X)
X=scaler.transform(X)
# 2.K-均值聚类分析
from sklearn.cluster import KMeans
model = KMeans(n_clusters = 4, random_state=0, max_iter = 500)
model.fit(X)
# (4)获取 model 对象中的 labels_属性,可以返回其聚类的标签。类标签的数值没有实际的意义,仅起到类标注的作用。
c=model.labels_
Fs=pd.Series(c,index=data['地区'])
Fs=Fs.sort_values(ascending=True)
Fs
ML机器学习算法笔记相关推荐
- python决策树 value_机器学习 | 算法笔记(四)- 决策树算法以及代码实现
概述 上一篇讲述了<机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现>,本篇讲述机器学习算法决策树,内容包括模型介绍及代码实现. 决策树 决策树(Decision Tree)在机 ...
- 机器学习算法笔记——P22 sklearn—LASSO算法
机器学习算法笔记--P22 sklearn-LASSO算法 #!/usr/bin/env python # coding: utf-8# In[1]:import numpy as np from n ...
- 白话机器学习算法——笔记
白话机器学习算法--笔记 第一章 1 数据准备 数据格式 (一般为表格) 变量类型 变量选择 特征工程 降维 缺失数据的处理 2 选择算法 3 参数调优 4 评价模型 总结 第二章 k均值聚类 1 迭 ...
- 机器学习算法笔记(零)
机器学习算法笔记(零) 简介 机器学习的定义:对于某类任务 T 和性能度量 P,一个计算机程序被认为可以从经验 E 中学习是指,通过经验 E 改进后,它在任务 T 上由性能度量 P 衡量的性能有所提升 ...
- 机器学习 | 算法笔记- 集成学习(Ensemble Learning)
前言 本系列为机器学习算法的总结和归纳,目的为了清晰阐述算法原理,同时附带上手代码实例,便于理解. 目录 k近邻(KNN) 决策树 线性回归 逻辑斯蒂回归 朴素贝叶斯 支持向量机(SVM) 组合算法( ...
- ML机器学习算法(一): 基于逻辑回归的分类预测
机器学习算法(一): 基于逻辑回归的分类预测 1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个 ...
- 机器学习算法笔记-聚类
聚类算法 k-means聚类 k-means的基本概念 不稳定结果 评价指标 参数k如何选择 基于kmeans的图像分割 基于kmeans的半监督学习 DBSCAN聚类 DBSCAN的基本概念 如何选 ...
- 【机器学习算法笔记系列】逻辑回归(LR)算法详解和实战
逻辑回归(LR)算法概述 逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法. 逻辑 ...
- 机器学习算法——笔记DAY1
什么是机器学习? 不严谨的理解:在有监督的情况下,根据对大量有效标签的数据学习--训练模型,输入进去学习的模型,不断的迭代其本身的模型参数,从而得到最终的模型. 有的将机器学习的一般流程看做是炒菜: ...
最新文章
- HDU2544(Bellman-ford算法和Floyd算法)
- JVM---运行时数据区概述
- 论机器学习的正确学习姿势
- 基于re模块的计算器
- dede日期时间标签调用大全
- 学习笔记-nil NULL NSNull Nil的区别
- C#实现MVC模式简要方法(2)
- 北斗导航 | 北斗系统信息处理创新技术(学术PPT分享附视频)
- php把时间格式转换为时间戳,php如何将时间格式转换成时间戳?
- python进阶(十七)正则json(上)
- 自学笔记:计时器Chronometer
- python实现字母的加密和解密 字典_python实现AES加密与解密
- 关于使用runtimeStyle属性问题讨论
- 数字图像恢复matlab结论,matlab模糊图像恢复数字图像处理
- Outlook验证服务器证书,OUTLOOK2019 解决 无法验证您连接到的服务器使用的安全证书...
- 北京公司买车,都需要什么手续?摇号有什么特殊要求?
- 传感器实验——心率血氧.max30102
- 分治——最近点对问题
- 如何快速入门Spring Cloud
- 2021年高处作业安装拆除维护证考试题库及安装拆除维护试题解析