-
要打开此数据集(csv 文件),我们将在 Pandas 中使用命令
read_csv
import pandas data = pandas.read_csv("file_name.csv")
-
我们已经在 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']]
[ ]不变,里面是列表形式。
-
最后,我们将提取出来的数据框(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
- 在 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)