从sklearn开始
机器学习,一定会有分类、聚类算法。分类我是从朴素贝叶斯开始学习的,核心思想很简单,要记住它是一个概率图模型,是生成模型,大家可以在网上查看到一些写的非常好的博客,这里我就不多说了。除了贝叶斯分类,还可以采用线性回归、逻辑回归、决策树、SVM分类。这几个分类的原理大家可以自行查找,通过sklearn包中提供的方法来学习,可以迅速上手,这里我提供一下我学习的源码地址:https://github.com/liuluyeah/MachineLearning
算法怎么用
每一个算法都要用train.csv文件进行训练,然后把test.csv文件丢到训练好的文件中,得到分类结果。
核心就是几行代码:
import pandas as pd
from sklearn.linear_model import LogisticRegression
from sklearn import cross_validation
print("Training the LR model ...")
model = LogisticRegression(random_state=1)
model.fit(X_train, Y)
from sklearn import cross_validation
print("Training the LR model ...")
model = LogisticRegression(random_state=1)
model.fit(X_train, Y)
······
print("Predicting the Competition Data...")
y_test = model.predict_proba(X_test) # Predict the Target, getting the probability.
pred = y_test[:, 1]
pred_df = pd.DataFrame(data={'Target':pred})
submissions = pd.DataFrame(ID).join(pred_df)
y_test = model.predict_proba(X_test) # Predict the Target, getting the probability.
pred = y_test[:, 1]
pred_df = pd.DataFrame(data={'Target':pred})
submissions = pd.DataFrame(ID).join(pred_df)
submissions.to_csv("D:/aselfstudy/ML/Competition_170427/sub.csv", index=False)
数据预处理
数据预处理很重要!!!我现在面临的问题就是正样本太少,负样本太多,负样本是正阳本的39倍,我现在也正在解决,解决之后再来分享。