使用pandas,numpy,scikit learn分析数据

  1. 打开此数据集(csv 文件),我们将在 Pandas 中使用命令read_csv

    import pandas
    data = pandas.read_csv("file_name.csv")
    
  2. 我们已经在 Pandas 中加载数据,现在需要将输入和输出拆分为 numpy 数组,以便在 scikit-learn 中应用分类器。
    假设有个 pandas 数据框 df,如下所示,有四个列,分别标为 A、B、C、D:
    在这里插入图片描述
    如果我们想要提取列 A,则执行以下操作:

    >> df['A']
    

    得到
    0 1
    1 5
    2 9
    Name: A, dtype: int64

    如果我们提取更多的列(columns),则执行以下操作:

    >> df[['B', 'D']]
    

    [ ]不变,里面是列表形式。

  3. 最后,我们将提取出来的数据框(pandas DataFrames)转变为 NumPy 数组。如df,这个操作的命令语句很简单:

    	>> numpy.array(df)
    

总体代码展示如下:

import pandas as pd  #导入相关包
import numpy as np

data = pd.read_csv("data.csv") #读取数据
#这里的提取是转变为Numpy数组,不是直接显示提取
X = np.array(data[['x1', 'x2']]) #提取x1,x2列,起名叫X
y = np.array(data['x3'])  #提取x3列,起名叫y
  1. 在 scikit learn 中训练模型
    数据有了,用前面博客讲到的:
    逻辑回归
    神经网络
    决策树
    支持向量机
    算法就能训练模型了
    以逻辑回归为例:
       from sklearn.linear_model import LogisticRegression
       classifier = LogisticRegression()
       classifier.fit(X,y)
    
    第一句导入逻辑回归的包
    第二句定义逻辑回归分类器
    第三句把数据放到分类器里面
    这样就可以得到结果了。

如何使用其他算法呢?如下所示:

#逻辑回归
from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression()
classifier.fit(X,y)

#神经网络
from sklearn.neural_network import MLPClassifier
classifier = MLPClassifier()
classifier.fit(X,y)

#决策树
from sklearn.tree import DecisionTreeClassifier
classifier = DecisionTreeClassifier()
classifier.fit(X,y)

#支持向量机
from sklearn.svm import SVC
classifier = SVC()
classifier.fit(X,y)

这时候整体代码总结如下:

import pandas
import numpy

# Read the data
data = pandas.read_csv('data.csv')

# Split the data into X and y
X = numpy.array(data[['x1', 'x2']])
y = numpy.array(data['x3'])

# import statements for the classification algorithms
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
from sklearn.svm import SVC

# Logistic Regression Classifier逻辑回归
classifier = LogisticRegression()
classifier.fit(X,y)

# Decision Tree Classifier决策树
classifier = DecisionTreeClassifier()
classifier.fit(X,y)

# Support Vector Machine Classifier支持向量机
classifier = SVC()
classifier.fit(X,y)

如果一个数据很复杂,一般就选择SVM支持向量机算法,上面使用的都是默认值,接下来我们关注一下他的参数:
[1] kernel:linear (线性), poly(多项式), rbf(高斯核)
[2] degree:多项式内核的次数(如果选择了多项式内核)
[3] gamma :γ 参数
[4] C:C参数
你的分类器就可以这样写

  • classifier = SVC(kernel = ‘poly’, degree = 2)
  • classifier = SVC(kernel = ‘rbf’, gamma = 200)
    具体的参数含义呢?可以先自行了解。

以上四步可以可以直接运用了,但是这里增加一个步骤。
这个步骤应该放在3-5之间执行。
把数据分成训练集和测试集两个概念。可以阅读以下文章。
机器学习训练集与测试集概念
这时总体代码如下:

import pandas as pd
data = pd.read_csv("data.csv")

import numpy as np
X = np.array(data[['x1', 'x2']])
y = np.array(data['x3'])

from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size = 0.2)

from sklearn.linear_model import LogisticRegression
classifier = LogisticRegression()
classifier.fit(X_train,y_train)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值