机器学习库scikitlearn使用(一)

前言

基于

  1. Python scikit-learn机器学习库
  2. 感谢scikit-learn中官方文文档

目的

  1. 手动搭建自己的机器学习解决方案.
  2. 研究全球气候变暖

概念

机器学习

Machine Learning we also call as Predictive Analytics,Statistical Learning.

早期

我们用if和else制定人为规则,比如根据关键词黑名单过滤垃圾邮件.

缺点

但是一套规则一次只能用于一个领域.需求稍有变化就得重写整个系统.
其次制定规则的人必须对该领域的理解非常深刻,比如人脸识别规则.

监督学习

Supervised Learning Algorithm
方法
算法
输入
input-output数据集
预期
算法
给定输入得到预期输出
前所未见的输入
依然有相应的输出

比如我们要获得信用卡诈骗评估系统的机器学习模型,就需要输入所有欺诈行为和非欺诈行为的输入-输出对

无监督学习

只有输入,未知输出.但是输出一定与输入有相同或相关的格式,范畴,概念.

Web Dangerous Assession
Unsupervised Learning Algorithm
不知道哪些是异常的访问
输入全部流量行为
算法
分析异常流量特征
上千篇博客
统计表征
博客间相同的关键词

样本

不管何种算法,都需要喂数据

样本Sample

一个样本就是一条input-output对.我们先把数据处理为计算机可理解的形式就是一个将数据转化为表格的过程.

一个样本对应表格中的一行记录row.
样本的不同特征feature对应表格的不同column属性.

选择良好的特征,并收集到正确的数据对算法质量至关重要.比如我们想预测一个人的性别只收集他的姓是没有用的,正确的做法是以他的名为特征.

graph TB
要解决的任务-->输入的数据类型
输入的数据类型-->恰当的特征
恰当的特征-->合适的输入集
合适的输入集-->算法
算法-->要解决的任务

Python

  1. 既有通用编程语言的强大,又有特点领域脚本语言的易用性.
  2. 还可以创建复杂的Graphical User Interface和灵活的Web服务

Numpy与Scipy

Numpy就是创建数组,再表现为矩阵的python科学计算库

# 利用array创建二维数组
x = numpy.array([[1,2,3],[4,5,6]])
print(x)

效果:

# 利用eye创建四维对角线Sparse_Matrix的稠密表示
x = numpy.eye(4)
print(x)

效果:

# 创建Sparse_Matrix的CSR表示
x = numpy.eye(4)
sparse_matrix = sparse.csr_matrix(x)
print(sparse_matrix)

效果:

# 利用ones批量创建元素都为1的一维数组
data = numpy.ones(4)
print(data)

效果:

非常好

# 利用arange批量创建0起的自然排序的一维数组
rows = numpy.arange(4)
print(rows)

效果:
在这里插入图片描述

# 利用sparse.coo_matrix((data,(row,column)))按座标设置式创建矩阵
# 未设置矩阵部分默认为0
data = numpy.ones(4)
rows = numpy.arange(4)
columns = numpy.arange(4)
coo_matrix = sparse.coo_matrix((data,(rows,columns)))
# coo_matrix直接就是稀疏矩阵的稀疏表示.只输出非0的座标与对应的元素
print(coo_matrix)

总结:一维转二维

配上一维行与一维列
array
一维
ones
arange
coo_matrix
二维矩阵

Matplotlib

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
# 设置字体实例myfont
myfont = matplotlib.font_manager.FontProperties(fname=r'/Users/huangmengyao/Library/Fonts/msyh.ttf')
x = np.linspace(-10, 10, 100)

y = np.sin(x)

plt.plot(x,y,marker="x",)
plt.title("y=sin(x)", fontproperties=myfont)
plt.xlabel("x轴", fontproperties=myfont)
plt.ylabel("y轴", fontproperties=myfont)
plt.show()

效果:

Pandas

数据查询与连接神器

数据库
字典
Excel
CSV
pandas
query结果

利用DataFrame格式化排版数据处理(查询)结果

import pandas as pd
from IPython.display import display
# 一个Key-Value对就是一个column
data = {
    'Name':["John", "Anna", "Peter"], 'Location' :["New York", "Paris", "Berlin"], 'Age': [24, 13, 53]
}

data_pandas = pd.DataFrame(data)
display(data_pandas)

效果:
在这里插入图片描述

import pandas as pd
from IPython.display import display
# 一个Key-Value对就是一个column
data = {
    'Name':["John", "Anna", "Peter"], 'Location' :["New York", "Paris", "Berlin"], 'Age': [24, 13, 53]
}

data_pandas = pd.DataFrame(data)
# 找出所有满足某类要求的记录rows
display(data_pandas.Age > 30)

效果:

import pandas as pd
from IPython.display import display
# 一个Key-Value对就是一个column
data = {
    'Name':["John", "Anna", "Peter"], 'Location' :["New York", "Paris", "Berlin"], 'Age': [24, 13, 53]
}

data_pandas = pd.DataFrame(data)
# 根据满足要求的记录rows显示结果
display(data_pandas[data_pandas.Age > 30])

效果:
![image(http://note.youdao.com/yws/res/7371/5AF636BB47304EB482847E3D6779CD2F)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章