学习备记,机器学习入门

那最常用的当然是这两个库了:

import numpy as np
import pandas as pd

流程上来一般就是,先载入数据:

in_file = 'titanic_data.csv'
full_data = pd.read_csv(in_file)

后面就是display,这个不是直接调库,先不写。
下一步是把原始数据分开成一部分特征,一部分标签。往往用到这个语句:

data= full_data['Survived']   # 标签集
feature= full_data.drop('Survived', axis = 1)   # 特征集  

有时候,我们还要对分出来的特征数据集进行一下改动,可能会用到这些语句:

income = income_raw.replace(['<=50K', '>50K'], [0, 1])   # 替换
print data[0:1]  #  选择第一行
print data.loc[1:3]   # 行选择
print data.loc[1:3, ['age', 'race', 'sex']]  # 行列选择
print data.iloc[1:3, 0:8]  # 行列选择
print data[[0, 3, 6]]  # 选择列

这里有一些最简单的统计运算:

#目标:计算价值的最小值
minimum_price = np.min(data['MEDV'])
# TODO: Maximum price of the data
#目标:计算价值的最大值
maximum_price = np.max(data['MEDV'])
# TODO: Mean price of the data
#目标:计算价值的平均值
mean_price = np.mean(data['MEDV'])
# TODO: Median price of the data
#目标:计算价值的中值
median_price = np.median(data['MEDV'])
# TODO: Standard deviation of prices of the data
#目标:计算价值的标准差
std_price = np.std(data['MEDV'])

sklearn中会有一些评价预测能力的函数,例如:

from sklearn.metrics import r2_score
score =  r2_score(y_true, y_predict)

在看结果的时候,我们可能会想要自己想要的格式,注意format格式输出:
给个链接

print '{},{}'.format('kzc',18)
print '{1},{0},{1}'.format('kzc',18)
# 字符串的format函数可以接受不限个参数,位置可以不按顺序,可以不用或者用多次,不过2.6不能为空{},2.7才可以。
'{name},{age}'.format(age=18,name='kzc')  # 通过关键字参数
# 富的的“格式限定符”(语法是{}中带:号)
'{:>8}'.format('189')
'{:0>8}'.format('189')  # 输出:00000189
'{:a>8}'.format('189')  # 输出:aaaaa189
# 精度与类型f
'{:.2f}'.format(321.33345)  # 输出:321.33
'{:,}'.format(1234567890)  # 千位分隔符。输出:1,234,567,890

有时候我们想要把原数据的一部分作为测试集,用这个语句:

from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(features, prices, test_size=0.2, random_state=42)  # 最后这个参数random_state给多少都可以。

在我们使用sklearn中的一些方法时,其实套路很简单,导入,学习(fit),预测(predict),就行了,如下:

# 高斯朴素贝叶斯 (GaussianNB)
from sklearn.naive_bayes import GaussianNB
NB = GaussianNB()
learner = NB.fit(X_train, y_train)
predictions_test = learner.predict(X_test)

这是一些常用的方法:

clfs = {}
# 高斯朴素贝叶斯 (GaussianNB)
from sklearn.naive_bayes import GaussianNB
clfs["NB"] = GaussianNB()
# 决策树
from sklearn import tree
clfs["DT"] = tree.DecisionTreeClassifier()
# AdaBoost
from sklearn.ensemble import AdaBoostClassifier
clfs["AB"] = AdaBoostClassifier()
# 随机森林
from sklearn.ensemble import RandomForestClassifier
clfs["RFC"] = RandomForestClassifier()
# K临近
from sklearn.neighbors import KNeighborsRegressor
# clfs["KN"] = KNeighborsRegressor(n_neighbors=2)
clfs["KN"] = KNeighborsRegressor()
# 随机梯度下降分类器 (SGDC)
from sklearn import linear_model
clfs["SGDC"] = linear_model.SGDClassifier()
# 支撑向量机 (SVM)
from sklearn.svm import SVC
clfs["SVC"] = SVC()
# Logistic回归
from sklearn.linear_model import LogisticRegression
clfs['LR'] = LogisticRegression()

不过,有时候你可能想用一下网格搜索:

from sklearn.model_selection import GridSearchCV
grid = GridSearchCV(estimator = regressor, param_grid = params, scoring = scoring_fnc, cv = cv_sets)
# 这几个参数的意思分别是:
# estimator 具体预测方法,例如决策树。
# param_grid 预测方法的参数,例如决策树的最大深度,这个参数用字典传入,这么写:params = {'max_depth':range(1,11)}
# scoring 评价方法
# cv 交叉验证方法

选取最终要的特征:

# TODO:导入一个有'feature_importances_'的监督学习模型
from sklearn import tree

# TODO:在训练集上训练一个监督学习模型
model = ExtraTreesClassifier()
model.fit(X_train, y_train)

# TODO: 提取特征重要性
importances = model.feature_importances_

# 绘图
vs.feature_plot(importances, X_train, y_train)

# 这里好像是提取了前五个最重要的参数,图像如下:
最重要的五个参数

好了就这些。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,602评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,442评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,878评论 0 344
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,306评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,330评论 5 373
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,071评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,382评论 3 400
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,006评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,512评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,965评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,094评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,732评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,283评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,286评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,512评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,536评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,828评论 2 345

推荐阅读更多精彩内容