文章目录

  • 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机器学习算法笔记相关推荐

  1. python决策树 value_机器学习 | 算法笔记(四)- 决策树算法以及代码实现

    概述 上一篇讲述了<机器学习 | 算法笔记(三)- 支持向量机算法以及代码实现>,本篇讲述机器学习算法决策树,内容包括模型介绍及代码实现. 决策树 决策树(Decision Tree)在机 ...

  2. 机器学习算法笔记——P22 sklearn—LASSO算法

    机器学习算法笔记--P22 sklearn-LASSO算法 #!/usr/bin/env python # coding: utf-8# In[1]:import numpy as np from n ...

  3. 白话机器学习算法——笔记

    白话机器学习算法--笔记 第一章 1 数据准备 数据格式 (一般为表格) 变量类型 变量选择 特征工程 降维 缺失数据的处理 2 选择算法 3 参数调优 4 评价模型 总结 第二章 k均值聚类 1 迭 ...

  4. 机器学习算法笔记(零)

    机器学习算法笔记(零) 简介 机器学习的定义:对于某类任务 T 和性能度量 P,一个计算机程序被认为可以从经验 E 中学习是指,通过经验 E 改进后,它在任务 T 上由性能度量 P 衡量的性能有所提升 ...

  5. 机器学习 | 算法笔记- 集成学习(Ensemble Learning)

    前言 本系列为机器学习算法的总结和归纳,目的为了清晰阐述算法原理,同时附带上手代码实例,便于理解. 目录 k近邻(KNN) 决策树 线性回归 逻辑斯蒂回归 朴素贝叶斯 支持向量机(SVM) 组合算法( ...

  6. ML机器学习算法(一): 基于逻辑回归的分类预测

    机器学习算法(一): 基于逻辑回归的分类预测 1 逻辑回归的介绍和应用 1.1 逻辑回归的介绍 逻辑回归(Logistic regression,简称LR)虽然其中带有"回归"两个 ...

  7. 机器学习算法笔记-聚类

    聚类算法 k-means聚类 k-means的基本概念 不稳定结果 评价指标 参数k如何选择 基于kmeans的图像分割 基于kmeans的半监督学习 DBSCAN聚类 DBSCAN的基本概念 如何选 ...

  8. 【机器学习算法笔记系列】逻辑回归(LR)算法详解和实战

    逻辑回归(LR)算法概述 逻辑回归(Logistic Regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上是属于一种分类方法. 逻辑 ...

  9. 机器学习算法——笔记DAY1

    什么是机器学习? 不严谨的理解:在有监督的情况下,根据对大量有效标签的数据学习--训练模型,输入进去学习的模型,不断的迭代其本身的模型参数,从而得到最终的模型. 有的将机器学习的一般流程看做是炒菜: ...

最新文章

  1. HDU2544(Bellman-ford算法和Floyd算法)
  2. JVM---运行时数据区概述
  3. 论机器学习的正确学习姿势
  4. 基于re模块的计算器
  5. dede日期时间标签调用大全
  6. 学习笔记-nil NULL NSNull Nil的区别
  7. C#实现MVC模式简要方法(2)
  8. 北斗导航 | 北斗系统信息处理创新技术(学术PPT分享附视频)
  9. php把时间格式转换为时间戳,php如何将时间格式转换成时间戳?
  10. python进阶(十七)正则json(上)
  11. 自学笔记:计时器Chronometer
  12. python实现字母的加密和解密 字典_python实现AES加密与解密
  13. 关于使用runtimeStyle属性问题讨论
  14. 数字图像恢复matlab结论,matlab模糊图像恢复数字图像处理
  15. Outlook验证服务器证书,OUTLOOK2019 解决 无法验证您连接到的服务器使用的安全证书...
  16. 北京公司买车,都需要什么手续?摇号有什么特殊要求?
  17. 传感器实验——心率血氧.max30102
  18. 分治——最近点对问题
  19. 如何快速入门Spring Cloud
  20. 2021年高处作业安装拆除维护证考试题库及安装拆除维护试题解析

热门文章

  1. 可编程电子安全相关系统_编程中的安全生态系统概述
  2. 前端给map集合增加数据
  3. 怎么成为一个软件架构师?
  4. 首都师范 博弈论 3 2 4混合策略纳什均衡
  5. 砺鹰教育之西南民族大学创业讲座精彩纷呈
  6. 3月榜单丨飞瓜数据B站UP主排行榜(哔哩哔哩平台)发布!
  7. 字符型常量与字符串型常量
  8. Arcgis中Geodatabase的 Compressing与Compacting (From 萝卜兔子)
  9. C++ 中的 typeid 运算符和示例
  10. 算法题之个人所得税税率计算一(工资、薪金所得适用)