`

机器学习HelloWrold:从零开始到模型训练预测房价

阅读更多

编写不易,转载请注明( http://shihlei.iteye.com/blog/2386498)!

 

一 概述

    基于python 从零开始,完成环境搭建,训练模型,预测房价。
    
    环境:
        1)运行环境
        Miniconda3:包管理器
        python :3.6     
        
        2)lib:
            jupyter:python 开发环境,deme 主要的集成开发环境
            numpy:科学计算库,用于高性能矩阵计算,(暂未使用)
            patplotlib:2D绘图库,demo 中绘图,方便查看模型近似
            pandas: 数据分析库,demo 中用于检测操作训练数据,未进行各种数值统计
            scikit-learn: 机器学习库,demo 进行模型训练
 
    其他:
        默认大家了解机器学习的本质,什么是回归。
 

二 环境搭建

    1) Miniconda3 
    (a) 安装
     Miniconda3 是类似于pip,easy_install, 是 anaconda 的简化版,一般都是装anaconda ,不想装无用的lib,所以选择Miniconda ;
     网站: https://conda.io/miniconda.html,我mac 环境,下载个shell ,bash即可,都是下一步,下一步
     装完,家目录下存在 miniconda3 目录
 
Do you approve the license terms? [yes|no]
>>> yes

Miniconda3 will now be installed into this location:
/Users/xxx/miniconda3

  - Press ENTER to confirm the location
  - Press CTRL-C to abort the installation
  - Or specify a different location below

[/Users/xxx/miniconda3] >>>
PREFIX=/Users/xxx/miniconda3

installing: python-3.6.1-2 ...
installing: asn1crypto-0.22.0-py36_0 ...
installing: cffi-1.10.0-py36_0 ...
installing: conda-env-2.6.0-0 ...
installing: cryptography-1.8.1-py36_0 ...
installing: idna-2.5-py36_0 ...
installing: openssl-1.0.2l-0 ...
installing: packaging-16.8-py36_0 ...
installing: pycosat-0.6.2-py36_0 ...
installing: pycparser-2.17-py36_0 ...
installing: pyopenssl-17.0.0-py36_0 ...
installing: pyparsing-2.1.4-py36_0 ...
installing: readline-6.2-2 ...
installing: requests-2.14.2-py36_0 ...
installing: ruamel_yaml-0.11.14-py36_1 ...
installing: setuptools-27.2.0-py36_0 ...
installing: six-1.10.0-py36_0 ...
installing: sqlite-3.13.0-0 ...
installing: tk-8.5.18-0 ...
installing: xz-5.2.2-1 ...
installing: yaml-0.1.6-0 ...
installing: zlib-1.2.8-3 ...
installing: conda-4.3.21-py36_0 ...
installing: pip-9.0.1-py36_1 ...
installing: wheel-0.29.0-py36_0 ...
Python 3.6.1 :: Continuum Analytics, Inc.
creating default environment...
installation finished.
Do you wish the installer to prepend the Miniconda3 install location
to PATH in your /Users/xxx/.bash_profile ? [yes|no]
[yes] >>>
Prepending PATH=/Users/xxx/miniconda3/bin to PATH in /Users/xxx/.bash_profile
A backup will be made to: /Users/xxx/.bash_profile-miniconda3.bak


For this change to become active, you have to open a new terminal.

Thank you for installing Miniconda3!

Share your notebooks and packages on Anaconda Cloud!
Sign up for free: https://anaconda.org
 
      (b)使用
# 更新
conda update conda

# 搜索软件
conda search -n python36 xxx

# 查看某个环境已经安装的软件
conda list -n python36 xxx
 
         2)安装python 环境
   
# 创建pyton36环境,版本3.6 , conda 自动寻找最新的3.6.x
conda create --name pytho36 python=3.6

# 激活某个环境,其实就是path 换一下指向的版本
source activate python36
 
注:
    (1)使用 conda 可以很方便的安装多个版本的python,和各个python 版本切换。我Python 2.7,3.6都装了
    (2)删除python 环境:conda remove --name python36 --all
 
    2)安装依赖lib

 

conda install -n python36 jupyter

conda install -n python36 matplotlib
conda install -n python36 numpy
conda install -n python36 pandas
conda install -n python36 scikit-learn

 

 

三 开发工具

    使用web 版的jupyter 进行开发,
 
   1) 启动方式:
jupyter notebook --port 8888
    2)使用
(1)新建编辑器

  
(2)编写脚本


    
 3)其他
 notebook的两种模式:
 (a)命令模式 (按键 Esc 开启)
L : 调出行号
 (b) 编辑模式 ( Enter 键启动)
Tab : 代码补全或缩进
Ctrl-Enter : 运行本单元
 

四 试试各个lib

1)matplotlib 画图
import numpy as np
import matplotlib.pyplot as plt

x = [1,2,3,4,5,6,7]
y = np.sin(x)

print(y)
#  设置执行x的值和y的值
plt.plot(x,y)
# 打印x,y 的曲线
plt.show()

 

 

 
2)pandas 
import numpy as np
import pandas as pd

#随机一个3x4 矩阵
table = np.random.randn(3,4)
print('table: ',table)

#设置title
title = ['a','b','c','d']

#构建pandas DataFrame
df = pd.DataFrame(table,columns=title)
print(df)

#试验把矩阵转置
tdf = df.T
print(tdf)


 
五 机器学习代码
import pandas as pd
import matplotlib.pyplot as plt
import sklearn.linear_model

#测试数据集,一个房屋大小,一个价格,随便写的
room_size_price_data = [[100,200],[105,211],[200,300],[111,250]]
room_df = pd.DataFrame(room_size_price_data,columns=['size','price'])
size_data = room_df.loc[:,['size']].values
price_data = room_df['price'].values

# 打印训练集数据
print(room_df)

# 训练模型,注意:size_data必须是二维数组,因为特征向量也是数组,一维数组这里会出错误
regr = linear_model.LinearRegression()
regr.fit(size_data,price_data)

# 查看对比图
plt.xlabel('Size')
plt.ylabel('Price')
plt.title('linear regression plot!')
plt.scatter(size_data,price_data,color='blue')
plt.plot(size_data,regr.predict(size_data),color="green")
plt.show()

# 预测
need_predict_size=[400,500]
for size in need_predict_size:    
    predict_price = regr.predict(size)
    print("size: %d, price : %d" % (size,predict_price))
 
结果:



 

  • 大小: 56.7 KB
  • 大小: 45.6 KB
  • 大小: 33.6 KB
  • 大小: 48.1 KB
  • 大小: 38.7 KB
分享到:
评论

相关推荐

    01hello wrold.js演示

    hello world调试

    hibernate hellowrold入门级代码

    【hibernate helloworld入门级代码】是针对初学者的一个简单示例,旨在帮助理解Hibernate这一流行的Java对象关系映射(ORM)框架的基本用法。在这个项目中,我们将探讨Hibernate如何将Java对象与数据库中的记录关联...

    dubbo-hellowrold实例

    dubbo入门实例,包含一个provider的maven工程和一个comsumer的maven工程,具体效果和过程看博文http://blog.csdn.net/evankaka/article/details/48009645

    C#-Hello,Wrold

    根据给定的信息,本文将详细解释C#语言中“Hello, World!”程序的17种不同实现方式。这些实现不仅展示了C#的基本语法结构,还涉及了类、方法、异常处理等多个方面,对于初学者来说是非常好的学习材料。 ### 1. 基本...

    helloworld:我最好的Hello World源代码-Source code world

    在IT领域,"Hello, World!"程序是每个程序员入门时的第一个程序,它标志着编程旅程的开始。这个名为“helloworld”的项目,显然就是一个专门展示如何编写和运行"Hello, World!"程序的开源资源。让我们深入了解一下这...

    Java HelloWorld原理分析_动力节点Java学院整理

    我们初学java的第一个程序是"hello world" 1 public class HelloWorld { 2 public static void main(String[] args) { 3 System.out.println("hello world"); 4 } 5 } 上面程序到底是怎么在屏幕上输出“hello world...

    Eclipse NDK 开发之 HelloWorld

    要开始Eclipse NDK的HelloWorld项目,首先需要安装以下组件: 1. **Eclipse IDE**:一个流行的Java开发环境,也支持Android开发。 2. **ADT(Android Developer Tools)**:这是Eclipse的一个插件,用于Android应用...

    HelloWorld.java

    HelloWorld.java

    基于OpenHarmony的HelloWorld示例应用.zip

    HelloWrold.java作为应用程序的入口点,继承自AbilityPackage,负责应用程序的初始化。 MainAbility.java定义了应用的主要功能,包括应用启动和停止时的生命周期管理。 2. 测试支持 MainAbilityTest.java使用...

    gomq:通过go实现消息队列

    发布消息是这样的: docker exec -it gomq gomqctl --topic A --connect 127.0.0.1:9000 pub hello wrold everyone 并通过以下方式订阅主题: docker exec -it gomq gomqctl --topic A --connect 127.0.0.1:9000 ...

    Maven传递依赖和依赖的规则.docx

    例如,HelloWrold2分别依赖包含不同版本commons-fileupload.jar的HelloWorld和HelloWorld3,最终会选择最先声明的HelloWorld3的版本。 总结来说,Maven的依赖管理和传递依赖机制旨在简化项目构建,自动解决依赖关系...

    Java中常用函数汇总

    例如,下面的代码会检查`str1`从索引13开始的子串"Hello"是否与`str2`从索引14开始的子串"hello"匹配: ```java String str1 = "Hello Wrold, Hello China."; String str2 = "I con't spell hello"; str1....

    MFC实现Vigenre加解密

    Vigenere加密的原理: 假设有一Vigenere密钥为(2...将明文helloworld的第一个字母移动2个位置,第二个位置移动4个位置,…,第5个字母移动7个位置,然后再从密钥的头部开始循环,直到将明文hellowrold全部转换为密文

    StudyInEsp32:【深度开源】wiif+bt模块esp32学习之旅(持续更新,欢迎 Star...)

    与我的学习esp8266之旅一样,《StudyIn32》 的设计目的是用于帮助新手学习8266原生SDK的各种项目汇总,同时也有集成的项目,让开发者能在这基础代码的设计。不管是新项目的创建,或是已有项目的维护,均可使开发效率...

    基于Brew平台的HelloKitty的实现

    ### 基于Brew平台的HelloKitty实现——详细步骤与心得 #### 一、背景介绍 在手机开发领域,尤其是针对特定平台的应用开发,新手往往会遇到一系列挑战。本篇文章将详细介绍如何在Brew平台上实现一个简单的应用——...

    树莓派系列教程3:Serial串口.pdf

    ser.write("Hello Wrold !!!\n") try: while True: ser.write(ser.read()) except KeyboardInterrupt: if ser != None: ser.close() ``` 运行程序: ``` sudo python uart.py ``` 两个程序都将实现相同...

    浩辰二次开发移植文档2018

    最近在研究arx到grx的移植,收集一些比较有用的资料,内含有 1 grxsdk2019.zip开发包 2 GstarCAD.net开发移植指南.docx ...6 本人从arx移植到浩辰2019 64位 成功的一个helloWrold案例 GrxProject.rar,仅供参考

    QT串口程序

    8. **示例代码**:“Hellowrold”可能是一个简单的示例程序,用于演示如何在QT5中实现串口通信的基本功能。通常,它会包含一个主窗口,用户界面元素如按钮用于打开和关闭串口,文本框显示接收到的数据,以及可能的...

Global site tag (gtag.js) - Google Analytics