机器学习——线性回归-KNN-决策树(实例)
导入类库
import numpy as np
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.feature_extraction import DictVectorizer
from sklearn.tree import DecisionTreeClassifier
线性回归
def price_predict():
# 数据有三个特征:距离地铁距离、附近小学数量、小区绿化率
X = np.array([[500.0, 3.0, 0.3], [1000.0, 1.0, 0.6], [750.0, 2.0, 0.3], [600.0, 5.0, 0.2], [1200.0, 1.0, 0.6]])
# 具有三个特征的房屋对应的房价
Y = np.array([10000, 9000, 8000, 12000, 8500]) # 标准化,按列转化,转化到数据均值为0方差为1的标准分布内
std_x = StandardScaler()
x_train = std_x.fit_transform(X)
std_y = StandardScaler()
y_train = std_y.fit_transform(Y.reshape(-1, 1)) # 构建线性预测模型
lr = LinearRegression()
# 模型在历史数据上进行训练,Y.reshape(-1,1)将Y变为二维数组,fit函数要求二维数组
lr.fit(x_train, y_train) # 使用训练模型预测新房屋价格
x_predict = std_x.transform(np.array([[1300, 3.0, 0.4]]))
print(std_y.inverse_transform(lr.predict(x_predict)))
KNN
# K近邻分类(K表示以最近的几个邻居作为分类的指标)
# KNN表示了物以类聚人以群分的基本思考方法,最近的K个邻居是什么类别,预测样本就会被划为该类别
def knn_predict_rev():
# 数据理解为二维坐标上的6歌点
X = np.array([[1.0, 1.0], [1, 1.5], [0.5, 1.5], [3.0, 3.0], [3.0, 3.5], [2.8, 3.1]])
# 6个点的类别,按顺序和X依次对应
Y = np.array([0, 0, 0, 1, 1, 1]) # n_neighbors就是KNN中的K
knn = KNeighborsClassifier(n_neighbors=3)
knn.fit(X, Y)
print(knn.predict(np.array([[2.0, 3.0]])))
决策树
def decide_play():
'''
ID3
:return:
'''
df = pd.read_csv('dtree.csv')
# 将数据转换为字典格式,orient='record'参数指定数据格式为{column:value}的形式
# 一个字典对应一行数据
dict_train = df.loc[:, ['Outlook', 'Temperatur', 'Humidity', 'Windy']].to_dict(orient='record')
# 如果pandas从DataFrame取出一列数据,该数据类型会变成Series
dict_target = pd.DataFrame(df['PlayGolf'], columns=['PlayGolf']).to_dict(orient='record') # 训练数据字典向量化
dv_train = DictVectorizer()
x_train = dv_train.fit_transform(dict_train)
# 目标数据字典向量化
dv_target = DictVectorizer()
y_target = dv_target.fit_transform(dict_target) # 创建决策树
d_tree = DecisionTreeClassifier()
# 训练数据
d_tree.fit(x_train, y_target)
data_predict = {
'Humidity': 85,
'Outlook': 'sunny',
'Temperatur': 85,
'Windy': False
}
# 标准化要预测的数据
x_data = dv_train.transform(data_predict)
# 预测数据并转换为原格式
print(dv_target.inverse_transform(d_tree.predict(x_data)))
机器学习——线性回归-KNN-决策树(实例)的更多相关文章
- 机器学习之KNN算法
1 KNN算法 1.1 KNN算法简介 KNN(K-Nearest Neighbor)工作原理:存在一个样本数据集合,也称为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属 ...
- 机器学习算法·KNN
机器学习算法应用·KNN算法 一.问题描述 验证码目前在互联网上非常常见,从学校的教务系统到12306购票系统,充当着防火墙的功能.但是随着OCR技术的发展,验证码暴露出的安全问题越来越严峻.目前对验 ...
- 【机器学习】kNN
机器学习算法--kNN 目录 机器学习算法--kNN 1. 算法原理 2. 算法实现 2.1 kd-tree构造 2.2 kd-tree查询 2.3 kNN算法实现 3. 算法测试 Ref 1. 算法 ...
- 基于Docker的TensorFlow机器学习框架搭建和实例源码解读
概述:基于Docker的TensorFlow机器学习框架搭建和实例源码解读,TensorFlow作为最火热的机器学习框架之一,Docker是的容器,可以很好的结合起来,为机器学习或者科研人员提供便捷的 ...
- 机器学习模型| 监督学习| KNN | 决策树
分类模型 K近邻 逻辑斯谛回归 决策树 K近邻(KNN) 最简单最初级的分类器,就是将全部的训练数据所对应的类别都记录下来,当测试对象的属性和某个训练对象的属性完全匹配时,便可以对其进行分类K近邻(k ...
- python机器学习---线性回归案例和KNN机器学习案例
散点图和KNN预测 一丶案例引入 # 城市气候与海洋的关系研究 # 导包 import numpy as np import pandas as pd from pandas import Serie ...
- 【Python机器学习实战】决策树与集成学习(七)——集成学习(5)XGBoost实例及调参
上一节对XGBoost算法的原理和过程进行了描述,XGBoost在算法优化方面主要在原损失函数中加入了正则项,同时将损失函数的二阶泰勒展开近似展开代替残差(事实上在GBDT中叶子结点的最优值求解也是使 ...
- 【Python机器学习实战】决策树与集成学习(五)——集成学习(3)GBDT应用实例
前面对GBDT的算法原理进行了描述,通过前文了解到GBDT是以回归树为基分类器的集成学习模型,既可以做分类,也可以做回归,由于GBDT设计很多CART决策树相关内容,就暂不对其算法流程进行实现,本节就 ...
- 机器学习算法K-NN的一个使用实例:预测一个人是否患有糖尿病 (KNN-Predict whether a person will have diabetes or not )
学习中...不断更新. 在糖尿病人的数据库中有几列是不能为0的 比如葡萄糖 胰岛素 身体指数和皮肤厚度.所以在数据预处理阶段需要对这些列的数据进行替换. remeber we did 12 minus ...
随机推荐
- 主机管理+堡垒机系统开发:strace命令用法详解(六)
一.简单介绍 strace是什么? 按照strace官网的描述, strace是一个可用于诊断.调试和教学的Linux用户空间跟踪器.我们用它来监控用户空间进程和内核的交互,比如系统调用.信号传递.进 ...
- Redis protocol (redis通信协议)
以前只会用redis -cli客户端, 或者在java程序里使用jedis来作为介质与redis服务器通信.这两天正好在实习中接触了一点这方面的内容. 五一放假就稍微翻了翻redis相关资料. 本篇博 ...
- Word中页眉、页码设置
本篇博文简单介绍一下文档中页眉.页码设置的问题 一个项目中,封面一般不需要页眉,要关闭首页的页眉,可以在"页眉和页脚工具->选项->首页不同"可以如下设置: 图 1关闭 ...
- SpringBoot系列: SpringBoot Web项目中使用Shiro 之二
==================================Shiro 的加深理解:==================================1. Shiro 和 Spring 系组 ...
- LOJ #2116 Luogu P3241「HNOI2015」开店
好久没写数据结构了 来补一发 果然写的时候思路极其混乱.... LOJ #2116 Luogu P3241 题意 $ Q$次询问,求树上点的颜色在$ [L,R]$中的所有点到询问点的距离 强制在线 询 ...
- kerbose常用操作
1.查看有那些用户认证 kadmin.local -q "list_principals" 2.用keytab文件进行认证 kinit -kt /root/keytab/hive. ...
- 对OAuth协议的认识
一. OAuth是什么 OAuth 是Open Authorization的简写.OAuth 协议为用户资源的授权提供了一个安全的.开放而又简易的标准. 通俗地说,就是当我们想把自己系统的某些功能暴露 ...
- Lua中的表达式
[算术操作符] Lua支持常规的算术操作符有:”+”(加法),”-“(减法),”*”(乘法),”/”(除法),”^”(指数),”%”(取模),一元的”-“(负号).所有的这些操作符都用于实数.例如:x ...
- 【原创】大数据基础之Impala(2)实现细节
一 架构 Impala is a massively-parallel query execution engine, which runs on hundreds of machines in ex ...
- C++入门篇四
常量引用:形参不能修改,节省开辟内存空间的开销 用一级指针代替二级指针常量引用,使用场景,修饰形参为只读const int a=10会分配内存如果使用引用,在前面加了一个const的话,那么就不可以修 ...