1.环境:ubuntu ,python3.4,pycharm
2.数据格式:
import sklearn
import numpy as np
import pandas as pd
from sklearn.cross_validation import train_test_split
from sklearn.linear_model import LogisticRegression
'''
特征归一化:
各特征之间的大小范围一致,才能使用距离度量等算法
加速梯度下降算法的收敛
在SVM算法中,一致化的特征能加速寻找支持向量的时间
不同的机器学习算法,能接受的输入数值范围不一样
'''
'''
sklearn中最常用的特征归一化方法MinMaxScaler和StandardScaler。
它默认将每种特征的值都归一化到[0,1]之间,归一化后的数值大小范围是可调的(根据MinMaxScaler的参数feature_range调整)。
下面代码将特征归一化到[-1,1]之间。
'''
min_max_scaler = sklearn.preprocessing.MinMaxScaler(feature_range=(-1,1))
df = pd.read_csv("data.csv")
df.columns=["grade1","grade2","label"]
X = df[["grade1","grade2"]]
X = np.array(X)
#fit_transform(partData)对部分数据先拟合fit,找到该part的整体指标,如均值、方差、最大值最小值等等(根据具体转换的目的),然后对该partData进行转换transform,从而实现数据的标准化、归一化等等。。
X = min_max_scaler.fit_transform(X)
#lambda生成匿名函数
#. map(func,seq) 就是将函数作用在序列的每个元素上,然后创建由函数返回值组成的列表。
#. map(lambda x: x % mydict, mylist),遍历mylist每个元素,执行lambda函数,并返回一个列表
# TRIM ;
y1 = df["label"]
Y = df["label"].map(lambda y1:float(y1.rstrip(";")))
Y = np.array(Y)
X_train,X_test, Y_train, Y_test = train_test_split(X,Y,test_size=0.33)
#下面开始调用sklearn的训练LR函数
clf = LogisticRegression()
clf.fit(X_train,Y_train)
#score校验
score = clf.score(X_test,Y_test)
print ("sklearn-score",score)
#进行预测
pre_Y = clf.predict(X_test)
print("pre_Y:",pre_Y)
print("val_Y:",Y_test)
————————————————————————————————————————————————
#PS画图函数
#import
matplotlib.pyplot as plt
plt.plot(x,y , fmt) :绘制坐标图
plt.boxplot(data, notch, position): 绘制箱形图
plt.bar(left, height, width, bottom) : 绘制条形图
plt.barh(width, bottom, left, height) : 绘制横向条形图
plt.polar(theta, r) : 绘制极坐标图
plt.pie(data, explode) : 绘制饼图
plt.scatter(x, y) :绘制散点图
plt.hist(x, bings, normed) : 绘制直方图